ν°μ€ν 리 λ·°
κ°μ²΄μ§ν₯μ μ¬μ€κ³Ό μ€ν΄ 4μ₯ - μν , μ± μ, νλ ₯
ggasoon2 2023. 7. 16. 20:41"μ°λ¦¬ λͺ¨λλ₯Ό ν©μΉ κ²λ³΄λ€ λ νλͺ ν μ¬λμ μλ€." - Ken Blanchard
μμ μ₯μμ κ°λ³μ μΈ κ°μ²΄μ νλ,μνμ λν΄ μ΄ν΄λ΄€λ€λ©΄,
μ΄λ² μ₯μ κ°μ²΄λ€ κ°μ νλ ₯μ λν΄ μμλ³΄λ €κ³ ν©λλ€.
1. νλ ₯
AλΌλ μ¬λμ΄ Bμκ² λμμ μμ²νλ€.
BλΌλ μ¬λλ λ€λ₯Έμ¬λμκ² λμμ μμ²νλ€.
Aν¨μκ° ν μ μλ μΌμ΄ μκ³
Bν¨μκ° ν μ μλ μΌμ΄ μμ.
μμ²(λμ)μ μ°μμ μΌλ‘ μμ²νκ² λλ€.
μ± μμ λΉμ ν μ΄μΌκΈ°λ₯Ό μμλ‘ νλ ₯μ νΉμ±μ μμλ³΄λ €κ³ ν©λλ€.
μ΄μνλλΌμ μ¨λ¦¬μ€ μ΄μΌκΈ° μ μ¬νμ κ°μ²΄μ§ν₯ κ΄μ μμ λ΄€μλ
μ, νμν λΌ, λͺ¨μ μ₯μ - κ°μ²΄μ΄λ©°
ννΈ μμ μ¬ννκΈ° μν΄ νλ ₯μ€μ΄λΌκ³ λ³Ό μ μμ.
1. λκ΅°κ°κ° μμκ² μ¬νμ μμ²
2. μμ΄ νμ ν λΌμκ² μ¦μΈμ μμ²
3. ν λΌλ λͺ¨μμ₯μμκ² μ¦μΈμ μμ²
..
~
κ°κ°μ κ°μ²΄λ μμ²μ μλ΅ν΄μ€ μ μλ μ§μκ³Ό νλλ°©μμ κ°μ§κ³ μλ€.
κ·Έλ¦¬κ³ μμ²κ³Ό μλ΅μ κ°μ²΄κ° μνν μ± μμ μ μν¨.
2. μ± μ
μμ²μ μλ΅ν΄ μ€ μ μμΌλ©΄ ν΄λΉ κ°μ²΄λ μ± μμ κ°μ§λ€κ³ λ§νλ€.
μ - μ¬νμ μνν μ± μ
ν λΌ - μ¦μΈμ μμ²ν μ± μ
λͺ¨μμ₯μ - μ¦μΈμ ν μ± μ
"κ°μ²΄μ§ν₯ κ°λ°μμ κ°μ₯ μ€μν λ₯λ ₯μ μ± μμ λ₯μνκ² μννΈμ¨μ΄ κ°μ²΄μ ν λΉνλ κ²"
ꡬνν λ κ°μ²΄μ μ± μμ μ μ€κ³νκ³ κ΅¬νν νμκ° μλ€.
ν¬λ μ΄κ·Έ λΌλ§μ μ± μμ λΆλ₯ λ°©λ²
a. κ°μ²΄κ° 무μμ νλκ°
- κ°μ²΄λ₯Ό μμ±νκ±°λ κ³μ°νκ±°λ
- λ€λ₯Έ κ°μ²΄μ νλμ μμνκ±°λ
b. κ°μ²΄κ° 무μμ μλκ°
- μμ μ΄ μ λνκ±°λ κ³μ°ν μ κ²μ λν μ§μ 보μ
- κ΄λ ¨λ κ°μ²΄μ κ΄ν΄ μλ€
λͺ¨μ μ₯μ(κ°μ²΄)μ κ²½μ° μ€μ€λ‘ μ¦μΈμμ μ μ₯ν΄μΌ νλ μ± μκ³Ό
μμ μ΄ μκ³ μλ μ¬μ€μ μ¦μΈν΄μΌ ν μ± μμ κ°μ§κ³ μλ€.
μΈλΆμμ μ κ·Ό κ°λ₯ν κ³΅μ© μλΉμ€μ κ΄μ μμ 보면
μ± μμ κ°μ²΄μ
a. μΈλΆμ μ κ³΅ν΄ μ€ μ μλ μλΉμ€(doing)μ
b. μΈλΆμ μ κ³΅ν΄ μ€ μ μλ μ 보(knowing)μ λͺ©λ‘μ΄λ€.
-> μ± μμ κ°μ²΄μ κ³΅μ© μΈν°νμ΄μ€(public interface) λΌκ³ λ³Ό μ μλ€.
3. μν
λͺ¨μμ₯μ - 'μ¦μΈ'μ΄λΌλ μν μ μν
μ - 'νμ¬'λΌλ μν μ μν
κ΅³μ΄ μμ νμ¬μ μν μ΄λΌκ³ νλ μ΄μ
-> μν μ΄ μ¬μ¬μ© κ°λ₯ν¨μ μλ―Έ -> μ μ°ν κ°μ²΄μ§ν₯ μ€κ³λ₯Ό νλλ‘ν¨.
μ± μμ μΈκΈνλ μ¨λ¦¬μ€ μ΄μΌκΈ°μμ
μ리μ¬(μ¦μΈ2)κ° λ±μ₯ -> μν μ μ¬μ¬μ©μ±μ μλ―Έ
μ - μ¬νμ μνν μ± μ
ν λΌ - μ¦μΈμ μμ²ν μ± μ
μλ¦¬μ¬ - μ¦μΈμ ν μ± μ
μ¬νμ κ³Όμ μ λμΌ.
μν μ λ§‘μ μ¬λμ΄ λ°λ
'νμ¬' - μ¬νμ μνν μ± μ
'ν λΌ' - μ¦μΈμ μμ²ν μ± μ
'μ¦μΈ' - μ¦μΈμ ν μ± μ
λ체 κ°λ₯ν κ°μ²΄λ λ©μΈμ§(μμ²μ λν μλ΅)λ₯Ό μ΄ν΄ν μ μλ κ°μ²΄λ‘ νμ λ¨
μν μ λ체 κ°λ₯μ±μ νμ νΈνμ±μ μλ―Ένκ³ ,
νμ νΈνμ±μ λμΌν μ± μμ μνμ μλ―Έ.
νλ ₯μ μ€λ₯
κ°μ²΄κ° μ‘΄μ¬νλ μ΄μ λ
λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν΄x
νλμ μννλ©° νλ ₯μ μ°Έμ¬νκΈ° μν΄μλΌκ³ ν©λλ€.
-> μ€μνκ²μ κ°μ²΄μ νλ, μ¦ μ± μμ λλ€
κ·Έλμ νλ‘κ·Έλλ°μ
κ°μ²΄κ° νλ ₯ μμμ μ΄λ€ μ± μκ³Ό μν μ μνν κ²μΈμ§μ λν΄ κ³ λ €νμ¬ κ΅¬ννλκ² μ€μνλ€.
(ν΄λμ€ κ°μ κ΄κ³ ννμ μ€μ μ λκ³ νλ‘κ·Έλλ° νκΈ° 보λ€λ)
μκ΄μ μ°κ³ μμΌμ κΈ°λ₯΄κ³ κ·Όμν νμ μΌλ‘ μμ’μ μμμλ μμ λͺ¨μ΅μ ꡬννλ κ²
μ΄λ° μμ κ²λͺ¨μ΅μ μ€μνμ§ μλ€κ³ ν©λλ€.
μ€μν λΆλΆμ -> μ¬νμ΄λΌλ 'νλ ₯'μ νμ¬μ μν (κ°μ²΄μ μ± μκ³Ό κ°μ²΄κ°μ νλ ₯ κ΄κ³)
μ΄λ° λΆλΆμ κ³ λ €νμ¬ κ΅¬ννλ©΄ μ’λ€κ³ ν©λλ€.
κ°μ²΄μ§ν₯ μ€κ³ κΈ°λ²
1. μ± μ-μ£Όλ μ€κ³ λ°©λ² (Responsibility-Driven Design)
νλ ₯(μ¬ν)μ νμν μ± μ(νμ¬,μ¦μΈ)λ€μ μλ³νκ³ μ ν©ν κ°μ²΄μκ² μ± μμ ν λΉνλ λ°©μμΌλ‘ μ΄ν리μΌμ΄μ μ μ€κ³νλ λ°©λ²μ΄λΌκ³ λ³Ό μ μμ.
a. μ 곡 ν΄μΌνλ μ± μμ νμ
b. λ μμ μ± μμΌλ‘ λΆν
c. μ± μμ μ μ ν κ°μ²΄μκ² ν λΉ
d. λ€λ₯Έ κ°μ²΄μ λμμ΄ νμν κ²½μ°, μ΄λ₯Ό μ± μμ§ μ μ ν κ°μ²΄ λλ μν μ°ΎκΈ°
2. λμμΈ ν¨ν΄ (Design Pattern)
μ λ¬Έκ°λ€μ΄ λ°λ³΅μ μΌλ‘ μ¬μ©νλ ν΄κ²° λ°©λ²μ μ μν΄λμ μ€κ³ ν νλ¦Ώ λͺ¨μμ΄λ€.
νΉμ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μλ³ν΄λμ μν , μ± μ, νλ ₯μ λͺ¨μμ΄λΌκ³ λ³Ό μ μμ.
ex. Composite ν¨ν΄ - λ³΅ν© κ°μ²΄μ λ¨μΌ κ°μ²΄μ μ²λ¦¬ λ°©λ²μ΄ λ€λ₯΄μ§ μμ κ²½μ°, λ³΅ν© κ°μ²΄λ λ¨μΌ κ°μ²΄λ₯Ό λμΌνκ² μ·¨κΈνλ κ²μ λͺ©μ μΌλ‘ λ λ°©λ².
Directory - File κ΄κ³ :
μμ²(κ²½λ‘ λ³κ²½)μ μλ΅ λΆλΆμ΄ λ¨μΌκ°μ²΄(File)μΈμ§ 볡ν©κ°μ²΄(Directory)μΈμ§ κ΅¬λΆ μμ΄ λμΌνκ² μ²λ¦¬νλ€.
- Component
κ°μ²΄(볡ν©κ°μ²΄ + λ¨μΌκ°μ²΄)λ€μ 곡ν΅λλ λ©μλλ₯Ό μ μ (μΈν°νμ΄μ€)
λ€λ₯Έ Componentλ₯Ό μΆκ°(add)νκ±°λ μ κ±°, μμμ λ°ννλ μ± μμ κ°μ§κ³ μμ.
- Leaf
μμ±λ λ¨μΌ κ°μ²΄(File)
- Composite
Leafκ°μ²΄λ€λ‘ μ΄λ£¨μ΄μ Έ μμΌλ©°(볡ν©κ°μ²΄) μ»΄ν¬λνΈ λ΄ λͺ
λ Ήλ€μ ꡬννλ€.
- Client
Component μΈν°νμ΄μ€λ₯Ό μ¬μ©ν΄ 볡ν©μ²΄ ꡬ쑰 λ΄μ κ°μ²΄λ€μ μ‘°μνλ€.
μμ - κ²μ μ λ
Unit - λͺ¨λ μ λλ€μ΄ κ°μ§λ κ³΅ν΅ κΈ°λ₯κ³Ό μμ±μ μ μ (getAttackPower())
LeafUnit (λ¨μΌκ°μ²΄) - λ¨μΌ μ λ, μ μ¬(10), λ§λ²μ¬(8)
GroupUnit (볡ν©κ°μ²΄) - λΆλ1(μ μ¬2 => 20), λΆλ2(μ μ¬1+λ§λ²μ¬2 => 26)
μ₯μ : νμ₯κ³Ό μ μ°μ±μ μ’μ. κ³μΈ΅ ꡬ쑰λ₯Ό ν¨κ³Όμ μΌλ‘ λ€λ£Έ
ex. Apapter ν¨ν΄ - νλ μμν¬λ λΌμ΄λΈλ¬λ¦¬ λ±μ΄ λ°λλλ§λ€ μμ ν νμ μλλ‘ νΈνλλ μΈν°νμ΄μ€λ₯Ό λ°λ‘ λ§λ€μ΄ λλκ²(λΌμ§μ½ μ΄λν°λ₯Ό λ μ¬λ €λ³΄μΈμ..)
3. ν μ€νΈ μ£Όλ κ°λ° (Test-Driven Development)
ν μ€νΈλ₯Ό λ¨Όμ μμ±νκ³ ν΅κ³Όνλ μ½λλ₯Ό μΆκ°νλ©΄μ μ΄ν리μΌμ΄μ μ μμ±ν΄λκ°λ λ°©λ².
μ€μ λͺ©μ μ ꡬ체μ μΈ μ½λλ₯Ό μμ±ν΄λκ°λ©΄μ
μν , μ± μ, νλ ₯μ μλ³νκ³ μν , μ± μ, νλ ₯μ΄ μ ν©νμ§ νΌλλ°± λ°λκ².
μν , μ± μ, νλ ₯μ μ ꡬλΆνκ³ μ μν΄μ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ ν μ μλλ‘ ν©μλ€.
- Total
- Today
- Yesterday
- filemanager excel read
- llm pdf rag
- λΉλκΈ° νμ΄μ§ swift
- swift μκ°
- llm csv
- swift network 곡ν΅ν
- swift excel read
- swift filemanager get excel
- swift λ€νΈμν¬ λͺ¨λν
- swift μμ κ°μ Έμ€κΈ°
- swift μμ μ½κΈ°
- swift network module
- readysay
- λΉλκΈ° 리μ€νΈ swift
- λ λμΈμ΄
- rag κΈ°λ° llm
- rag llm pdf
- λ λμΈμ΄ μ΄ν
- μλμννΈ λ μ΄μΈμ΄
- rag κΈ°λ° llm μ±λ΄
- chatgpt rag llm
- swift filemanager excel
- concurrency pagination
- swift network refactoring
- swift urlcomponent encode
- swift urlsession 곡ν΅ν
- swift urlsession refactoring
- κ³΅λΆ νμ΄λ¨Έ μ΄ν
- swift queryitem encode
- swift get excel
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |