flow-vector

๐Ÿ’ก ์กฐ์˜ํ˜ธ๋‹˜์˜ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค

  • ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ ์•ˆ์ •์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ผ ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์„ ๊ตฌ์„ฑํ•˜๋ผ

๊ธฐ๋Šฅ ์„ค๊ณ„ vs ๊ตฌ์กฐ ์„ค๊ณ„

  • ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋™์‹œ์— ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•จ
  • ๋ณ€๊ฒฝ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„ ํƒ์˜ ์—ฌ์ง€๋ฅผ ์„ค๊ณ„์— ๋…น์—ฌ ๋†“์•„์•ผํ•จ
    • ๋ณ€๊ฒฝ์— ์†Œ์š”๋˜๋Š” ๋น„์šฉ์„ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์Œ
  • ์–ด๋–ป๊ฒŒ??
    • ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ์•ˆ์ •์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„ํ•˜์ž!
    • ์ž์ฃผ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ์•ˆ์ •์ ์ธ ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ๊ฐ์ฒด ๊ฐ„์˜ ์ฑ…์ž„์œผ๋กœ ๋ถ„๋ฐฐ

๋‘๊ฐ€์ง€ ์žฌ๋ฃŒ : ๊ธฐ๋Šฅ๊ณผ ๊ตฌ์กฐ

  • ๊ธฐ๋Šฅ
    • ์‚ฌ์šฉ์ž๊ฐ€ ๋ชฉํ‘œ๋‹ฌ์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์˜ ์„œ๋น„์Šค
  • ๊ตฌ์กฐ
    • ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฐ˜
    • ๊ธฐ๋Šฅ๋ณ€๊ฒฝ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์•ˆ์ •์ ์ด์–ด์•ผํ•จ
  • ๊ธฐ๋ฒ•
    • ๊ตฌ์กฐ๋Š” ์‚ฌ์šฉ์ž๋‚˜ ์ดํ•ด๊ด€๊ณ„์ž๋“ค์ด ๋„๋ฉ”์ธ์— ๊ด€ํ•ด ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋…๊ณผ ๊ฐœ๋…๋“ค๊ฐ„์˜ ๊ด€๊ณ„๋กœ ํ‘œํ˜„
    • ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž์˜ ๋ชฉํ‘œ๋ฅผ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‹œ์Šคํ…œ์˜ ํ–‰์œ„๋กœ ํ‘œํ˜„
  • ์œ ์Šค์ผ€์ด์Šค ๋ชจ๋ธ๋ง
    • ๊ธฐ๋Šฅ ์ˆ˜์ง‘ํ•˜๊ณ  ํ‘œํ˜„ํ•˜๊ธฐ์œ„ํ•œ ๊ธฐ๋ฒ•
  • ๋„๋ฉ”์ธ ๋ชจ๋ธ๋ง
    • ๊ตฌ์กฐ ์ˆ˜์ง‘ํ•˜๊ณ  ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•

์•ˆ์ •์ ์ธ ์žฌ๋ฃŒ: ๊ตฌ์กฐ

  • ๋„๋ฉ”์ธ
    • ์†Œํ”„ํŠธ์›จ์–ด ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์ด ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ถ„์•ผ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉ
    • ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์ƒ ๋ถ„์•ผ๋ฅผ ๋„๋ฉ”์ธ์ด๋ผ๊ณ ํ•จ
    • ๋ชจ๋ธ?
      • ๋Œ€์ƒ์„ ๋‹จ์ˆœํ™”ํ•ด์„œ ํ‘œํ˜„ํ•œ ๊ฒƒ
      • ์ง€์‹์„ ์„ ํƒ์ ์œผ๋กœ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์˜์‹์ ์œผ๋กœ ๊ตฌ์กฐํ™”ํ•œ ํ˜•ํƒœ
    • ์˜ˆ์‹œ
      • ์€ํ–‰ ์—…๋ฌด ์ข…์‚ฌ์ž
        • ์€ํ–‰ ๋„๋ฉ”์ธ?
          • ๊ณ ๊ฐ๊ณผ ๊ณ„์ขŒ ์‚ฌ์ด์˜ ๋ˆ์˜ ํ๋ฆ„
      • ์ค‘๊ณ ์ฐจ ํŒ๋งค์ƒ
        • ๊ตฌ๋งค๋˜๋Š” ์ž๋™์ฐจ์™€ ํŒ๋งค๋˜๋Š” ์ž๋™์ฐจ์˜ ๊ตํ™˜
    • ํ•ด๋‹น ๋„๋ฉ”์ธ์—์„œ ์ผํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋„๋ฉ”์ธ์„ ๋ฐ”๋ผ๋ณด๋Š” ๋ชจ๋ธ์ด ์กด์žฌํ•จ → ๋„๋ฉ”์ธ ๋ชจ๋ธ
    • ๊ฒฐ๊ตญ ์‚ฌ์šฉ์ž๊ฐ€ ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋…์„ ์€์œ ๋ฅผ ํ†ตํ•ด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์•ผํ•จ
      • ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ์€์œ ํ•ด์„œ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค๋ฉด๋จ
      ์ถ”์ฒœํŒ€์˜ DDD ๋„์ž…๊ธฐ

