Clean Architecture

๋นจ๋ฆฌ๊ฐ€๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์ œ๋Œ€๋กœ ๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค. - ๋กœ๋ฒ„ํŠธ C. ๋งˆํ‹ด (Robert C. Martin)

์†Œํ”„ํŠธ์›จ์–ด์˜ ์•„ํ‚คํ…์ฒ˜์˜ ๊ทœ์น™์€ ๋™์ผํ•˜๋‹ค.

์ด๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ทœ์น™์€ ๋‹ค๋ฅธ ๋ชจ๋“  ๋ณ€์ˆ˜์— ํ˜น์€ ๋ณ€์ˆ˜์ ์ธ ์š”์†Œ์— ๋…๋ฆฝ์ ์ด๋‹ค.

1๋ถ€ ์†Œ๊ฐœ

ํ”„๋กœ๊ทธ๋žจ์„ ๋™์ž‘ ์‹œํ‚ค๋Š” ๊ฒƒ๊ณผ ์ œ๋Œ€๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋‹ค๋ฅด๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ œ๋Œ€๋กœ ๋งŒ๋“ค๋ ค๋ฉด ์ ์ • ์ˆ˜์ค€์˜ ์ง€์‹๊ณผ ๊ธฐ์ˆ ์„ ๊ฒธ๋น„ํ•ด์•ผ ํ•˜์ง€๋งŒ ๋Œ€๋‹ค์ˆ˜์˜ ์ Š์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ด ์ˆ˜์ค€์— ๋„๋‹ฌํ•˜์ง€ ๋ชปํ•œ๋‹ค.

์‚ฌ๊ณ ๋ ฅ๊ณผ ํ†ต์ฐฐ๋ ฅ์„ ๊ฐ–์ถฐ์•ผ ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ์ด๋Ÿฌํ•œ ๋Šฅ๋ ฅ์„ ๊ฐœ๋ฐœํ•˜์ง€ ์•Š๋Š”๋‹ค.

1์žฅ ์„ค๊ณ„์™€ ์•„ํ‚คํ…์ฒ˜

์„ค๊ณ„์™€ ์•„ํ‚คํ…์ฒ˜์˜ ์ฐจ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์„ค๊ณ„ : ์ € ์ˆ˜์ค€ (๋‚ฎ์€ ๋ ˆ์ด์–ด) ์˜ ๊ตฌ์กฐ ๋˜๋Š” ๊ฒฐ์ •์‚ฌํ•ญ์„ ์˜๋ฏธ
  • ์•„ํ‚คํ…์ฒ˜ : ์ € ์ˆ˜์ค€์˜ ์„ธ๋ถ€์‚ฌํ•ญ๊ณผ๋Š” ๋ถ„๋ฆฌ๋œ ๊ณ  ์ˆ˜์ค€์˜ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ฐ€๋ฅดํ‚ด

์ €์ˆ˜์ค€์˜ ์„ธ๋ถ€์‚ฌํ•ญ๊ณผ ๊ณ ์ˆ˜์ค€์˜ ๊ตฌ์กฐ๋Š” ๋ชจ๋‘ ์†Œํ”„ํŠธ์›จ์–ด ์ „์ฒด ์„ค๊ณ„์˜ ๊ตฌ์„ฑ์š”์†Œ์ด๋‹ค.
๊ฐœ๋ณ„๋กœ๋Š” ์กด์žฌํ•  ์ˆ˜ ์—†๊ณ  ์‹ค์ œ๋กœ ์ด ๋‘˜์„ ๊ตฌ๋ถ„ ์ง“๋Š” ๊ฒฝ๊ณ„๋Š” ๋šœ๋ ทํ•˜์ง€ ์•Š๋‹ค.

๊ณ ์ˆ˜์ค€์—์„œ ์ €์ˆ˜์ค€์œผ๋กœ ํ–ฅํ•˜๋Š” ์˜์‚ฌ๊ฒฐ์ •์˜ ์—ฐ์†์„ฑ๋งŒ ์žˆ์„ ๋ฟ์ด๋‹ค.

TDD ๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ ๊ด€๋ฆฌ๋Š” ๊ณง ์žฅ๊ธฐ์ ์œผ๋กœ๋Š” ์ƒ์‚ฐ์„ฑ์œผ๋กœ ์ง๊ฒฐํ•˜๋ฉฐ ์‹œ๊ฐ„์˜ ์ฒ™๋„์˜ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ๋Š˜ ํšจ์œจ์ ์ด๋‹ค.

2์žฅ ๋‘ ๊ฐ€์ง€ ๊ฐ€์น˜์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ

2๋ถ€ ๋ฒฝ๋Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„

3๋ถ€ ์„ค๊ณ„ ์›์น™

4๋ถ€ ์ปดํฌ๋„ŒํŠธ ์›์น™

5๋ถ€ ์•„ํ‚คํ…์ฒ˜

6๋ถ€ ์„ธ๋ถ€์‚ฌํ•ญ

7๋ถ€ ๋ถ€๋ก