ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ์ ‘๊ทผ๋ฒ•: ์ฝ”๋“œ๋ฅผ ๋„˜์–ด ํ๋ฆ„์„ ์ดํ•ดํ•˜๊ธฐ

๐Ÿ’ก ๊ฐœ๋ฐœ ์‹œ์•ผ์˜ ์ „ํ™˜: ๋‚˜๋ฌด์—์„œ ์ˆฒ์œผ๋กœ

๊ฐœ๋ฐœ์„ ๋ฐฐ์šฐ๋Š” ๊ณผ์ •์—์„œ ๋งŽ์€ ํ•™์ƒ๋“ค์ด ๊ฒช๋Š” ๊ฐ€์žฅ ํฐ ์–ด๋ ค์›€ ์ค‘ ํ•˜๋‚˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ด€์ ์ž…๋‹ˆ๋‹ค. ์ดˆ๊ธฐ์—๋Š” ๋Œ€๋ถ€๋ถ„ ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„ ํ•œ ์ค„ ๋ถ„์„ํ•˜๋ฉฐ โ€œ์ด๊ฒƒ์ด ๋ฌด์—‡์ธ๊ฐ€?โ€๋ผ๋Š” ์›์ดˆ์ ์ธ ์งˆ๋ฌธ์— ์ง‘์ค‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์น˜ ์ƒˆ๋กœ์šด ์–ธ์–ด๋กœ ๋œ ์ฑ…์„ ๋‹จ์–ด ํ•˜๋‚˜ํ•˜๋‚˜ ํ•ด์„ํ•˜๋ฉฐ ์ฝ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ์š”.

์—ฌ๋Ÿฌ๋ถ„์ด ๊ฒฝํ—˜ํ•œ ์ด ๊ณผ์ •์€ ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•˜๋Š” ์ž์—ฐ์Šค๋Ÿฌ์šด ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ง„์ •ํ•œ ๋„์•ฝ์€ ์ด ๋‹จ๊ณ„๋ฅผ ๋„˜์–ด์„ค ๋•Œ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

"์ฝ”๋“œ์˜ ๊ฐœ๋ณ„ ์กฐ๊ฐ๋ณด๋‹ค ์ „์ฒด ํ”„๋กœ์ ํŠธ์˜ ํ๋ฆ„์„ ๋จผ์ € ์ดํ•ดํ•˜๋ผ."

๐Ÿšง Bottom-Up ์ ‘๊ทผ๋ฒ•์˜ ํ•œ๊ณ„

์—ฌ๋Ÿฌ๋ถ„์ด ๊ธฐ์กด์— ์‹œ๋„ํ•˜๋˜ ๋ฐฉ์‹์€ ์ „ํ˜•์ ์ธ Bottom-Up ์ ‘๊ทผ๋ฒ•์ž…๋‹ˆ๋‹ค:

  • ๋ชจ๋ฅด๋Š” ํด๋ž˜์Šค๋‚˜ ๋ฌธ๋ฒ•์ด ๋‚˜์˜ค๋ฉด ์ฆ‰์‹œ ๊ตฌ๊ธ€๋ง
  • ๊ฐ ์ฝ”๋“œ ๋ผ์ธ์˜ ์˜๋ฏธ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ •๋ฆฌ
  • ๋ชจ๋“  ๊ฐœ๋…์„ ๋ฌธ์„œํ™”ํ•˜์—ฌ ์ €์žฅ

์ด ๋ฐฉ์‹์˜ ๋ฌธ์ œ์ ์€:

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

๐ŸŒ‰ Top-Down ๋ฐฉ์‹์˜ ๊ฐœ๋ฐœ: โ€œBuild ๋ถ€ํ„ฐ ํ•˜์„ธ์š”โ€

ํ˜„์—… ๊ฐœ๋ฐœ์ž์˜ โ€œBuild ๋ถ€ํ„ฐ ํ•˜์„ธ์š”โ€๋ผ๋Š” ์กฐ์–ธ์€ ๊ฐœ๋ฐœ ์ ‘๊ทผ๋ฒ•์˜ ํ•ต์‹ฌ์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š”:

1๏ธโƒฃ ํฐ ๊ทธ๋ฆผ ๋จผ์ € ํŒŒ์•…ํ•˜๊ธฐ

  • ํ”„๋กœ์ ํŠธ๊ฐ€ ์–ด๋–ค ๊ธฐ์ˆ  ์Šคํƒ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€
  • ์ „์ฒด์ ์ธ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์–ด๋–ค ๊ธฐ๋Šฅ๋ถ€ํ„ฐ, ์–ด๋–ค ์ˆœ์„œ๋กœ ๊ตฌํ˜„ํ–ˆ๋Š”์ง€

2๏ธโƒฃ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•œ ์ดํ•ด

  • ์‹ค์ œ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•ด๋ณด๋ฉด์„œ ๊ธฐ๋Šฅ์˜ ํ๋ฆ„ ํŒŒ์•…
  • ๋””๋ฒ„๊น…์„ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ณผ์ •์„ ์ถ”์ 

3๏ธโƒฃ ์˜๋„์™€ ๋งฅ๋ฝ ์ค‘์‹ฌ์˜ ์ฝ”๋“œ ๋ถ„์„

  • โ€œ์ด ์ฝ”๋“œ๊ฐ€ ์™œ ์—ฌ๊ธฐ์— ์žˆ๋Š”๊ฐ€?โ€
  • โ€œ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ์„ค๊ณ„ ๊ฒฐ์ •์ด ์ด๋ฃจ์–ด์กŒ๋Š”๊ฐ€?โ€

๐Ÿง  ์‚ฌ๊ณ ํ•˜๋Š” ๊ฐœ๋ฐœ: ๋ชจ๋“  ์ฝ”๋“œ์— ์˜๋ฏธ ๋ถ€์—ฌํ•˜๊ธฐ

"๋ชจ๋“  ์ฝ”๋“œ๋Š” ์˜๋ฏธ๊ฐ€ ์žˆ๊ณ  ์ƒ๊ฐ์„ ํ•˜๊ณ  ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค."

์ด ํ†ต์ฐฐ์€ ๊ฐœ๋ฐœ์˜ ๋ณธ์งˆ์„ ๊ฟฐ๋šซ๋Š” ์ค‘์š”ํ•œ ๊ฐ€๋ฅด์นจ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ โ€˜๋Œ์•„๊ฐ€๊ฒŒโ€™ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ์™€ โ€˜์˜๋ฏธ ์žˆ๋Š”โ€™ ์ฝ”๋“œ์˜ ์ฐจ์ด๋Š” ์—„์ฒญ๋‚ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ๊ณผ์ •์˜ ์ˆœ์„œ ์žฌ์ •๋ฆฝ:

  1. ๋ฌธ์ œ ์ •์˜ - ๋ฌด์—‡์„ ํ•ด๊ฒฐํ•˜๋ ค๋Š”๊ฐ€?
  2. ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ - ์ „์ฒด ๊ตฌ์กฐ๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•  ๊ฒƒ์ธ๊ฐ€?
  3. ๊ฐ์ฒด/์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ - ํ•„์š”ํ•œ ๊ฐ์ฒด์™€ ๊ด€๊ณ„๋Š” ๋ฌด์—‡์ธ๊ฐ€?
  4. ๊ตฌํ˜„ - ์‹ค์ œ ์ฝ”๋“œ ์ž‘์„ฑ
  5. ๊ฒ€์ฆ - ์˜๋„๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธ

์ด ์ˆœ์„œ๋ฅผ ๋”ฐ๋ฅด๋ฉด ๊ฐ ์ฝ”๋“œ๊ฐ€ ์™œ ์กด์žฌํ•˜๋Š”์ง€, ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ๋ช…ํ™•ํ•ด์ง‘๋‹ˆ๋‹ค.