๋ถˆ์•ˆ์ •ํ•œ ์žฌ๋ฃŒ: ๊ธฐ๋Šฅ

  • ์œ ์Šค์ผ€์ด์Šค
    • ์‚ฌ์šฉ์ž๋“ค์ด ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋‹ฌ์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” ‘๋ชฉํ‘œ’๋ฅผ ์ถฉ์กฑ ์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉด ๋œ๋‹ค
    • ์‚ฌ์šฉ์ž๋Š” ๋ชฉํ‘œ๋‹ฌ์„ฑ์„ ์œ„ํ•ด ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•จ
    • ์ด๋Ÿฌํ•œ ์ƒํ˜ธ์ž‘์šฉ์˜ ํ๋ฆ„์„ ํ…์ŠคํŠธ๋กœ ์ •๋ฆฌํ•œ ๊ฒƒ์„ ์œ ์Šค์ผ€์ด์Šค๋ผ๊ณ ํ•จ
    • ํŠน์ง•
      • ์‚ฌ์šฉ์ž์™€ ์‹œ์Šคํ…œ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ณด์—ฌ์ฃผ๋Š” ํ…์ŠคํŠธ
      • ํ•˜๋‚˜์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ์‹œ๋‚˜๋ฆฌ์˜ค๋“ค์˜ ์ง‘ํ•จ
        • ์ •๊ธฐ์˜ˆ๊ธˆ ํ•ด์ง€ ์‹œ ์˜ค๋Š˜๊นŒ์ง€ ์ด์ž๊ณ„์‚ฐ
        • ๋‹ค๋ฅธ ๋‚ ์งœ๊นŒ์ง€ ์ด์ž๊ณ„์‚ฐ
      • ๋‹จ์ˆœํ•œ ํ”ผ์ฒ˜ ๋ชฉ๋ก๊ณผ ๋‹ค๋ฅด๊ฒŒ ์—ฐ๊ด€๋œ ๊ธฐ๋Šฅ์„ ํ•จ๊ป˜ ๋ฌถ์„ ์ˆ˜ ์žˆ์Œ
        • ํŠน์ • ํ”ผ์ฒ˜๋“ค๋ผ๋ฆฌ ์–ด๋–ค ์˜์‚ฌ์†Œํ†ต์„ ๋‚˜๋ˆ„๋Š”์ง€ ์•Œ์ˆ˜ ์žˆ์Œ
      • ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ด€๋ จ๋œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋ฉด ์•ˆ๋จ
        • ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ž์ฃผ ๋ฐ”๋€Œ๊ธฐ ๋•Œ๋ฌธ
      • ๋‚ด๋ถ€ ์„ค๊ณ„์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ํฌํ•จ ํ•˜์ง€ ์•Š์Œ
        • ์œ ์Šค์ผ€์ด์Šค๋Š” ์„ค๊ณ„ ๊ธฐ๋ฒ•๋„ ๊ฐ์ฒด์ง€ํ–ฅ ๊ธฐ๋ฒ•๋„ ์•„๋‹ˆ๋‹ค!!

์žฌ๋ฃŒ ํ•ฉ์น˜๊ธฐ: ๊ธฐ๋Šฅ๊ณผ ๊ตฌ์กฐ์˜ ํ†ตํ•ฉ

  • ์ˆœ์„œ
    • ์‹œ์Šคํ…œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์‹๋ณ„
      • ์œ ์Šค์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์ž
        • ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ๋„์ถœ ํ•  ์ˆ˜ ์žˆ์Œ
    • ๋„๋ฉ”์ธ ๋ชจ๋ธ ์ƒ์„ฑ ํ›„ ๊ฐœ๋…์„ ์€์œ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ์ฒด ์„ ํƒ
      • ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ํ†ตํ•ด ํ•ด๋‹น ๋„๋ฉ”์ธ์—์„œ ํ†ต์šฉ๋˜๋Š” ๊ฐœ๋…์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Œ
        • ์‚ฌ์šฉ์ž์™€ ์„ค๊ณ„์ž๊ฐ€ ๊ณต์œ ํ•˜๋Š” ์•ˆ์ •์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
    • ๋ฉ”์„ธ์ง€๋ฅผ ์‹๋ณ„ํ•˜์—ฌ ์ ์ ˆํ•œ ๊ฐ์ฒด์—๊ฒŒ ์ฑ…์ž„ ๋ถ„๋ฐฐ
      • ์œ ์Šค์ผ€์ด์Šค๋กœ ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•ด์•ผํ•  ๊ธฐ๋Šฅ์„ ๊ฐ์ฒด์—๊ฒŒ ์—ญํ•  / ์ฑ…์ž„์œผ๋กœ ๋ถ„๋ฐฐ
      • ์ฑ…์ž„ ํ• ๋‹น์˜ ์›์น™
        • ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด์—๊ฒŒ ๊ทธ ์ฑ…์ž„์„ ํ• ๋‹นํ•œ๋‹ค
    • ๊ฐ์ฒด ๊ตฌํ˜„์„ ์œ„ํ•ด ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ
  • ์„ค๊ณ„ ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ์—ฌ๋Ÿฌ ๋””์ž์ธ ํŒจํ„ด๋“ค์ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Œ
    • ์˜ˆ์‹œ - strategy pattern
      • ๋ฉ”์„ธ์ง€์˜ ๋ฐ˜ํ™˜ ๊ฐ’์€ ๊ฐ™์ง€๋งŒ ํ•ด๋‹น ๋ฐ˜ํ™˜๊ฐ’์„ ๋งŒ๋“œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ์ „๋žต
      • ๋‹จ๋ฆฌ , ๋ณต๋ฆฌ ์ด์ž ๊ณ„์‚ฐ ๋ฐฉ์‹์„ ์ ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉ
        • ์ด์ž๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฐ™์ง€๋งŒ ์ด์ž๋ฅผ ๊ณ„์‚ฐ ํ•˜๋Š” ๊ณผ์ •์ด ๋‹ค๋ฆ„
profile

flow-vector

@flow-vector

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!