[Book] Clean Architecture
1λΆ. μκ°
6p
μ€κ³λ 무μμΈκ°? μν€ν μ²λ? λ μ¬μ΄μλ μ΄λ€ μ°¨μ΄κ° μλκ°? (...) μ²«μ§Έλ‘ μ£Όμ₯νκ³ μΆμ λ°λ λ μ¬μ΄μλ μ°¨μ΄κ° μλ€λ μ μ΄λ€.
7p
μννΈμ¨μ΄ μν€ν μ²μ λͺ©νλ νμν μμ€ν μ λ§λ€κ³ μ μ§λ³΄μνλ λ° νμν μΈλ ₯μ μ΅μννλ λ° μλ€.
38p
μ’μ μν€ν μ²λ₯Ό λ§λλ μΌμ κ°μ²΄μ§ν₯ μ€κ³ μμΉμ μ΄ν΄νκ³ μμ©νλ λ°μ μΆλ°νλ€.
51
μννΈμ¨μ΄ μν€ν νΈ κ΄μ μμ μ λ΅μ λͺ ννλ€. OOλ λ€νμ±μ μ΄μ©νμ¬ μ 체 μμ€ν μ λͺ¨λ μμ€ μ½λ μμ‘΄μ±μ λν μ λμ μΈ μ μ΄ κΆνμ νλν μ μλ λ₯λ ₯μ΄λ€. OOλ₯Ό μ¬μ©νλ©΄ μν€ν νΈλ νλ¬κ·ΈμΈ μν€ν μ²λ₯Ό ꡬμ±ν μ μκ³ , μ΄λ₯Ό ν΅ν΄ κ³ μμ€μ μ μ± μ ν¬ν¨νλ λͺ¨λμ μ μμ€μ μΈλΆμ¬νμ ν¬ν¨νλ λͺ¨λμ λν΄ λ 립μ±μ 보μ₯ν μ μλ€.
3λΆ μ€κ³ μμΉ
SOLID μμΉμ λͺ©μ 62p
SOLID μμΉμ λͺ©μ μ μ€κ° μμ€μ μννΈμ¨μ΄ κ΅¬μ‘°κ° μλμ κ°λλ‘ λ§λλ λ° μλ€.
λ³κ²½μ μ μ°νλ€.
μ΄ν΄νκΈ° μ½λ€.
λ§μ μννΈμ¨μ΄ μμ€ν μ μ¬μ©λ μ μλ μ»΄ν¬λνΈμ κΈ°λ°μ΄ λλ€.
SRP μμΉ
SRPμ μ΅μ’ λ²μ μ μλμ κ°λ€. 'νλμ λͺ¨λμ μ€μ§ νλμ μ‘ν°μ λν΄μλ§ μ± μμ ΈμΌ νλ€.'
OCP μμΉ
μννΈμ¨μ΄ κ°μ²΄λ νμ₯μλ μ΄λ € μμ΄μΌ νκ³ , λ³κ²½μλ λ«ν μμ΄μΌ νλ€. μ΄λ¬ν λͺ©νλ₯Ό λ¬μ±νλ €λ©΄ μμ€ν μ μ»΄ν¬λνΈ λ¨μλ‘ λΆλ¦¬νκ³ , μ μμ€ μ»΄ν¬λνΈμμ λ°μν λ³κ²½μΌλ‘λΆν° κ³ μμ€ μ»΄ν¬λνΈλ₯Ό 보νΈν μ μλ ννμ μμ‘΅μ± κ³μΈ΅κ΅¬μ‘°κ° λ§λ€μ΄μ§λλ‘ ν΄μΌ νλ€.
리μ€μ½ν μΉνλ²μΉ
Sνμ μ κ°μ²΄ o1 κ°κ°μ ν΄λΉνλ T1 νμ κ°μ²΄ o2κ° μκ³ , T νμ μ μ΄μ©ν΄μ μ μν λͺ¨λ νλ‘κ·Έλ¨ Pμμ o2μ μ리μ o1μ μΉννλλΌλ Pμ νμκ° λ³νμ§ μλλ€λ©΄, Sλ Tμ νμ νμ μ΄λ€.
μΈν°νμ΄μ€ λΆλ¦¬ μμΉ
μ€νΌλ μ΄μ μ μΈν°νμ΄μ€ λ¨μλ‘ λΆλ¦¬νμ¬μ, μμ μ΄ μ¬μ©νμ§ μλ λ©μλμ μμ‘΄νμ§ μμμΌ νλ€.
μμ‘΄μ± μμ μμΉ
'μ μ°μ±μ΄ κ·Ήλνλ μμ€ν 'μ΄λ μμ€μ½λ μμ‘΄μ±μ΄ μΆμμ μμ‘΄νλ©° ꡬ체μλ μμ‘΄νμ§ μλ μμ€ν μ΄λ€.
λ³λμ±μ΄ ν° κ΅¬μ²΄ ν΄λμ€λ₯Ό μ°Έμ‘°νμ§ λ§λΌ. λμ μΆμ μΈν°νμ΄μ€λ₯Ό μ°Έμ‘°νλΌ,
λ³λμ±μ΄ ν° κ΅¬μ²΄ ν΄λμ€λ‘λΆν° νμνμ§ λ§λΌ.
ꡬ체 ν¨μλ₯Ό μ€λ²λΌμ΄λ νμ§ λ§λΌ.
ꡬ체μ μ΄λ©° λ³λμ±μ΄ ν¬λ€λ©΄ μ λλ‘ κ·Έ μ΄λ¦μ μΈκΈνμ§ λ§λΌ.
μ»΄ν¬λνΈ μμΉ
μ»΄ν¬λνΈμ μ μ - 100p
μ»΄ν¬λνΈλ μμ€ν μ κ΅¬μ± μμλ‘ λ°°ν¬ν μ μλ κ°μ₯ μμ λ¨μλ€.
μ»΄ν¬λνΈ λ΄ ν΄λμ€ λ°°μΉμ λν μμΉ - 108p
μ΄λ€ ν΄λμ€λ₯Ό μ΄λ€ μ»΄ν¬λνΈμ ν¬ν¨μμΌμΌ ν κΉ?
μΈ κ°μ§ μμΉμ μ°Έκ³ ν μ μλ€.
REP: μ¬μ¬μ©/λ¦΄λ¦¬μ¦ λ±κ° μμΉ
CCP: κ³΅ν΅ νμ μμΉ
CRP: κ³΅ν΅ μ¬μ¬μ© μμΉ
REP: μ¬μ¬μ©/λ¦΄λ¦¬μ€ λ±κ° μμΉ
μ¬μ¬μ© λ¨μλ λ¦΄λ¦¬μ€ λ¨μμ κ°λ€.
λ¨μΌ μ»΄ν¬λνΈλ μμ§μ± λμ ν΄λμ€μ λͺ¨λλ€λ‘ ꡬμ±λμ΄μΌ νλ€. μ»΄ν¬λνΈλ₯Ό ꡬμ±νλ λͺ¨λ λͺ¨λμ μλ‘ κ³΅μ νλ μ€μν ν λ§λ λͺ©μ μ΄ μμ΄μΌ νλ€.
CCP: κ³΅ν΅ νμ μμΉ
λμΌν μ΄μ λ‘ λμΌν μμ μ λ³κ²½λλ ν΄λμ€λ₯Ό κ°μ μ»΄ν¬λνΈλ‘ λ¬Άμ΄λΌ. μλ‘ λ€λ₯Έ μμ μ λ€λ₯Έ μ΄μ λ‘ λ³κ²½λλ ν΄λμ€λ λ€λ₯Έ μ»΄ν¬λνΈλ‘ λ¬Άμ΄λΌ.
λλ€μμ μ ν리μΌμ΄μ μμ μ μ§λ³΄μμ±μ μ¬μ¬μ©μ±λ³΄λ€ ν¨μ¬ μ€μνλ€. μ½λκ° λ³κ²½λμ΄μΌ νλ€λ©΄, μ΄λ¬ν λ³κ²½μ΄ μ¬λ¬ μ»΄ν¬λνΈμ λΆμ°λμ΄ λ°μν기보λ€λ, μ°¨λΌλ¦¬ λ³κ²½ λͺ¨λκ° λ¨μΌ μ»΄ν¬λνΈμμ λ°μνλ νΈμ΄ λ«λ€.
CRP: κ³΅ν΅ μ¬μ¬μ© μμΉ
μ»΄ν¬λνΈ μ¬μ©μλ€μ νμνμ§ μλ κ²μ μμ‘΄νκ² κ°μνμ§ λ§λΌ.
μ»΄ν¬λνΈ μ¬μ΄μ κ΄κ³μ λν λ²μΉλ€
ADP: μμ‘΄μ± λΉμν μμΉ
μ»΄ν¬λνΈ μμ‘΄μ± κ·Έλνμ μνμ΄ μμ΄μλ μλλ€.
SDP: μμ λ μμ‘΄μ± λ²μΉ
λ μμ λ μͺ½μ μμ‘΄νλΌ.
SAP: μμ λ μΆμν μμΉ
μ»΄ν¬λνΈλ μμ λ μ λλ§νΌλ§ μΆμνλμ΄μΌ νλ€.
5λΆ. μν€ν
μ²
μν€ν
μ²μ μ μ - 142p
μννΈμ¨μ΄ μμ€ν μ μν€ν μ²λ μμ€ν μ ꡬμΆνλ μ¬λλ€μ΄ λ§λ€μ΄λΈ μμ€ν μ ννλ€. κ·Έ λͺ¨μμ μμ€ν μ μ»΄ν¬λνΈλ‘ λΆν νλ λ°©λ², λΆν λ μ»΄ν¬λνΈλ₯Ό λ°°μΉνλ λ°©λ², μ»΄ν¬λνΈκ° μλ‘ μμ¬μν΅νλ λ°©μμ λ°λΌ μ ν΄μ§λ€.
μν€ν
μ²μ λͺ©μ - 143p
μν€ν μ²μ μ£Όλ λͺ©μ μ μμ€ν μ μλͺ μ£ΌκΈ°λ₯Ό μ§μνλ κ²μ΄λ€. μ’μ μν€ν μ²λ μμ€ν μ μ½κ² μ΄ν΄νκ³ , μ½κ² κ°λ°νλ©°, μ½κ² μ μ§λ³΄μνκ³ , λ μ½κ² λ°°ν¬νκ² ν΄μ€λ€. μν€ν μ²μ κΆκ·Ήμ μΈ λͺ©νλ μμ€ν μ μλͺ κ³Ό κ΄λ ¨λ λΉμ©μ μ΅μννκ³ , νλ‘κ·Έλλ¨Έμ μμ°μ±μ μ΅λννλ λ° μλ€.
μν€ν
νΈμ λͺ©ν - 147p
μν€ν νΈμ λͺ©νλ μμ€ν μμ μ μ± μ κ°μ₯ ν΅μ¬μ μΈ μμλ‘ μλ³νκ³ , λμμ μΈλΆμ¬νμ μ μ± μ 무κ΄νκ² λ§λ€ μ μλ ννμ μμ€ν μ ꡬμΆνλ λ° μλ€. μ΄λ₯Ό ν΅ν΄ μΈλΆμ¬νμ κ²°μ νλ μΌμ 미루거λ μ°κΈ°ν μ μκ² λλ€.
μ’μ μν€ν νΈλ κ²°μ λμ§ μμ μ¬νμ μλ₯Ό μ΅λννλ€.
μν€ν νΈλ νμν μμ€ν μ λ§λ€κ³ μ μ§νλ λ° λλ μΈμ μμμ μ΅μννλ€.
μΈμ μμμ ν¨μ¨μ λ¨μ΄λ¨λ¦¬λ μμΈ - 170p
μΈμ μμμ ν¨μ¨μ λ¨μ΄λ¨λ¦¬λ μμΈμ λ°λ‘ κ²°ν©μ΄λ€. νΉν λ무 μΌμ° λ΄λ €μ§ κ²°μ μ λ°λ₯Έ κ²°ν©μ΄λ€.
μ΄λ€ μ’ λ₯μ κ²°μ μ΄ μ΄λ₯Έ κ²°μ μΌκΉ? λ°λ‘ μμ€ν μ μ 무 μꡬμ¬ν, μ¦ μ μ€μΌμ΄μ€μ μλ¬΄λ° κ΄λ ¨μ΄ μλ κ²°μ μ΄λ€. νλ μμν¬, λ°μ΄ν°λ² μ΄μ€, μΉ μλ², μ νΈλ¦¬ν° λΌμ΄λΈλ¬λ¦¬, μμ‘΄μ± μ£Όμ μ λν κ²°μ λ±μ΄ μ¬κΈ° ν¬ν¨λλ€.
μ μμ€μμ κ³ μμ€μΌλ‘ - 194p
μ’μ μν€ν μ²λΌλ©΄ κ° μ»΄ν¬λνΈλ₯Ό μ°κ²°ν λ μμ‘΄μ±μ λ°©ν₯μ΄ μ»΄ν¬λνΈμ μμ€μ κΈ°λ°μΌλ‘ μ°κ²°λλλ‘ λ§λ€μ΄μΌ νλ€. μ¦, μ μμ€ μ»΄ν¬λνΈκ° κ³ μμ€ μ»΄ν¬λνΈμ μμ‘΄νλλ‘ μ€κ³λμ΄μΌ νλ€.
μμ€μ μλ°νκ² μ μνμλ©΄ 'μ λ ₯κ³Ό μΆλ ₯κΉμ§μ 거리'λ€. μ λ ₯κ³Ό μΆλ ₯ λͺ¨λλ‘λΆν° λ©λ¦¬ μμΉν μλ‘ μ μ± μ μμ€μ λμμ§λ€.
μ리μΉλ μν€ν
μ² - 208p
μμ μμ€μ λλ ν 리 ꡬ쑰, μ΅μμ ν¨ν€μ§μ λ΄κΈ΄ μμ€ νμΌμ λ³Ό λ, μ΄ μν€ν μ²λ "ν¬μ€ μΌμ΄ μμ€ν μ΄μΌ" λλ "μ¬κ³ κ΄λ¦¬ μμ€ν μ΄μΌ"λΌκ³ μ리μΉλκ°? μλλ©΄ "λ μΌμ€μΌ", "μ€νλ§/νμ΄λ²λ€μ΄νΈμΌ", μλλ©΄"ASPμΌ"λΌκ³ μ리μΉλκ°?
μ λ¬ λ©μ»€λμ¦μ 미루μ΄μΌ ν κ²°μ μ¬νμ΄λ€ - 210p
κ³Όλν λ¬Έμ λ₯Ό μΌμΌν€κ±°λ κ·Όλ³Έμ μΈ μν€ν μ²λ₯Ό λ―μ΄κ³ μΉμ§ μλλΌλ μμ€ν μ μ½μ μ±, μΉ μ±, λ¦¬μΉ ν΄λΌμ΄μΈνΈ μ±, μ¬μ§μ΄ μΉ μλΉμ€ μ±μΌλ‘λ μ λ¬ν μ μμ΄μΌ νλ€.
ν΄λ¦° μν€ν
μ² - 216~218p
μ΄λ¬ν μν€ν μ²κ° λμνλλ‘ νλ κ°μ₯ μ€μν κ·μΉμ μμ‘΄μ± κ·μΉμ΄λ€. "μμ€ μ½λ μμ‘΄μ±μ λ°λμ μμͺ½μΌλ‘, κ³ μμ€μ μ μ± μ ν₯ν΄μΌ νλ€."
μν°ν°
μ μ¬μ μΈ ν΅μ¬ μ 무 κ·μΉμ μΊ‘μννλ€. μν°ν°λ λ©μλλ₯Ό κ°μ§λ κ°μ²΄μ΄κ±°λ μΌλ ¨μ λ°μ΄ν° ꡬ쑰μ ν¨μμ μ§ν©μΌ μλ μλ€.
μ μ€μΌμ΄μ€
μ μ€μΌμ΄μ€λ μ ν리μΌμ΄μ μ νΉνλ μ 무 κ·μΉμ ν¬ν¨νλ€. λν μ μ€μΌμ΄μ€ κ³μΈ΅μ μννΈμ¨μ΄λ μμ€ν μ λͺ¨λ μ μ€μΌμ΄μ€λ₯Ό μΊ‘μννκ³ κ΅¬ννλ€. μ μ€μΌμ΄μ€λ μν°ν°λ‘ λ€μ΄μ€κ³ λκ°λ λ°μ΄ν° νλ¦μ μ‘°μ νλ©°, μν°ν°κ° μμ μ ν΅μ¬ μ 무 κ·μΉμ μ¬μ©ν΄μ μ μ€μΌμ΄μ€μ λͺ©μ μ λ¬μ±νλλ‘ μ΄λλ€.
μΈν°νμ΄μ€ μ΄λν°
μ΄λν°λ λ°μ΄ν°λ₯Ό μ μ€μΌμ΄μ€μ μν°ν°μκ² κ°μ₯ νΈλ¦¬ν νμμμ λ°μ΄ν°λ μΉ κ°μ μΈλΆ μμ΄μ μμκ² κ°μ₯ νΈλ¦¬ν νμμΌλ‘ λ³ννλ€. λ§μ°¬κ°μ§λ‘ μ΄ κ³μΈ΅μ μν°ν°μ μ μ€μΌμ΄μ€μκ² κ°μ₯ νΈλ¦¬ν νμμμ μμμ±μ©μΌλ‘ μ¬μ© μ€μΈ μμμ νλ μμν¬(μ¦, λ°μ΄ν°λ² μ΄μ€)κ° μ΄μ©νκΈ°μ κ°μ₯ νΈλ¦¬ν νμμΌλ‘ λ³ννλ€.
νλ μμν¬μ λλΌμ΄λ²
κ°μ₯ λ°κΉ₯μ‘± κ³μΈ΅μ μΌλ°μ μΌλ‘ λ°μ΄ν°λ² μ΄μ€λ μΉ νλ μμν¬ κ°μ νλ μμν¬λ λꡬλ€λ‘ ꡬμ±λλ€.
νλ μμν¬μ λλΌμ΄λ² κ³μΈ΅μ λͺ¨λ μΈλΆμ¬νμ΄ μμΉνλ κ³³μ΄λ€. μΉμ μ¬λΆμ¬νμ΄λ€. λ°μ΄ν°λ² μ΄μ€λ μΈλΆμ¬νμ΄λ€.
ν
μ€νΈ - 262~263p
ν μ€νΈλ νμμ μΌλ‘ μμ‘΄μ± κ·μΉμ λ°λ₯Έλ€.
μμ€ν νλΆμ μ΄λ€ κ²λ ν μ€νΈμ μμ‘΄νμ§ μμΌλ©°, ν μ€νΈλ μμ€ν μ μ»΄ν¬λνΈλ₯Ό ν₯ν΄, νμ μμ μμͺ½μΌλ‘ μμ‘΄νλ€.
μννΈμ¨μ΄ μ€κ³μ 첫 λ²μ§Έ κ·μΉμ μΈμ λ κ°λ€. λ³λμ±μ΄ μλ κ²μ μμ‘΄νμ§ λ§λΌ. GUI
Last updated