1. SpringFramework ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
์ด์ ์ ์ฌ์ฉํ๋ ํ๊ฒฝ์ EJB์ด๋ค. EJB๋ ๋น์ ์ฌ์ฉํ๋๋ฐ ๋ถํธํ ์ ์ด ๋ง์๋ค.
์ฝ๋๋ฅผ ์์ ํ๊ณ ๋ฐ์ํ๋ ๊ณผ์ ์์ฒด๊ฐ ๊ฑฐ์ฐฝํ์์ผ๋ฉฐ, ๊ธฐ๋ฅ์ ์ข์ง๋ง ๋ณต์กํ ์คํ์ผ๋ก ์ธํด ๊ฐ๋ฐ ํจ์จ์ฑ์ด ๋จ์ด์ก๋ค.
๋ ํ ์คํธํ๊ธฐ ์ํด์๋ EJB๋ง ๋๋ฆด ์ ์๋ EJB ์๋ฒ๊ฐ ๋ ๋ฐ๋ก ํ์ํ์ผ๋ฉฐ, ํน์ ๊ธฐ์ ์ ์ข ์์ ์ด์๋ค.
๋ฟ๋ง์๋๋ผ ์น์ฌ์ดํธ๊ฐ ์ ์ ์ปค์ง์ ๋ฐ๋ผ ์ํฐํ๋ผ์ด์ฆ ๊ธ( ๊ธฐ์ ์์ค )์ ์๋น์ค๊ฐ ํ์ํ๊ฒ ๋์๋ค.
๊ทธ์ ๋ฐ๋ผ POJO + ๊ฒฝ๋ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ์๋ค. ์ด๊ฒ์ด Spring Framework์ด๋ค.
POJO (Plain Old Java Object)
=> ์๋ (Old) ์๋ฐ(Java) ๊ฐ์ฒด๋ฅผ(Object) ์ ์งํ๋ค(Plain)
- ํน์ ํ๋ ์์ํฌ๋ ๊ธฐ์ ์ ์์กด์ ์ด์ง ์์ ์๋ฐ ๊ฐ์ฒด์ด๋ค.
- ์ข ์์ ์ด์ง ์์ผ๋ฏ๋ก ์์ฐ์ฑ, ์ด์์ฑ์ด ํฅ์๋๋ค.
๊ฒฝ๋ํ๋ ์์ํฌ
EJB๊ฐ ์ ๊ณตํ๋ ์๋น์ค๋ฅผ ์ง์ํด์ค ์ ์๋ ํ๋ ์์ํฌ๊ฐ ๋ฑ์ฅํ๋ค. (Hibernate(JPA), iBatis(MyBatis), Spring)
POJO + ๊ฒฝ๋ํ๋ ์์ํฌ
๊ฑฐ์ฐฝํ ์ปจํ ์ด๋๊ฐ ํ์ ์์ผ๋ฉฐ, ์คํ์์ค ํ๋ ์์ํฌ๋ก ์ฌ์ฉ์ด ๋ฌด๋ฃ์ด๋ค.๋ชจ๋ ํ๋ซํผ์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค๋ ํฐ ์ฅ์ ์ ๊ฐ์ง๋ค. ์น ๋ฟ๋ง์๋๋ผ ์ดํ๋ฆฌ์ผ์ด์ ๋ฑ ๋ชจ๋ ๋ถ์ผ์ ์ ์ฉ ๊ฐ๋ฅํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
2. SpringFramework ํน์ง
SpringFramework๋ IoC์ AOP๋ฅผ ์ง์ํ๋ ๊ฒฝ๋ ์ปจํ ์ด๋ ํ๋ ์์ํฌ์ด๋ค.๊ฐ๋ฐ์๊ฐ ๋ณต์กํ๊ณ ์ค์ํ๊ธฐ ์ฌ์ด low level์ ๋ง์ด ์ ๊ฒฝ์ฐ์ง ์์ผ๋ฉด์, ๋น์ฆ๋์ค ๋ก์ง ๊ฐ๋ฐ์ ์ ๋ ํ ์ ์๋๋ก ํด์ค๋ค.์คํ๋ง์ ํน์ง์ผ๋ก๋ ์คํ๋ง ์ผ๊ฐํ์ด ์๋ค.1. POJO2. PSA3. IoC/DI4. AOP (๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ) - ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ, ๊ณตํต ๋ชจ๋์ ์ฌ๋ฌ ์ฝ๋์ ์ ์ฉ ๊ฐ๋ฅ5. ๊ฒฝ๋ ์ปจํ ์ด๋ - ์คํ๋ง์ ์๋ฐ ๊ฐ์ฒด๋ฅผ ๋ด๊ณ ์๋ ์ปจํ ์ด๋๋ก, ์๋ฐ ๊ฐ์ฒด์ ์์ฑ๊ณผ ์๋ฉธ๊ณผ ๊ฐ์ ๋ผ์ดํ์ฌ์ดํด์ ๊ด๋ฆฌํ๋ค.
3. SpringFramework Module
- Spring Core ( ๊ธฐ๋ฐ์ด ๋จ, ํต์ฌ ๊ธฐ๋ฅ ์ ๊ณต )
- Spring AOP
- Spring ORM
- Spring DAO(spring-jdbc)
- Spring Context(spring-context)
- Spring Web
- Spring MVC
4. IoC์ DI
IoC์ ๊ตฌํ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ DI์ด๋ค.
IoC
IoC๋ ๊ฐ์ฒด ๊ฐ์ ๊ฐํ ๊ฒฐํฉ์ Assembler๋ฅผ ํตํด ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ค. (loose coupling)(Assembler๋ Facotryํจํด๊ณผ Singletonํจํด์ ์๋์ผ๋ก ๋ง๋ค์ด ์ค๋ค.)๋ฐํ์ ์ ํด๋์ค ๊ฐ ๊ด๊ณ๊ฐ ํ์ฑ์ด ๋๋ค.IoC์ ๊ตฌํ ๋ฐฉ๋ฒ์ DI(Dependency Injection, ์์กด์ฑ ์ฃผ์ )์ DL(Dependency Lookup)์ด ์๋ค.DI๋ ๊ฐ์ฒด๋ฅผ ๋ด๊ฐ ์ฐพ์์ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ์๋๋ผ, ๋์๊ฒ ์๋ฌด ์ด์ ์์ด ๊ทธ๋ฅ ์ฃผ์ ํด์ฃผ๋ ๊ฒ์ด๋ค.๋ด๊ฐ ํ์ํ๋ ๋ง๋ ๋ ๋ค ์ฃผ๋ ๊ฒ์ด DI์ด๋ค. => ์ ์ด์ ์ญํ(IoC)DL์ ๋ด๊ฐ ํ์ํ ๊ฐ์ฒด๋ฅผ ์ปจํ ์ด๋๊ฐ lookup context๋ฅผ ํตํด์ ์ป๋ ๋ฐฉ์์ด๋ค.
'Web > SpringBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SpringBoot] Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.1.2 ์๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ (0) | 2023.08.20 |
---|---|
[SpringBoot] ๋ก๊น ์ System.out.println()์ผ๋ก ํ๋ฉด ์๋๋ ์ด์ (0) | 2023.08.01 |
[Spring] Mybatis๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ํ ๊ตฌํํ๊ธฐ (0) | 2022.10.23 |
[Spring] Mybatis ์ฐ๋ํ๊ธฐ (0) | 2022.10.23 |
[Spring] SpringFramework ๊ฐ๋ ์ ๋ฆฌ - 2 (0) | 2022.10.19 |