์ฑ
์์ฒด์์ A, B ์ด๋ฐ ์์ผ๋ก ์ถ์ ์ ๋๋ฅผ ํ์ํ๊ณ , ์ถ์ ๋ ๋
๋ ์๋ ๋์จ๋ค. ํ์๋ ๋๋ก ํ ๋ฒ ์ด์ ์ถ์ ๋ ํ์ ๋ฐฐ๊ฒฝ, ๋ ๋ฒ์ด์ ๋ฐ ์ง์ ์ถ์ ๋ฅผ ํ์ธํ ๊ฒฝ์ฐ, ๋
ธ๋ ๋ฐฐ๊ฒฝ์ผ๋ก ํ์ํ ์์ ์ด๋ค. ๋ํ ํค์๋ ์์ฃผ๋ก ์ต๋ํ ๊ธฐ์ตํ๊ธฐ ์ฝ๊ฒ ๊ธฐ๋กํ ์์ ์ด๋ค. ๊ทธ๋์ ์ดํดํ๊ธฐ ํ๋ค ์๋์์ง๋ง ์ต๋ํ ์ฝ๊ฒ ์จ๋ณผ ์์ ์ด๋ค...
๋ชจ๋ํ Modularity
- ์์คํ ์ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ๋จ์๋ก ๋๋๊ธฐ
- ๋ชจ๋๊ฐ ๊ฒฐํฉ๋ Coupling↓ ๋ชจ๋ ๋ด ์์๋ค์ ์์ง๋ Cohension↑
์ถ์ํ Abstraction
์ ์ฒด์ ์ด๊ณ ํฌ๊ด์ ์ธ ๊ฐ๋ ์ค๊ณ, ๊ตฌ์ฒดํ
๊ณผ์ ์ถ์ํ | ํ๋ฆ๋ง ํ์ |
์๋ฃ ์ถ์ํ | ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ํํ ์ ์๋ ํํ ๋์ฒด |
์ ์ด ์ถ์ํ | ์ด๋ฒคํธ ๋ฐ์ ๋ํํ ์ ์๋ ํํ ๋์ฒด |
์ ๋ณด ์๋ Information Hiding
ํ ๋ชจ๋ ๋ด๋ถ์ ํฌํจ๋ ์ ์ฐจ, ์ ๋ณด๊ฐ ๊ฐ์ถฐ์ ธ ์ ๊ทผํ๊ฑฐ๋ ๋ณ๊ฒฝํ์ง ๋ชปํ๋๋ก.
๋ชจ๋์ ๋ ๋ฆฝ์ ์ผ๋ก ์ํ. ์์ , ์ํ, ์ ์ง๋ณด์ ์ฉ์ด
ํ์ฝ Contract ์ ์ํ ์ค๊ณ
์ปดํฌ๋ํธ ์ค๊ณ์ ํด๋์ค์ ๋ํ ์ฌ๋ฌ ๊ฐ์ ์ ๊ณต์ ํ ์ ์๋๋ก ์ค๊ณ
์ ํ ์กฐ๊ฑด Precondition |
operation ํธ์ถ ์ ์ฐธ์ด ๋์ด์ผํ ์กฐ๊ฑด |
๊ฒฐ๊ณผ ์กฐ๊ฑด Postcondition |
operation ์ํ ํ ๋ง์กฑ๋์ด์ผ ํ ์กฐ๊ฑด |
๋ถ๋ณ ์กฐ๊ฑด Invariant |
operation ์คํ ์ค ํญ์ ๋ง์กฑ ์กฐ๊ฑด |
ํจํด
๋ฐ์ดํฐ ์ ์กํ๊ณ ๋ฐ๋ ๋ค์ํ ํจํด๋ค ~
- ํ์ดํ - ํํฐ ํจํด Pipe-filter Pattern
๋ฐ์ดํฐ ์คํธ๋ฆผ ์ ์ฐจ์ ๊ฐ ๋จ๊ณ๋ฅผ ํํฐ๋ก ์บก์ํ, ํ์ดํ๋ก ์ ์ก.
๋ฐ์ดํฐ ๋ณํ, ๋ฒํผ๋ง, ๋๊ธฐํ
UNIX's Shell. - ๋ง์คํฐ - ์ฌ๋ ์ด๋ธ ํจํด Master-Slave Pattern
์ฌ๋ ์ด๋ธ ์ปดํฌ๋ํธ์์ ์ฒ๋ฆฌ๋ ๊ฒฐ๊ณผ๋ฌผ์ ๋๋ ค๋ฐ๋ ์
์ฅ์ ํ์ฉ ์์คํ , ๋ณ๋ ฌ ์ปดํจํ - ๋ธ๋ก์ปค ํจํด Broker Pattern
์ฌ์ฉ์ ์ํ๋ ๊ฑฐ ๋ธ๋ก์ปค ์ปดํฌ์ ์์ฒญ, ๊ทธ๋ผ ์ฐ๊ฒฐ
๋ถ์ฐ ํ๊ฒฝ ์์คํ - ํผ์ด-ํฌ-ํผ์ด ํจํด Peer-To-Peer Pattern
peer ์ปดํฌ๊ฐ ํด๋ผ์ด์ธํธ or ์๋ฒ๊ฐ ๋ ์ ์๋ ํจํด
ํ์ผ ๊ณต์ ๋คํธ์ํฌ - ์ด๋ฒคํธ- ๋ฒ์ค ํจํด Event-Bus Pattern
์ด๋ฒคํธ ๋ฉ์ธ์ง Publishํ๋ฉด ํด๋น ์ฑ๋ Subscribeํ Listener๊ฐ ๋ฐ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ
์๋ฆผ ์๋น์ค - ๋ธ๋๋ณด๋ ํจํด Blackboard Pattern
๋ชจ๋ ์ปดํฌ๋ค์ด ๊ณต์ ๋ฐ์ดํฐ ์ ์ฅ์, ๋ธ๋๋ณด๋ ์ปดํฌ์ ์ ๊ทผ ๊ฐ๋ฅํ ํจํด
์์ฑ ์ธ์, ์ฐจ๋ ์๋ณ.. - ์ธํฐํ๋ฆฌํฐ ํจํด Interpreter Pattern
์ฝ๋์ ๊ฐ ๋ผ์ธ ์ํ ๋ฐฉ๋ฒ ์ง์ , ๊ธฐํธ๋ง๋ค ํด๋์ค ๊ฐ๋๋ก ๊ตฌ์ฑ
๋ฒ์ญ๊ธฐ, ์ปดํ์ผ๋ฌ, ์ธํฐํ๋ฆฌํฐ
ํด๋์ค Class
๊ณตํต๋ ์์ฑ๊ณผ ์ฐ์ฐ ๊ฐ๋ ๊ฐ์ฒด ์งํฉ
ํด๋์ค์ ์ํ ๊ฐ๊ฐ ๊ฐ์ฒด = Instance
๋ฉ์์ง Message
๊ฐ์ฒด๋ค ๊ฐ์ ์ํธ์์ฉ์ ์ฌ์ฉ๋๋ ์๋จ. ๊ฐ์ฒด์ ๋์์ด๋ ์ฐ์ฐ ์ผ์ผํค๋ ์ธ๋ถ์ ์๊ตฌ์ฌํญ
์บก์ํ Encapsulation
์ธ๋ถ์์์ ์ ๊ทผ์ ์ ํํ๊ธฐ ์ํด ์ธํฐํ์ด์ค๋ฅผ ์ ์ธํ ์ธ๋ถ ๋ด์ฉ ์๋
๋ฉ์ธ์ง ์ฃผ๊ณ ๋ฐ์ ๋ ์๋ ๊ฐ์ฒด์ ์ธ๋ถ ๋ด์ฉ ์ ํ์ ์์ผ๋ฏ๋ก ์ธํฐํ์ด์ค ๋จ์, ๊ฐ์ฒด ๊ฐ์ ๊ฒฐํฉ๋ ↓
๊ฐ์ฒด์งํฅ ๋ถ์ OOA ; Object Oriented Analysis
๊ฐ์ฒด, ์์ฑ, ์ฐ์ฐ, ๊ด๊ณ ๋ฑ์ ์ ์ํ์ฌ ๋ชจ๋ธ๋ง
ํด๋์ค๋ฅผ ์๋ณํ๋ ๊ฒ์ด ์ฃผ์ ๋ชฉ์
๊ฐ์ฒด์งํฅ ๋ถ์์ ๋ฐฉ๋ฒ๋ก
- Rumbaugh ๋ผ๋ฐ์ฐ ๋ฐฉ๋ฒ
๋ถ์ ํ๋ ๊ฐ์ฒด ๋ชจ๋ธ, ๋์ ๋ชจ๋ธ, ๊ธฐ๋ฅ ๋ชจ๋ธ
๋ชจ๋ ์ํํธ์จ์ด ๊ตฌ์ฑ ์์๋ฅผ ๊ทธ๋ํฝ ํ๊ธฐ๋ฒ์ ์ด์ฉํ์ฌ ๋ชจ๋ธ๋ง
๊ฐ์ฒด ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ OMT ; Object-Modeling-Technique
๊ฐ์ฒด ๋ชจ๋ธ๋ง Object Modeling
์๊ตฌ๋๋ ๊ฐ์ฒด ์ฐพ๊ณ ์์ฑ, ๊ด๊ณ ๊ท์ ํ์ฌ ๊ฐ์ฒด ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ํ์
→
๋์ ๋ชจ๋ธ๋ง Dynamic Modeling
์ํ ๋ค์ด์ด๊ทธ๋จ ์ด์ฉํ์ฌ ์๊ฐ ํ๋ฆ์ ๋ฐ๋ผ ์ ์ด ํ๋ฆ, ์ํธ ์์ฉ, ๋์ ์์
→
๊ธฐ๋ฅ ๋ชจ๋ธ๋ง Functional Modeling
์๋ฃ ํ๋ฆ๋ DFD๋ฅผ ์ด์ฉํ์ฌ ๋ค์ ํ๋ก์ธ์ค๋ค ๊ฐ ์๋ฃํ๋ฆ ์ค์ฌ์ผ๋ก ์ฒ๋ฆฌ ๊ณผ์ ํํ - Booch ๋ถ์น ๋ฐฉ๋ฒ
๋ฏธ์์ Micro, ๊ฑฐ์์ Macro ๊ฐ๋ฐ ํ๋ก์ธ์ค ๋ชจ๋ ์ฌ์ฉ, ํด๋์ค์ ๊ฐ์ฒด ๋ถ์ ๋ฐ ์๋ณ. ์์ฑ๊ณผ ์ฐ์ฐ ์ ์ - Jacobson ๋ฐฉ๋ฒ
Use Case๋ฅผ ๊ฐ์กฐํ์ฌ ์ฌ์ฉํจ - Coad์ Yourdon ๋ฐฉ๋ฒ
E-R ๋ค์ด์ด๊ทธ๋จ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด์ ํ์๋ฅผ ๋ชจ๋ธ๋ง, ๊ฐ์ฒด ์๋ณ, ๊ตฌ์กฐ ์๋ณ, ์ฃผ์ ์ ์, ์์ฑ๊ณผ ์ธ์คํด์ค ์ฐ๊ฒฐ ์ ์, ์ฐ์ฐ๊ณผ ๋ฉ์์ง ์ฐ๊ฒฐ ์ ์ ๋ฑ์ ๊ณผ์ - Wris-Brock ๋ฐฉ๋ฒ
๋ถ์๊ณผ ์ค๊ณ ๊ตฌ๋ถ ์๊ณ , ๊ณ ๊ฐ ๋ช ์ธ์ ํ๊ฐ, ์ค๊ณ ์์ ๊น์ง ์ฐ์์ ์ผ๋ก ์ํ
๊ฐ์ฒด์งํฅ ์ค๊ณ ์์น (SOLID ์์น)
- ๋จ์ผ ์ฑ
์ ์์น SRP
๊ฐ์ฒด๋ ๋จ ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผ ํ๋ ์์น - ๊ฐ๋ฐฉ - ํ์ ์์น OCP
์ฝ๋ ๋ณ๊ฒฝํ์ง ์๊ณ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๋๋ก ์ค๊ณ - ๋ฆฌ์ค์ฝํ ์นํ ์์น LSP
์์ ํด๋์ค๋ ์ต์ ๋ถ๋ชจ ํด๋์ค์ ๊ธฐ๋ฅ ์ํํ ์ ์์ด์ผ ํจ - ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น ISP
์ฌ์ฉํ์ง ์๋ ์ธํฐํ์ด์ค์ ์์กด ๊ด๊ณ๋ฅผ ๋งบ๊ฑฐ๋ ์ํฅ์ ๋ฐ์ง ์์์ผ ํ๋ค - ์์กด ์ญ์ ์์น DIP
์์กด ๊ด๊ณ ์ฑ๋ฆฝ ์ ์ถ์์ฑ์ด ๋์ ํด๋์ค์ ์์กด ๊ด๊ณ๋ฅผ ๋งบ์ด์ผ ํ๋ค
๋ชจ๋ Module
๋ชจ๋ํ๋ฅผ ํตํด ๋ถ๋ฆฌ๋ ์์คํ ์ ๊ฐ ๊ธฐ๋ฅ. ์๋ธ๋ฃจํด, ์๋ธ์์คํ , ์ํํธ์จ์ด ๋ด ํ๋ก๊ทธ๋จ, ์์ ๋จ์ ๋ฑ์ ์๋ฏธ
๊ธฐ๋ฅ์ ๋ ๋ฆฝ์ฑ - ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ ๋ชจ๋ ๊ธฐ๋ฅ์ด ๋ ๋ฆฝ๋จ์ ์๋ฏธ
๋ ผ๋ฆฌ์ ์ธ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ๋ช ๋ น์ด๋ค์ ์งํฉ
๊ฒฐํฉ๋ Coupling, ์์ง๋ Conhension ์ ์ํด ์ธก์ .
๊ฒฐํฉ๋ Coupling
๋ชจ๋ ๊ฐ์ ์ํธ ์์กดํ๋ ์ ๋. ๋ชจ๋ ์ฌ์ด์ ์ฐ๊ด ๊ด๊ณ
๊ฒฐํฉ๋↓ ํ์ง์ด ↑, ๊ฐํ ์๋ก↑ ํ์ง์ด ↓
๊ฒฐํฉ๋ ๊ฐํจ ↔ ๊ฒฐํฉ๋ ์ฝํจ | |||||
๋ด์ฉ ๊ฒฐํฉ๋ Content Coupling |
๊ณตํต ๊ฒฐํฉ๋ Common Coupling |
์ธ๋ถ ๊ฒฐํฉ๋ External Coupling |
์ ์ด ๊ฒฐํฉ๋ Control Coupling |
์คํฌํ ๊ฒฐํฉ๋ Stamp Coupling |
์๋ฃ ๊ฒฐํฉ๋ Data Coupling |
๋ด๋ถ ๊ธฐ๋ฅ ๋ฐ ๋ด๋ถ ์๋ฃ ์ง์ ์ฐธ๊ณ , ์์ | ๊ณตํต ๋ฐ์ดํฐ ์์ญ์ ์ฌ๋ฌ ๋ชจ๋ ์ฌ์ฉ. ์ ์ญ ๋ณ์ ์ฌ์ฉํ์ฌ ๊ฐฑ์ ๋๋ |
์ด๋ค ๋ชจ๋์์ ์ ์ธํ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ถ์ ๋ค๋ฅธ ๋ชจ๋์์ ์ฐธ์กฐ | ๋
ผ๋ฆฌ์ ํ๋ฆ ์ ์ด ์ํด ์ ์ด ์ ํธ, ์ ์ด ์์ ์ ๋ฌ. ํ์ ๋ชจ๋ → ์์ ๋ชจ๋ ์ฒ๋ฆฌ ๋ช ๋ น (๊ถ๋ฆฌ ์ ๋ ํ์) |
๋ชจ๋ ๊ฐ ์ธํฐํ์ด์ค๋ก ๋ฐฐ์ด ๋ฑ ์๋ฃ๊ตฌ์กฐ๊ฐ ์ ๋ฌ๋ ๋์ ๊ฒฐํฉ๋ | ๋ชจ๋ ๊ฐ์ ์ธํฐํ์ด์ค๊ฐ ์๋ฃ ์์๋ก๋ง ๊ตฌ์ฑ |
์์ง๋ Cohension
๋ชจ๋ ๋ด๋ถ ์์๋ค์ด ์๋ก ๊ด๋ จ๋์ด ์๋ ์ ๋
์์ง๋↑ ํ์ง์ด ↑, ์ฝํ ์๋ก↓ ํ์ง์ด ↓
์์ง๋ ๊ฐํจ ↔ ์์ง๋ ์ฝํจ | ||||||
๊ธฐ๋ฅ์ ์์ง๋ Funtional |
์์ฐจ์ ์์ง๋ Sequential |
๊ตํ์ ์์ง๋ Communication |
์ ์ฐจ์ ์์ง๋ Procedural |
์๊ฐ์ ์์ง๋ Temporal |
๋
ผ๋ฆฌ์ ์์ง๋ Logical |
์ ์ฐ์ ์์ง๋ Coincidental |
๋ชจ๋ ๊ธฐ๋ฅ ์์๋ค์ด ๋จ์ผ ๋ฌธ์ ์ ์ฐ๊ด๋์ด ์ํ | ํ๋์ ํ๋์์ ๋์จ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ํ๋์ ๋ฐ์ดํฐ๋ก ์ฌ์ฉ | ๋์ผ ์ ๋ ฅ, ์ถ๋ ฅ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ํํ๋ ๊ตฌ์ฑ ์์๋ค ๋ชจ์ฌ | ๋ชจ๋ ์์ ๊ตฌ์ฑ ์์๋ค์ด ๊ทธ ๊ธฐ๋ฅ์ ์์ฐจ์ ์ผ๋ก ์ํ | ํน์ ์๊ฐ์ ์ฒ๋ฆฌ๋๋ ๋ช ๊ฐ์ ๊ธฐ๋ฅ์ ๋ชจ์ ํ๋์ ๋ชจ๋๋ก ์์ฑ | ์ ์ฌํ ์ฑ๊ฒฉ์ ๊ฐ๊ฑฐ๋ ํน์ ํํ๋ก ๋ถ๋ฅ๋๋ ์ฒ๋ฆฌ ์์๋ค๋ก ํ๋ ๋ชจ๋ ํ์ฑ | ๋ชจ๋ ๋ด๋ถ์ ๊ฐ ๊ตฌ์ฑ ์์๋ค์ด ์๋ก ๊ด๋ จ ์๋ ์์๋ก๋ง ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ |
ํฌ์ธ / ํฌ์์ Fan-in / Fan-Out
์ด๋ค ๋ชจ๋์ ์ ์ดํ๋ ๋ชจ๋์ ์, ์ด๋ค ๋ชจ๋์ ์ํด ์ ์ด๋๋ ๋ชจ๋์ ์
N-S ์ฐจํธ / Nassi-Schneiderman Chart
๋ ผ๋ฆฌ์ ๊ธฐ์ ์ ์ค์ ์ ๋๊ณ ๋ํ์ ์ด์ฉํด ํํ
GOTO, ํ์ดํ๋ฅผ ์ฌ์ฉํ์ง ์์.
์ฐ์, ์ ํ ๋ฐ ๋ค์ค ์ ํ, ๋ฐ๋ณต 3๊ฐ์ง ์ ์ด ๋
ผ๋ฆฌ ๊ตฌ์กฐ๋ก ํํ
์กฐ๊ฑด ๋ณตํฉ๋์ด ์๋ ๊ณณ์ ์ฒ๋ฆฌ๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ช
ํํ ์๋ณ
IPC / Inter - Process Communication
๋ชจ๋ ๊ฐ ํต์ ๋ฐฉ์์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ํ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค ์งํฉ
๋ณต์์ ํ๋ก์ธ์ค๋ฅผ ์ํํ๋ฉฐ ์ด๋ค์ง๋ ํ๋ก์ธ์ค ๊ฐ ํต์ ๊น์ง ๊ตฌํ๊ฐ๋ฅ
- ๊ณต์ ๋ฉ๋ชจ๋ฆฌ (Shared Memory)
- ์์ผ (Socket)
- ์ธ๋งํฌ์ด (Semaphores)
- ํ์ดํ์ ๋ค์๋ ํ์ดํ (Pipes & named Pipes)
- ๋ฉ์์ง ํ์ (Message Queueing)
ํ ์คํธ ์ผ์ด์ค Test Case
์ํํธ์จ์ด๊ฐ ์ฌ์ฉ์์ ์๊ตฌ์ฌํญ์ ์ ํํ๊ฒ ์ค์ํ๋์ง ํ์ธํ๊ธฐ ์ํ ํ ์คํธ ํญ๋ชฉ์ ๋ํ ๋ช ์ธ์
ISO/IEC/IEEE 29119-3 ํ์ค์ ๋ฐ๋ฅธ ๊ตฌ์ฑ์์
์๋ณ์, ํ ์คํธ ํญ๋ชฉ, ์ ๋ ฅ ๋ช ์ธ, ์ถ๋ ฅ ๋ช ์ธ, ํ๊ฒฝ ์ค์ , ํน์ ์ ์ฐจ ์๊ตฌ, ์์กด์ฑ ๊ธฐ์ ๋ฑ...
์ฌ์ฌ์ฉ Reuse
์ด๋ฏธ ๊ฐ๋ฐ๋ ๊ธฐ๋ฅ๋ค ์๋ก์ด ์์คํ ์ด๋ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ฌ์ฉํ๊ธฐ ์ ํฉํ๋๋ก ์ต์ ํ
ํจ์์ ๊ฐ์ฒด | ํด๋์ค๋ ๋ฉ์๋ ๋จ์ ์์ค์ฝ๋ ์ฌ์ฌ์ฉ |
์ปดํฌ๋ํธ | ์ปดํฌ ์์ฒด ์์ X, ์ธํฐํ์ด์ค ํตํด ํต์ ํ๋ ๋ฐฉ์ ์ฌ์ฌ์ฉ |
์ ํ๋ฆฌ์ผ์ด์ | ๊ณตํต ๊ธฐ๋ฅ ์ ๊ณตํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณต์ ํ๋ ๋ฐฉ์ ์ฌ์ฌ์ฉ |
์ฝ๋ ์ข ๋ฅ
์์ฐจ ์ฝ๋ Sequence Code |
์ต์ด ์๋ฃ๋ถํฐ ์ฐจ๋ก๋ก ์ผ๋ จ๋ฒํธ. ์์ ์ฝ๋ | 1,2,3,4... |
๋ธ๋ก ์ฝ๋ Block Code |
๊ณตํต์ด ์๋ ๊ฒ๋ผ๋ฆฌ ๋ธ๋ก์ผ๋ก ๊ตฌ๋ถ, ๊ตฌ๋ถ ์ฝ๋ | 1001~1100 : ์ด๋ฌด, 1101~ ์์ |
10์ง ์ฝ๋ Decimal Code |
0~9๊น์ง 10์ง ๋ถํ ,... ๋์ ๋ถ๋ฅ์ ์ฝ๋ | 1000 ๊ณตํ, 1100 ์ํํธ์จ์ด ๊ณตํ |
๊ทธ๋ฃน ๋ถ๋ฅ ์ฝ๋ Group Classification Code |
๋๋ถ๋ฅ, ์ค๋ถ๋ฅ, ์๋ถ๋ฅ ... | 1-01-001:๋ณธ์ฌ-์ด๋ฌด๋ถ-์ธ์ฌ๊ณ |
์ฐ์ ์ฝ๋ Mnemonic Code |
์ฝ๋ํ ๋์ ํญ๋ชฉ์ ๋ช ์นญ, ์ฝํธ์ ๊ด๊ณ์๋ ์ซ์๋ ๋ฌธ์ | TV-40, 40์ธ์น TV... |
ํ์ ์ซ์ ์ฝ๋ Significant Digit Code |
๊ธธ์ด, ๋์ด, ๋ถํผ ๋ฑ ๋ฌผ๋ฆฌ์ ์์น๋ฅผ ๊ทธ๋๋ก. ์ ํจ ์ซ์์ฝ๋ | 120-720-1500 ๋๊ป ํญ ๊ธธ์ด |
ํฉ์ฑ ์ฝ๋ Combined Code |
2๊ฐ ์ด์์ ์ฝ๋๋ฅผ ์กฐํฉํ์ฌ ๋ง๋๋ | ์ฐ์ + ์์ฐจ KE-711 ๋ํํญ๊ณต 711๊ธฐ |
๋์์ธ ํจํด Design pattern
๋ชจ๋ ๊ฐ์ ๊ด๊ณ ๋ฐ ์ธํฐํ์ด์ค๋ฅผ ์ค๊ณํ ๋ ์ฐธ์กฐํ ์ ์๋ ์ ํ์ ์ธ ํด๊ฒฐ ๋ฐฉ์ ๋๋ ์์
๋ฌธ์ ๋ฐ ๋ฐฐ๊ฒฝ, ์ค์ ์ฌ๋ก, ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ ์ฝ๋ ๋ฑ
- ์์ฑ ํจํด Creational Pattern
ํด๋์ค๋ ๊ฐ์ฒด์ ์์ฑ, ์ฐธ์กฐ ๊ณผ์ - ์ถ์ ํฉํ ๋ฆฌ Abstract Factory ์ถ์ํํ
: ์๋ก ์ฐ๊ดํ๋ ๊ฐ์ฒด๋ค์ ๊ทธ๋ฃน์ผ๋ก ์์ฑ, ์ถ์์ ํํ. ์๋ธํด๋์ค ๋ฌถ์ด ๊ต์ฒด - ๋น๋ Builder ๊ฑด์ถ์กฐํฉ
: ์๊ฒ ๋ถ๋ฆฌ๋ ์ธ์คํด์ค๋ฅผ ๊ฑด์ถ ํ๋ฏ ์กฐํฉ. ์์ฑ๊ณผ ํํ ๋ฐฉ๋ฒ ๋ถ๋ฆฌ. ๋ค๋ฅธ ๊ฒฐ๊ณผ ๋ง๋ค์ด ๋ผ ์ ์์ - ํฉํ ๋ฆฌ ๋ฉ์๋ Factory Method ์บก์ํ
: ๊ฐ์ฒด ์์ฑ์ ์๋ธ ํด๋์ค์์ ์ฒ๋ฆฌํ๋๋ก ๋ถ๋ฆฌ, ์บก์ํ. ์์-์ธํฐํ์ด์ค, ํ์-์ค์ ์์ฑ.
= ๊ฐ์ ์์ฑ์ ํจํด Virtual Constructor ํจํด - ํ๋กํ ํ์
Prototype ๋ณต์
: ์๋ณธ ๊ฐ์ฒด ๋ณต์ , ์์ฑ. ๋น์ฉ์ด ํฐ ๊ฒฝ์ฐ ์ฃผ๋ก ์ด์ฉ - ์ฑ๊ธํค Singleton ์ฐธ์กฐ์ฐธ์กฐ
: ์์ฑ, ์ด๋์๋ ์ฐธ์กฐ O, ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ฐธ์กฐ X. ํด๋์ค ๋ด ์ธ์คํด์ค ํ๋์์ ๋ณด์ฅ, ๋ถํ์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น ์ต์ํ
- ์ถ์ ํฉํ ๋ฆฌ Abstract Factory ์ถ์ํํ
- ๊ตฌ์กฐ ํจํด Structural Pattern
๊ตฌ์กฐ๊ฐ ๋ณต์กํ ์์คํ ์ ๊ฐ๋ฐํ๊ธฐ ์ฝ๋๋ก ํด๋์ค๋ ๊ฐ์ฒด ์กฐํฉ.
- ์ด๋ํฐ Adapter ๋ณํ
: ํธํ์ฑ ์๋ ํด๋์ค๋ค์ ์ธํฐํ์ด์ค๋ฅผ ๋ค๋ฅธ ํด๋์ค๊ฐ ์ด์ฉํ ์ ์๋๋ก ๋ณํ. (์ธํฐํ์ด์ค๊ฐ ์ผ์นํ์ง ์์ ๋ ์ฌ์ฉ) - ๋ธ๋ฆฌ์ง Bridge ๊ธฐ๋ฅ๊ตฌํ๋ถ๋ฆฌ
: ๊ตฌํ๋ถ์์ ์ถ์์ธต์ ๋ถ๋ฆฌ. ์๋ก๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅํ ์ ์๋๋ก. ๊ธฐ๋ฅ / ๊ตฌํ ๋ณ๋ ํด๋์ค - ์ปดํฌ์งํธ Composite ๋ณตํฉ๊ตฌ์กฐ ํธ๋ฆฌํํ
: ๋ณตํฉ ๊ฐ์ฒด, ๋จ์ผ ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ถ์์ด ๋ค๋ฃจ๊ณ ์. ํธ๋ฆฌ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ. ๋ณตํฉ ๋ด ๋ณตํฉ ๊ฐ์ฒด ๊ตฌ์กฐ ํํ ๊ฐ๋ฅ - ๋ฐ์ฝ๋ ์ดํฐ Decorator ๋ง๋ถ์ด๊ธฐ
: ๊ฐ์ฒด ๊ฐ ๊ฒฐํฉ์ผ๋ก ๋ฅ๋์ ์ผ๋ก ๊ธฐ๋ฅ ํ์ฅ. ๋ถ๊ฐ ๊ธฐ๋ฅ ์ถ๊ฐ ์ํด ๋ง๋ถ์ด๋ ๋ฐฉ์ - ํผ์ธ๋ Facade Wrapper๊ฐ์ธ
: ๋ณต์ก ์๋ธ ํด๋์ค ํผํด ๋ ์์์ ์ธํฐํ์ด์ค ๊ตฌ์ฑ. ์๋ธ ํด๋์ค๋ค ์ฌ์ด์ ํตํฉ ์ธํฐํ์ด์ค Wrapper๊ฐ์ฒด ํ์ - ํ๋ผ์ด์จ์ดํธ Flyweight ๊ฐ๋ณ๊ฒ ๊ณต์
: ๊ฐ๋ฅํ ๊ณต์ ํด์ ์ฌ์ฉ. ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ ๋ค์ ์ ์ฌ ๊ฐ์ฒด ์์ฑ, ์กฐ์ - ํ๋ก์ Proxy ๋๋ฆฌ ์กฐํฉ
: ๋ณต์ก ์์คํ ๊ฐ๋ฐ ์ํด ํด๋์ค๋ ๊ฐ์ฒด ์กฐํฉ. ๋๋ฆฌ์. ๋ด๋ถ์์๋ ๋ณต์ก์ ๋จ์ํ๊ฒ, ์ธ๋ถ์์๋ ๋ด์ฉ ์จ๊ฒจ์ฃผ๊ธฐ
- ์ด๋ํฐ Adapter ๋ณํ
- ํ์ ํจํด Behavioral Pattern
class๋ ๊ฐ์ฒด๋ค์ด ์๋ก ์ํธ์์ฉ, ์ฑ ์ ๋ถ๋ฐฐ ๋ฐฉ๋ฒ
- ์ฑ
์ ์ฐ์ Chain of Responsibility ์ฐ๋์ฑ
์
: ์ฐ๋ ์ฑ ์. ์์ฒญ์ด ํด๊ฒฐ๋ ๋ ๊น์ง ๊ณ ๋ฆฌ๋ฅผ ๋ฐ๋ผ ์ฑ ์์ด ๋์ด๊ฐ - Command ์์ฒญ์บก์ํ
: ์์ฒญ์ ์บก์ํํ์ฌ ์ฌ์ด์ฉ, ์ ์ฅ, ๋ก๊ทธ ๋จ๊น. ๊ฐ์ข ๋ช ๋ น์ด๋ค ์ถ์, ๊ตฌ์ฒด ํด๋์ค๋ก ๋ถ๋ฆฌํ์ฌ ๋จ์ํ - Interpreter ๋ฌธ๋ฒํํ
: ์ธ์ด์ ๋ฌธ๋ฒ ํํ ์ ์. SQL, ํต์ ํ๋กํ ์ฝ ๊ฐ์ ๊ฒ ๊ฐ๋ฐํ ๋ ์ฌ์ฉ - ๋ฐ๋ณต์ Iterator ์์ฃผ์ ๊ทผ
: ์๋ฃ ๊ตฌ์กฐ์ ๊ฐ์ด ์ ๊ทผ ์ฆ์ ๊ฐ์ฒด์ ๋ํด ๋์ผ ์ธํฐํ์ด์ค ์ฌ์ฉ. ๋ด๋ถ ๋ ธ์ถ ์์ด ์์ฐจ์ ์ฌ์ฉ - ์ค์ฌ์ Mediator ์์กด์ฑ์ค์ฌ
: ๋ณต์กํ ์ํธ์์ฉ Interface๋ฅผ ์บก์ํ, ๊ฐ์ฒด ์ ์. ๊ฐ์ฒด ์ฌ์ด ์์กด์ฑ ์ค์ฌ ๊ฒฐํฉ๋ ๊ฐ์ - Memento ๊ทธ๋๋ฉ์ถฐ
: ํน์ ์์ ๊ฐ์ฒด ๋ด๋ถ ๊ฐ์ฒดํ. ๋๋๋ฆฌ๊ธฐ ๊ธฐ๋ฅ ctrl + Z - Observer ๊ฐ์์ ๋ฌ
: ๋ณํํ๋ฉด ๋ค๋ฅธ ๊ฐ์ฒด๋ค์๊ฒ ๋ณํ๋ ์ํ ์ ๋ฌ. ์ผ๋๋ค์ ์์กด์ฑ. ๋ถ์ฐ์์คํ ์์ ์ด๋ฒคํธ Publish, Subscribeํ ๋ - State ์ํฉ๋ฐ๋ผ
: ์ํ์ ๋ฐ๋ผ ๋์ผ ๋์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผ ํ ๋ ์ฌ์ฉ. ๊ฐ์ฒด ์ํ ์บก์ํ, ์ฐธ์กฐ - Strategy ์๊ณ ๋ฆฌ์ฆ์ ํ
: ๋์ผ ๊ณ์ด ์๊ณ ๋ฆฌ์ฆ๋ค์ ๊ฐ๋ณ์ ์ผ๋ก ์บก์ํ, ์ํธ ๊ตํ. ํด๋ผ์ด์ธํธ ๋ ๋ฆฝ์ ์ผ๋ก ์ํ๋ ์๊ณ ๋ฆฌ์ฆ ์ ํ - Template Method ์์๊ณจ๊ฒฉ์ ์
: ์์ ํด๋์ค์์ ๊ณจ๊ฒฉ ์ ์, ํ์์์ ์ธ๋ถ ์ฒ๋ฆฌ ๊ตฌ์ฒดํ. ์ ์ ์๋ธ ๋ฌถ์ด ์์ ์ ์ (์ฝ๋ ์ฉ์ด์ฑ) - Visitor ํด๋์ค๋ฐฉ๋ฌธ
: ๊ฐ ํด๋์ค๋ค ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ์ฒ๋ฆฌ ๊ธฐ๋ฅ ๋ถ๋ฆฌ. ์ด๋ฅผ ๋ฐฉ๋ฌธํ์ฌ ์ํ
- ์ฑ
์ ์ฐ์ Chain of Responsibility ์ฐ๋์ฑ
์
์ค์ ํค์๋ ์ ์ฌ์ ๋ฆฌ
Fan-in / Fan-out (๋ฐ๋๊ฑฐ, ์ถ๋ ฅํ๋๊ฑฐ), ๋์์ธํจํด (๋ชจ๋๊ด๊ณ, ์ธํฐํ์ด์ค ์ ์) - ํ์ Observer(๋ณํํ๋ฉด ์ ๋ฌ, ์ผ๋๋ค)
๋ชจ๋ํ (๋ชจ๋๊ฐ ๊ฒฐํฉ๋ Coupling↓ ๋ชจ๋ ๋ด ์์๋ค์ ์์ง๋ Cohension↑)
๊ฐ์ฒด์งํฅ๋ถ์- ๋ผ๋ฐ์ฐ๋ฐฉ๋ฒ(๊ทธ๋ํฝ ํ๊ธฐ๋ฒ์ด์ฉํด ๋ชจ๋ธ๋ง)
๊ฐ์ฒด์งํฅ์์น SOLID
๊ฒฐํฉ๋ ์์ง๋ (**)
IPC(๋ชจ๋ ๊ฐ ํต์ ๋ฐฉ์)
ํ ์คํธ์ผ์ด์ค (์๊ตฌ์ฌํญ ์ค์ํ๋์ง)
'์๊ฒฉ์ฆ ์์ผ๋ฉด ์ข์ง > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ค๊ธฐ] ์ด์ด์ด์์ฝ - 6์ฅ ํ๋ฉด ์ค๊ณ (1) | 2024.10.16 |
---|---|
[์ค๊ธฐ] ์ด์ด์ด์์ฝ - 5์ฅ ์ธํฐํ์ด์ค ๊ตฌํ (0) | 2024.10.15 |
[์ค๊ธฐ] ์ด์ด์ด์์ฝ - 3์ฅ ํตํฉ ๊ตฌํ (1) | 2024.10.13 |
[์ค๊ธฐ] ์ด์ด์ด์์ฝ - 2์ฅ ๋ฐ์ดํฐ ์ ์ถ๋ ฅ ๊ตฌํ (3) | 2024.10.13 |
[์ค๊ธฐ] ์ด์ด์ด์์ฝ - 1์ฅ ์๊ตฌ์ฌํญ ํ์ธ (6) | 2024.10.06 |