- μ΄λ Έν μ΄μ (annotation)μ 'μ£Όμ'μ μλ―Ένλ μμ΄ ννμ΄λ€.
- '@xxx'μ κ°μ ννλ‘ μμ±νλ€.
- μΈλΆ μννΈμ¨μ΄μ νμν μ²λ¦¬ λ΄μ©μ μ λ¬νλ€.
μμ DI컨ν μ΄λ κΈμμ μΈμ€ν΄μ€ μμ± μ΄λ Έν μ΄μ μ λν΄ μμ±νμλ€. μ΄λ²μλ 4κ°μ§ μΈμ€ν΄μ€ μμ± μ΄λ Έν μ΄μ μ 'κ°λ €μ°κΈ°'μ λν΄ μ€λͺ νκ² λ€!
'κ°λ €μ°κΈ°'λ 'λ€ μ’
λ₯ λͺ¨λ μΈμ€ν΄μ€ μμ±μ΄λΌλ μν μ κ°μ§λ§. μ¬μ©νλ μμΉμ λ°λΌ μ΄λ
Έν
μ΄μ
μ κ°λ € μ°μ'λΌλ κ²μ΄λ€.
μ¬κΈ°μ μ¬μ©νλ μμΉκ° 무μμ μλ―Ένλμ§ κΆκΈν ν
λ° κ·Έλ¬κΈ° μν΄μλ λ μ΄μ΄λΌλ κ²μ μμμΌ νλ€.
'μΈ΅'μ μλ―Έλ‘, κ³μΈ΅ κ΅¬μ‘°λ‘ λμ΄ μλ κ° μΈ΅μ μλ―Ένλ€.
λ μ΄μ΄λ₯Ό λλλ λ°©λ²μ λ€μνμ§λ§ λ€μκ³Ό κ°μ΄ 3κ°μ§ λ μ΄μ΄λ‘ λλλ λ°©μμΌλ‘ μ€λͺ
νκ² λ€.
λ μ΄μ΄ | κ°μ |
---|---|
μ ν리μΌμ΄μ λ μ΄μ΄(Application Layer) | μ ν리μΌμ΄μ λ μ΄μ΄λ ν΄λΌλ¦¬μΈνΈμμ λ°μ΄ν° μ μΆλ ₯μ μ μ΄νλ λ μ΄μ΄λ₯Ό μλ―Ένλ€. |
λλ©μΈ λ μ΄μ΄ (Domain Layer) | λλ©μΈ λ μ΄μ΄λ μ ν리μΌμ΄μ μ μ€μ¬μ΄ λλ λ μ΄μ΄λ‘μ μ 무 μ²λ¦¬λ₯Ό μννλ λ μ΄μ΄λ₯Ό μλ―Ένλ€. |
μνλΌμ€νΈλμ² λ μ΄μ΄(Infrastructure Layer) | μΈνλΌμ€νΈλμ² λ μ΄μ΄λ λ°μ΄ν°λ² μ΄μ€μ λν λ°μ΄ν° μμμ±(Persistence Context)λ±μ λ΄λΉνλ λ μ΄μ΄λ₯Ό μλ―Ένλ€. |
μ΄λ Έν μ΄μ | κ°μ |
---|---|
@Controller | μ ν리μΌμ΄μ λ μ΄μ΄μ 컨νΈλ‘€λ¬μ λΆμ¬ |
@Service | λλ©μΈ λ μ΄μ΄μ μ 무 μ²λ¦¬μ λΆμ¬ |
@Repository | μΈνλΌ λ μ΄μ΄μ λ°μ΄ν°λ² μ΄μ€ μ‘μΈμ€ μ²λ¦¬μ λΆμ¬ |
μ΄λ Έν μ΄μ | κ°μ |
---|---|
@Component | @Controller, @Service, @Repositoryμ μ©λ μ΄μΈμ μΈμ€ν΄μ€ μμ± λμ ν΄λμ€μ λΆμ¬ |
@Componentλ νμ λ‘μ§μ μ²λ¦¬ν λ μ¬μ©νλ€.