โš™๏ธ ์‹ค์šฉ์ ์ธ ๊ฐœ๋ฐœ ์Šต๊ด€์œผ๋กœ์˜ ์ „ํ™˜

์ด๋Ÿฌํ•œ ๊นจ๋‹ฌ์Œ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹ค์šฉ์ ์ธ ๊ฐœ๋ฐœ ์Šต๊ด€์„ ๊ธฐ๋ฅด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค:

  1. ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ ‘ํ•  ๋•Œ:
    • ์ฆ‰์‹œ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•ด๋ณด๊ธฐ
    • README์™€ ์„ค์ • ํŒŒ์ผ ๋จผ์ € ์‚ดํŽด๋ณด๊ธฐ
    • ํ•ต์‹ฌ ๊ธฐ๋Šฅ ํ๋ฆ„ ๋”ฐ๋ผ๊ฐ€๊ธฐ
  2. ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ:
    • ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์ „์— ์„ค๊ณ„ ๋‹จ๊ณ„ ๊ฑฐ์น˜๊ธฐ
    • โ€œ์ด ์ฝ”๋“œ๊ฐ€ ์™œ ํ•„์š”ํ•œ๊ฐ€?โ€ ํ•ญ์ƒ ์งˆ๋ฌธํ•˜๊ธฐ
    • ์˜๋ฏธ ์žˆ๋Š” ๋„ค์ด๋ฐ๊ณผ ๊ตฌ์กฐํ™”์— ํˆฌ์žํ•˜๊ธฐ
  3. ํ•™์Šตํ•  ๋•Œ:
    • ๋‹จํŽธ์  ์ง€์‹๋ณด๋‹ค ํŒจํ„ด๊ณผ ์›์น™ ์ดํ•ดํ•˜๊ธฐ
    • ์‹ค์ œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด๋ณด๋ฉฐ ํ•™์Šตํ•˜๊ธฐ
    • ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์˜ ์ฝ”๋“œ๋ฅผ ๋ณผ ๋•Œ ์˜๋„์™€ ๋งฅ๋ฝ ํŒŒ์•…ํ•˜๊ธฐ

๐Ÿš€ ๊ฐœ๋ฐœ์ž๋กœ์„œ์˜ ์„ฑ์žฅ ์—ฌ์ •

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

๊ธฐ์–ตํ•˜์„ธ์š”: ๋›ฐ์–ด๋‚œ ๊ฐœ๋ฐœ์ž๋Š” ๋‹จ์ˆœํžˆ ์ฝ”๋“œ๋ฅผ ๋งŽ์ด ์•„๋Š” ์‚ฌ๋žŒ์ด ์•„๋‹ˆ๋ผ, ์ฝ”๋“œ์˜ ์˜๋ฏธ์™€ ๋งฅ๋ฝ์„ ์ดํ•ดํ•˜๊ณ  ๊ฐ€์น˜ ์žˆ๋Š” ์„ค๊ณ„ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค.

์•ž์œผ๋กœ์˜ ๊ฐœ๋ฐœ ์—ฌ์ •์—์„œ ์ด๋Ÿฌํ•œ ๋„“์€ ์‹œ์•ผ์™€ ๊นŠ์€ ์‚ฌ๊ณ ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋” ํšจ์œจ์ ์ด๊ณ  ์˜๋ฏธ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ์„ฑ์žฅ์„ ์‘์›ํ•ฉ๋‹ˆ๋‹ค! ๐ŸŒฑ


โ€œํ”„๋กœ๊ทธ๋žจ์˜ ๋ณต์žก์„ฑ์€ ์ƒํƒœ(state)์˜ ๋ณต์žก์„ฑ์—์„œ ๋น„๋กฏ๋œ๋‹ค.
๋”ฐ๋ผ์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” ํ•ญ์ƒ โ€˜์™œโ€™๋ผ๋Š” ์งˆ๋ฌธ์„ ๋˜์ ธ์•ผ ํ•œ๋‹ค.โ€
โ€” Rich Hickey