๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ž๊ฒฉ์ฆ ์žˆ์œผ๋ฉด ์ข‹์ง€/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

[์‹ค๊ธฐ] ์ดˆ์ดˆ์ดˆ์š”์•ฝ - 4์žฅ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„

by ์ž„๋ฆฌ๋‘ฅ์ ˆ 2024. 10. 15.
๋ฐ˜์‘ํ˜•

์ธ๋„ค์ผ ์ง์ ‘ ๋งŒ๋“ค์–ด๋”ฐ ใ…‹ใ…‹

 


 

๋”๋ณด๊ธฐ

์ฑ… ์ž์ฒด์—์„œ 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.  ํด๋ž˜์Šค ๋‚ด ์ธ์Šคํ„ด์Šค ํ•˜๋‚˜์ž„์„ ๋ณด์žฅ, ๋ถˆํ•„์š” ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„ ์ตœ์†Œํ™”
  • ๊ตฌ์กฐ ํŒจํ„ด Structural Pattern
    ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์‰ฝ๋„๋ก ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด ์กฐํ•ฉ. 
    • ์–ด๋Œ‘ํ„ฐ Adapter ๋ณ€ํ™˜
      : ํ˜ธํ™˜์„ฑ ์—†๋Š” ํด๋ž˜์Šค๋“ค์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜. (์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉ)
    • ๋ธŒ๋ฆฌ์ง€ Bridge ๊ธฐ๋Šฅ๊ตฌํ˜„๋ถ„๋ฆฌ
      : ๊ตฌํ˜„๋ถ€์—์„œ ์ถ”์ƒ์ธต์„ ๋ถ„๋ฆฌ. ์„œ๋กœ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก. ๊ธฐ๋Šฅ / ๊ตฌํ˜„ ๋ณ„๋„ ํด๋ž˜์Šค 
    • ์ปดํฌ์ง€ํŠธ Composite ๋ณตํ•ฉ๊ตฌ์กฐ ํŠธ๋ฆฌํ‘œํ˜„
      : ๋ณตํ•ฉ ๊ฐ์ฒด, ๋‹จ์ผ ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ถ„์—†์ด ๋‹ค๋ฃจ๊ณ ์ž. ํŠธ๋ฆฌ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ. ๋ณตํ•ฉ ๋‚ด ๋ณตํ•ฉ ๊ฐ์ฒด ๊ตฌ์กฐ ํ‘œํ˜„ ๊ฐ€๋Šฅ 
    • ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ Decorator ๋ง๋ถ™์ด๊ธฐ
      : ๊ฐ์ฒด ๊ฐ„ ๊ฒฐํ•ฉ์œผ๋กœ ๋Šฅ๋™์ ์œผ๋กœ ๊ธฐ๋Šฅ ํ™•์žฅ. ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์œ„ํ•ด ๋ง๋ถ™์ด๋Š” ๋ฐฉ์‹
    • ํผ์‹ธ๋“œ Facade Wrapper๊ฐ์‹ธ
      : ๋ณต์žก ์„œ๋ธŒ ํด๋ž˜์Šค ํ”ผํ•ด ๋” ์ƒ์œ„์— ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์„ฑ. ์„œ๋ธŒ ํด๋ž˜์Šค๋“ค ์‚ฌ์ด์— ํ†ตํ•ฉ ์ธํ„ฐํŽ˜์ด์Šค Wrapper๊ฐ์ฒด ํ•„์š”
    • ํ”Œ๋ผ์ด์›จ์ดํŠธ Flyweight ๊ฐ€๋ณ๊ฒŒ ๊ณต์œ 
      : ๊ฐ€๋Šฅํ•œ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉ. ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ ๋‹ค์ˆ˜ ์œ ์‚ฌ ๊ฐ์ฒด ์ƒ์„ฑ, ์กฐ์ž‘
    • ํ”„๋ก์‹œ Proxy ๋Œ€๋ฆฌ ์กฐํ•ฉ
      : ๋ณต์žก ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์œ„ํ•ด ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด ์กฐํ•ฉ. ๋Œ€๋ฆฌ์ž. ๋‚ด๋ถ€์—์„œ๋Š” ๋ณต์žก์„ ๋‹จ์ˆœํ•˜๊ฒŒ, ์™ธ๋ถ€์—์„œ๋Š” ๋‚ด์šฉ ์ˆจ๊ฒจ์ฃผ๊ธฐ
  • ํ–‰์œ„ ํŒจํ„ด Behavioral Pattern
    class๋‚˜ ๊ฐ์ฒด๋“ค์ด ์„œ๋กœ ์ƒํ˜ธ์ž‘์šฉ, ์ฑ…์ž„ ๋ถ„๋ฐฐ ๋ฐฉ๋ฒ•
    • ์ฑ…์ž„ ์—ฐ์‡„ Chain of Responsibility ์—ฐ๋Œ€์ฑ…์ž„
      : ์—ฐ๋Œ€ ์ฑ…์ž„. ์š”์ฒญ์ด ํ•ด๊ฒฐ๋  ๋•Œ ๊นŒ์ง€ ๊ณ ๋ฆฌ๋ฅผ ๋”ฐ๋ผ ์ฑ…์ž„์ด ๋„˜์–ด๊ฐ
    • Command ์š”์ฒญ์บก์Šํ™” 
      : ์š”์ฒญ์„ ์บก์Šํ™”ํ•˜์—ฌ ์žฌ์ด์šฉ, ์ €์žฅ, ๋กœ๊ทธ ๋‚จ๊น€. ๊ฐ์ข… ๋ช…๋ น์–ด๋“ค ์ถ”์ƒ, ๊ตฌ์ฒด ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋‹จ์ˆœํ™” 
    • Interpreter ๋ฌธ๋ฒ•ํ‘œํ˜„
      : ์–ธ์–ด์— ๋ฌธ๋ฒ• ํ‘œํ˜„ ์ •์˜. SQL, ํ†ต์‹  ํ”„๋กœํ† ์ฝœ ๊ฐ™์€ ๊ฒƒ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉ
    • ๋ฐ˜๋ณต์ž Iterator ์ž์ฃผ์ ‘๊ทผ
      : ์ž๋ฃŒ ๊ตฌ์กฐ์™€ ๊ฐ™์ด ์ ‘๊ทผ ์žฆ์€ ๊ฐ์ฒด์— ๋Œ€ํ•ด ๋™์ผ ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ. ๋‚ด๋ถ€ ๋…ธ์ถœ ์—†์ด ์ˆœ์ฐจ์  ์‚ฌ์šฉ
    • ์ค‘์žฌ์ž Mediator ์˜์กด์„ฑ์ค„์—ฌ
      : ๋ณต์žกํ•œ ์ƒํ˜ธ์ž‘์šฉ Interface๋ฅผ ์บก์Šํ™”, ๊ฐ์ฒด ์ •์˜. ๊ฐ์ฒด ์‚ฌ์ด ์˜์กด์„ฑ ์ค„์—ฌ ๊ฒฐํ•ฉ๋„ ๊ฐ์†Œ
    • Memento ๊ทธ๋•Œ๋ฉˆ์ถฐ
      : ํŠน์ • ์‹œ์  ๊ฐ์ฒด ๋‚ด๋ถ€ ๊ฐ์ฒดํ™”. ๋˜๋Œ๋ฆฌ๊ธฐ ๊ธฐ๋Šฅ ctrl + Z
    • Observer ๊ฐ์‹œ์ „๋‹ฌ
      : ๋ณ€ํ™”ํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค์—๊ฒŒ ๋ณ€ํ™”๋œ ์ƒํƒœ ์ „๋‹ฌ. ์ผ๋Œ€๋‹ค์˜ ์˜์กด์„ฑ. ๋ถ„์‚ฐ์‹œ์Šคํ…œ์—์„œ ์ด๋ฒคํŠธ Publish, Subscribeํ• ๋•Œ
    • State ์ƒํ™ฉ๋”ฐ๋ผ
      : ์ƒํƒœ์— ๋”ฐ๋ผ ๋™์ผ ๋™์ž‘ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ. ๊ฐ์ฒด ์ƒํƒœ ์บก์Šํ™”, ์ฐธ์กฐ
    • Strategy ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํƒ
      : ๋™์ผ ๊ณ„์—ด ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์บก์Šํ™”, ์ƒํ˜ธ ๊ตํ™˜. ํด๋ผ์ด์–ธํŠธ ๋…๋ฆฝ์ ์œผ๋กœ ์›ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ ํƒ
    • Template Method ์ƒ์œ„๊ณจ๊ฒฉ์ •์˜
      : ์ƒ์œ„ ํด๋ž˜์Šค์—์„œ ๊ณจ๊ฒฉ ์ •์˜, ํ•˜์œ„์—์„œ ์„ธ๋ถ€ ์ฒ˜๋ฆฌ ๊ตฌ์ฒดํ™”. ์œ ์„œ ์„œ๋ธŒ ๋ฌถ์–ด ์ƒ์œ„ ์ •์˜ (์ฝ”๋“œ ์šฉ์ด์„ฑ)
    • Visitor ํด๋ž˜์Šค๋ฐฉ๋ฌธ
      : ๊ฐ ํด๋ž˜์Šค๋“ค ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ ๋ถ„๋ฆฌ. ์ด๋ฅผ ๋ฐฉ๋ฌธํ•˜์—ฌ ์ˆ˜ํ–‰

 


