Layered Architecture
layered architecture - κ΄μ¬μ¬μ λΆλ¦¬μ λ°λΌ μμ€ν μ μ μ¬ν μ± μμ μ§λ layerλ‘ λΆλ¦¬νκ³ , κ°κ°μ λ μ΄μ΄κ° νμ λ μ΄μ΄μλ§ μμ‘΄νλλ‘ κ΅¬μ±νλ μν€ν μ³ ν¨ν΄
presentation λ μ΄μ΄
HTTP μμ² νλΌλ―Έν°, Bodyλ₯Ό validation, μ¬μ©μμ μμ²μ μμ, μλ΅μ λ°νν¨
(μΆκ°) ν¨μ(μ°μ°) λ 벨μμμ΄ λͺ λ Ήκ³Ό μ‘°νμ μ± μμ λΆλ¦¬νλ CQS(command query seperation)μ μ μ©ν΄μ μ¬μ©μμ μμ²μ λͺ μμ μΌλ‘ λͺ λ Ήκ³Ό μ‘°νλ‘ λΆλ¦¬ν΄μ κ°λ°ν μ μμ
application λ μ΄μ΄
νλ¦ μ μ΄ λͺ©μ , AOPλ₯Ό μ¬μ©ν μ’ μ &ν‘μ κ΄μ¬μ¬μ λΆλ¦¬, λλ©μΈ λͺ¨λΈ λμ , λ¨μΌ μ± μμ μ§λλ μ¬λ¬κ°μ μλΉμ€λ‘ λΆν΄νκ³ μν μ μμ
λ¨μΌ κ°μ²΄ μλΉμ€λ₯Ό λ§λ€μμ λ λ¨μ β νλ μν μ΄ λ무 λ§μμ 볡μ‘λ μ¦κ°. μ°κ΄μ±μ΄ μ μ κ°μ²΄κ° μλΉμ€ κ°μ²΄μ λ°μ§νκ² λλ©΄ μμ‘΄νλ κ°μ²΄κ° λ§μμ§κ³ , κ·Έλ¬λ©΄ λ³κ²½μ μ·¨μ½ν μ½λκ° λ¨
domain λ μ΄μ΄
CQS μμΉμ λ°λΌ λͺ λ Ή μ± μκ³Ό μ‘°ν μ± μμ λΆλ¦¬
DIPμ λ°λΌ λλ©μΈ λ μ΄μ΄μμλ κ³ μμ€μ λΉμ§λμ€ λ‘μ§μ ν΄κ²°ν΄μΌλκ³ , μ μμ€μ κΈ°μ ꡬν, μΈλΆ μΈνλΌμ μμ‘΄νμ§ μλλ‘ κ΅¬μ±ν΄μΌλ¨
λλ©μΈ λ μ΄μ΄λ μΆμμ μ΄μ¬μΌλκ³ , λ€λ₯Έ μΈλΆ μμ‘΄μ±μ μ°Έμ‘°νμ§ μμμΌλ¨
infrastructure λ μ΄μ΄
Data access κΈ°μ , IoC 컨ν μ΄λ, κ·Έ μΈ κΈ°μ μ μΈ μμ μ μννλ λͺ¨λ κ°μ²΄λ₯Ό ν¬ν¨
Spring IoC νκ²½ ꡬμ±
Session, JWT 보μ κΈ°λ₯
Data Access(Hibernateλ MyBatis, JDBC)
λ©μΈμ§ ν(Rabbit MQ, Kafka)
λ©μΌ(JavaMail)
Last updated