์ค‘์š” ํ‚ค์›Œ๋“œ ์ˆœ ์žฌ์ •๋ฆฌ 

Fan-in / Fan-out (๋ฐ›๋Š”๊ฑฐ, ์ถœ๋ ฅํ•˜๋Š”๊ฑฐ), ๋””์ž์ธํŒจํ„ด (๋ชจ๋“ˆ๊ด€๊ณ„, ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜) - ํ–‰์œ„ Observer(๋ณ€ํ™”ํ•˜๋ฉด ์ „๋‹ฌ, ์ผ๋Œ€๋‹ค)

๋ชจ๋“ˆํ™” (๋ชจ๋“ˆ๊ฐ„ ๊ฒฐํ•ฉ๋„ Coupling↓  ๋ชจ๋“ˆ ๋‚ด ์š”์†Œ๋“ค์˜ ์‘์ง‘๋„ Cohension↑)

๊ฐ์ฒด์ง€ํ–ฅ๋ถ„์„- ๋Ÿผ๋ฐ”์šฐ๋ฐฉ๋ฒ•(๊ทธ๋ž˜ํ”ฝ ํ‘œ๊ธฐ๋ฒ•์ด์šฉํ•ด ๋ชจ๋ธ๋ง)

๊ฐ์ฒด์ง€ํ–ฅ์›์น™ SOLID

๊ฒฐํ•ฉ๋„ ์‘์ง‘๋„ (**)

IPC(๋ชจ๋“ˆ ๊ฐ„ ํ†ต์‹  ๋ฐฉ์‹)

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค (์š”๊ตฌ์‚ฌํ•ญ ์ค€์ˆ˜ํ–ˆ๋Š”์ง€)

๋ฐ˜์‘ํ˜•

์ตœ๊ทผ๋Œ“๊ธ€

์ตœ๊ทผ๊ธ€

skin by ยฉ 2024 ttutta