JiwonDev

์• ์ž์ผ๊ณผ ์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Agile , XP)

by JiwonDev

์• ์ž์ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 

# Agile Software Development

(Aglie: ๋‚ ๋ ตํ•œ, ํšŒ์ „์ด ๋น ๋ฅธ)
๋‹ค๋ฅธ ๊ณ ์ „์ ์ธ ๋ฐฉ๋ฒ•๋ก , ์˜ˆ๋ฅผ ๋“ค๋ฉด ํญํฌ์ˆ˜ ๋ชจ๋ธ ๋˜๋Š” ๋‚˜์„  ๋ชจํ˜•๊ณผ ๊ตฌ๋ณ„๋˜๋Š” ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ less document-oriented, ์ฆ‰ ๋ฌธ์„œ๋ฅผ ํ†ตํ•œ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋ผ, code-oriented, ์‹ค์งˆ์ ์ธ ์ฝ”๋”ฉ์„ ํ†ตํ•œ ๋ฐฉ๋ฒ•๋ก ์ด๋ผ๋Š” ์ ์ด๋‹ค.

  • ํ”„๋กœ์„ธ์Šค์™€ ๋„๊ตฌ๋ณด๋‹ค ๊ฐœ์ธ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„
  • ํฌ๊ด„์ ์ธ ๋ฌธ์„œ๋ณด๋‹ค ์ž‘๋™ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ (Code-Oriented)
  • ๊ณ„์•ฝ ํ˜‘์ƒ๋ณด๋‹ค ๊ณ ๊ฐ๊ณผ์˜ ํ˜‘๋ ฅ์„
  • ๊ณ„ํš์„ ๋”ฐ๋ฅด๊ธฐ๋ณด๋‹ค ๋ณ€ํ™”์— ๋Œ€์‘ํ•˜๊ธฐ๋ฅผ

 

# ๊ฐ ๋ชจ๋ธ์˜ ์ฐจ์ด์ 

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

  • [ ๋‚˜์„ ํ˜• ๋ชจ๋ธ ] ์€ ํญํฌ์ˆ˜ ๋ชจ๋ธ์ฒ˜๋Ÿผ ํ•˜๋˜, ํŠน์ • ์ฃผ๊ธฐ(๋ณดํ†ต 6๊ฐœ์›”์—์„œ 2๋…„)์„ ํ”„๋กœ์ ํŠธ ์ƒ๋ช…์ฃผ๊ธฐ(Life Cycle) ๋กœ ์žก๊ณ  ์ฃผ๊ธฐ๋งˆ๋‹ค ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„, ์œ„ํ—˜๋ถ„์„, ๊ณ„ํš, ๊ฐœ๋ฐœ, ์œ ๋‹›ํ…Œ์ŠคํŠธ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.

  • [ ์• ์ž์ผ ๋ชจ๋ธ ] ์€ ์–ผํ• ๋“ค์œผ๋ฉด ๋‚˜์„ ํ˜• ๋ชจ๋ธ๊ณผ ๋น„์Šทํ•ด ๋ณด์ด์ง€๋งŒ, ๊ฐ€์žฅ ํฌ๊ฒŒ ๋‹ค๋ฅธ ์ ์€ ๋ถ„๊ธฐ์ ์ด ‘๊ฐœ๋ฐœ์ฃผ๊ธฐ’ ๋‚˜ ‘ํ”„๋กœํ† ํƒ€์ž… ์ƒ์„ฑ’ ์ด ๊ธฐ์ค€์ด ์•„๋‹ˆ๋‹ค. ๋‹ค์ˆ˜์˜ ์ž‘์€ ๊ธฐ๋Šฅ์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๊ธฐ๋Šฅ ๋ณ„๋กœ ์งง์€ ๋ฐ˜๋ณต ์ฃผ๊ธฐ(๋ณดํ†ต 2~4์ฃผ)๋ฅผ ๊ฐ€์ง€๊ณ , ๋Š์ž„ ์—†์ด ๊ณ ๊ฐ๊ณผ ์˜์‚ฌ์†Œํ†ต, ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ ์ง„์ ์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๋ฐฉ์‹์ด๋‹ค.
Theme: “ํƒœ๋ธ”๋ฆฟ๊ณผ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•œ ๋ ˆ์Šคํ† ๋ž‘ ์ฃผ๋ฌธ ์‹œ์Šคํ…œ.”
Epic:  “๊ณ ๊ฐ์œผ๋กœ์„œ, ํ…Œ์ด๋ธ”์˜ ํƒœ๋ธ”๋ฆฟ์„ ํ†ตํ•ด ์Œ์‹๊ณผ ๊ด€๋ จ๋œ ์ผ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
Story: “๊ณ ๊ฐ์œผ๋กœ์„œ, ์Œ์‹์„ ์ฃผ๋ฌธํ•˜๊ธฐ ์œ„ํ•ด, ๋ฉ”๋‰ด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.”
Task: “์Œ์‹ ์‚ฌ์ง„์ด ๋ฐฐ์—ด๋œ ๋ฉ”๋‰ด ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•œ๋‹ค.”

์• ์ž์ผ์€ Story ์ค‘์‹ฌ์œผ๋กœ ์œ ์—ฐํ•˜๊ฒŒ ๊ฐœ๋ฐœ, ํญํฌ์ˆ˜๋Š” Task๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ณ„ํš์ ์œผ๋กœ, ์ฒด๊ณ„์ ์œผ๋กœ ๊ฐœ๋ฐœํ•œ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด ‘์†Œํ”„ํŠธ์›จ์–ด ์ œํ’ˆ’์— ์ดˆ์ ์„ ๋งž์ถ˜ ๊ฒŒ ์•„๋‹ˆ๋ผ, ๊ณ ๊ฐ์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋ฐฉ์‹์ด ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค

 


# ์• ์ž์ผ์ด ์ถ”๊ตฌํ•˜๋Š” ๊ฒƒ

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ๋Š” ์ „ํ†ต์ ์ธ ํญํฌ์ˆ˜ ๋ชจ๋ธ์€ ๋”ฐ๋ผ๊ฐ€๊ธฐ ํž˜๋“ค๋‹ค. ๊ณ ๊ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ์€ ๋Š์ž„์—†์ด ๋ณ€ํ™”ํ•œ๋‹ค. ๊ธฐ๋Šฅ(๊ตฌํ˜„)์— ์ดˆ์ ์„ ๋งž์ถ”๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์„œ๋น„์Šค(์ถ”์ƒํ™”)์— ๊ธฐ์ค€์„ ๋งž์ถฐ ์„œ๋น„์Šค ๋‹จ์œ„์˜ ์งง์€ ์ฃผ๊ธฐ๋กœ [๊ธฐํš-๊ฐœ๋ฐœ-ํ…Œ์ŠคํŠธ-๋ฐฐํฌ]ํ•˜๋Š” ์• ์ž์ผ ์ ‘๊ทผ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.

์„œ๋น„์Šค ์ค‘์‹ฌ์œผ๋กœ ์งง์€ ๋‹จ์œ„์˜ ๊ฐœ๋ฐœ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒƒ.

 

  • ์ผ์˜ ๋‹จ์œ„
    - ํญํฌ์ˆ˜: ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ์„ ๊ธฐ์ค€์œผ๋กœ ์ •ํ•œ๋‹ค. “๋ ˆ์Šคํ† ๋ž‘ ๋ฉ”๋‰ด ์„ ํƒ ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•œ๋‹ค."
    - ์• ์ž์ผ: ์‚ฌ์šฉ์ž์˜ ๊ฒฝํ—˜์„ ๊ธฐ์ค€์œผ๋กœ ์Šคํ† ๋ฆฌ๋ฅผ ์ •ํ•œ๋‹ค. “์‹๋‹น ์†๋‹˜์œผ๋กœ์„œ, ๋ ˆ์Šคํ† ๋ž‘์—์„œ ์ฃผ๋ฌธ์„ ํ•˜๊ธฐ ์œ„ํ•ด, ๋ฉ”๋‰ด์—์„œ ์Œ์‹์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.”

  • ๋ฐ๋“œ๋ผ์ธ
    - ํญํฌ์ˆ˜: ๋ฐ๋“œ๋ผ์ธ์„ ์ •ํ•˜๊ณ  ๋ฐ๋“œ๋ผ์ธ์— ๋งž์ถฐ ์ž์›์„ ํˆฌ์ž…ํ•˜๊ฑฐ๋‚˜ ์žˆ๋Š” ์ž์›์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•œ๋‹ค.
    - ์• ์ž์ผ: ๊ณ„์† ๊ฐœ์„ ํ•˜๋ฏ€๋กœ ๋ฐ๋“œ๋ผ์ธ์ด ๋ณ„ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค. ํŒ€ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์†๋„(throughput)๋ฅผ ์ธก์ •ํ•œ๋‹ค.

  • ์™ธ๋ถ€ ์š”์ฒญ์— ๋ฐ˜์‘
    - ํญํฌ์ˆ˜: ๊ณ„ํš์ด ์ด๋ฏธ ๋๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€ ์š”์ฒญ์€ ๋‹ค์Œ ๋ฒ„์ „๊นŒ์ง€ ๋ฐ˜์˜ํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ํฐ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๋ฐ˜์˜์„ ์ตœ์†Œํ™”ํ•œ๋‹ค.
    - ์• ์ž์ผ: ํ”„๋กœ๋•ํŠธ ์‚ฌ์ดํด(๊ธฐํš-๊ฐœ๋ฐœ-ํ…Œ์ŠคํŠธ-๋ฐฐํฌ)๊ฐ€ ์งง์œผ๋ฏ€๋กœ ํ”„๋กœ๋•ํŠธ ๋งค๋‹ˆ์ €๊ฐ€ ์—”์ง€๋‹ˆ์–ด๋ง ๋งค๋‹ˆ์ €์™€ ํ˜‘๋ ฅํ•˜์—ฌ ์™ธ๋ถ€ ์š”์ฒญ์„ ๋น ๋ฅด๊ฒŒ ๋ฐ˜์˜ํ•œ๋‹ค.

  • ํ”„๋กœ๋•ํŠธ ๋งค๋‹ˆ์ €(PM)์˜ ํŒ€ ๋‚ด ์—ญํ• 
    - ํญํฌ์ˆ˜: ๋งค๋‹ˆ์ €๊ฐ€ ํŒ€์— ์ƒ์ฃผํ•  ํ•„์š” ์—†๋‹ค. ์ฒ˜์Œ ๊ธฐํš์ž๊ฐ€ ๋ชจ๋“  ๊ธฐํš์•ˆ์„ ๋งŒ๋“ค์–ด์„œ ๋„˜๊ธฐ๋ฉด ๊ฐœ๋ฐœํŒ€์—์„œ ๋ฐ๋“œ๋ผ์ธ์— ๋งž์ถฐ ๊ตฌํ˜„ํ•œ๋‹ค.
    - ์• ์ž์ผ: ํŒ€์˜ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์†๋„๋ฅผ ์ธก์ •ํ•˜์—ฌ ์ด ์†๋„๋กœ ์ง„ํ–‰ํ•˜๋ฉด ์–ธ์ œ์ฏค ์™„์„ฑ๋  ๊ฒƒ์ธ์ง€๋ฅผ ์ธก์ •ํ•œ๋‹ค. ๋Š์ž„์—†์ด ์™ธ๋ถ€ ํŒ€๊ณผ ์†Œํ†ตํ•˜์—ฌ ์š”๊ตฌ๋ฅผ ๋ฐ˜์˜ํ•˜๊ณ  ํ”„๋กœ๋•ํŠธ ์™„์„ฑ ์‹œ์ ๊ณผ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

  • ์—”์ง€๋‹ˆ์–ด๋ง ๋งค๋‹ˆ์ €(๊ฐœ๋ฐœํŒ€์žฅ)์˜ ์—ญํ• 
    - ํญํฌ์ˆ˜: ๋ฐ๋“œ๋ผ์ธ์— ๋งž์ถฐ ํ”„๋กœ์ ํŠธ๋ฅผ ๋๋‚ด๋Š” ๊ฒƒ์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๋ฐ๋“œ๋ผ์ธ์„ ๋ชป ๋งž์ถœ ๊ฒƒ ๊ฐ™์œผ๋ฉด ์™ธ์ฃผ๋ฅผ ์ฃผ๊ฑฐ๋‚˜ ํŒ€์›๋“ค์—๊ฒŒ ์ง€์†์ ์ธ ๋™๊ธฐ๋ถ€์—ฌ(๋˜๋Š” ์œ„ํ˜‘)๋ฅผ ํ•œ๋‹ค.
    - ์• ์ž์ผ: ํŒ€์ด ๋งค ์Šคํ”„๋ฆฐํŠธ๋งˆ๋‹ค ์ผ์ •ํ•œ ์†๋„๋กœ ํ”„๋กœ๋•ํŠธ๋ฅผ ๋งŒ๋“ค๋„๋ก ๊ด€๋ฆฌํ•œ๋‹ค. ๋ฒ„๊ทธ ๋“ฑ์„ ๊ด€๋ฆฌํ•˜์—ฌ ๊ธฐ๋Šฅ์ด ํ‡ดํ™”๋˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

 


# ์• ์ž์ผ ํ”„๋ ˆ์ž„์›Œํฌ ๋„๊ตฌ

์Šคํฌ๋Ÿผ(Scrum), ์นธ๋ฐ˜ ๋ณด๋“œ(Kanban), XP(eXtreme Programing)์™€ ๊ฐ™์€ ์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์šฉ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” CI/CD์™€ ๊ฐ™์€ ๋Œ€์ค‘์ ์ธ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์˜ ํ‹€์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ๋ฌด์กฐ๊ฑด ์Šคํฌ๋Ÿผ์ด ์ข‹๋‹ค. ์นธ๋ฐ˜์ด ์ข‹๋‹ค ์ด๋Ÿฐ๊ฑด ์—†๋‹ค. ํŒ€๋งˆ๋‹ค ์•Œ๋งž์€ ๋ฐฉ๋ฒ•์ด ์žˆ๊ณ , ๊ทธ๊ฑธ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค์™€ ๋„๊ตฌ์— ์˜์กดํ•˜์ง€ ๋ง์ž.

 

  • Scrum
    ์Šคํ”„๋ฆฐํŠธ๋ผ๋Š” ์ผ์ •๊ธฐ๊ฐ„ ์•ˆ์— ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์œผ๋กœ ์—…๋ฌด๋ฅผ ๋ถ„ํ• ํ•œ๋‹ค.

 

  • Kanban ๋ณด๋“œ

 

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„๋ณผ ๋งˆ์ง€๋ง‰ ์• ์ž์ผ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋ฐ”๋กœ XP (์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)์ด๋‹ค.

 


# ์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (XP, eXtreme Programing)

์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก ์ค‘ ํ•˜๋‚˜๋กœ ๋น ๋ฅธ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ๊ณ ๊ฐ์ด ์›ํ•˜๋Š” ์š”๊ตฌ๋“ค์„ ์ง€์†์ ์œผ๋กœ ํ”ผ๋“œ๋ฐฑํ•˜๋Š” ๋ฐฉ๋ฒ•

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

 

# ์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด๋ณด์ž

1-1. User Stories, ์œ ์ € ์Šคํ† ๋ฆฌ (์š”๊ตฌ์‚ฌํ•ญ ์ •๋ฆฌ)

  • ์‚ฌ์šฉ์ž ์š”๊ตฌ์‚ฌํ•ญ / UML์˜ ์œ ์Šค์ผ€์ด์Šค์™€ ๊ฐ™์€ ๋ชฉ์ (์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘, ์˜์‚ฌ์†Œํ†ต ๋„๊ตฌ)
  • ๋ฆด๋ฆฌ์ฆˆ ๊ณ„ํš์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ์œ„
  • ๊ธฐ๋Šฅ๋‹จ์œ„๋กœ ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ธฐ์žฌ, ํ•„์š”์‹œ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ์‚ฌํ•ญ๋„ ํ‘œ๊ธฐ ๊ฐ€๋Šฅ
  • ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ๊ฐ์ด ํ•„์š”ํ•œ ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€๋ฅผ ๊ธฐ์ˆ  → ์ธ์ˆ˜ํ…Œ์ŠคํŠธ์‹œ ์‚ฌ์šฉ

 

1-2. Architectural Spike, ๊ตฌ์กฐ์  ์ŠคํŒŒ์ดํฌ(๊ธฐ์ˆ ์ ์ธ ๋ฌธ์ œ)

  • ์–ด๋ ค์šด ์š”๊ตฌ์‚ฌํ•ญ ํ˜น์€ ์ž ์žฌ์ ์ธ ์†”๋ฃจ์…˜๋“ค์„ ๊ณ ๋ คํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•˜๋Š” ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ
  • ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ์˜ ์‹ ๋ขฐ์„ฑ์„ ์ฆ๋Œ€์‹œํ‚ค๊ฑฐ๋‚˜ ๊ธฐ์ˆ ์ ์ธ ๋ฌธ์ œ์˜ ์œ„ํ—˜์„ ์ค„์ด๊ณ ์ž ํ•˜๋Š”๋ฐ ๋ชฉ์ 

 

2. Release Planning, ๋ฆด๋ฆฌ์ฆˆ ๊ณ„ํš ์žก๊ธฐ

  • ์ „์ฒด ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ฐฐํฌ ๊ณ„ํš์„ ์ƒ์„ฑ

 

3. Iteration, ๋ฐ˜๋ณต

  • ํ•˜๋‚˜์˜ ๋ฐ˜๋ณต์„ 1์—์„œ 3์ฃผ ์ •๋„๋กœ ๋‚˜๋ˆ„๊ณ  ๋ฐ˜๋ณต๋“ค์„ ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ๊ท ์ผํ•˜๊ฒŒ ์œ ์ง€
  • XP์˜ ๋ฐ˜๋ณต์€ ํ”„๋กœ์„ธ์Šค์˜ ํ‰๊ฐ€์™€ ๊ณ„ํš์„ ๋‹จ์ˆœํ•˜๊ณ  ์‹ ๋ขฐ์„ฑ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ํ•ต์‹ฌ ํ•ญ๋ชฉ → ๋ฐ˜๋ณต ๊ณ„ํš ๋ฏธํŒ…
  • ์‚ฌ์šฉ์ž ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ, ๊ธฐ์ˆ ์ ์ธ ๋ฌธ์ œ ๋“ฑ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ฆด๋ฆฌ์ฆˆ ๋ฐ ๋ฐ˜๋ณต ๊ณ„ํš ์ˆ˜์ • ๊ฐ€๋Šฅ

 

4. Acceptance Test, ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ

  • ๋ฆด๋ฆฌ์ฆˆ ์ „์˜ ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ.  ๊ณ ๊ฐ์ด ์‹ค์ œ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰

 

5. Small Release, ์†Œ๊ทœ๋ชจ ๋ฆด๋ฆฌ์ฆˆ

  • ์ž‘์€ ๋ฐฐํฌ๋Š” XP ์ฃผ๊ธฐ์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„
  • ์†Œ๊ทœ๋ชจ๋กœ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐฐํฌํ•˜๋ฉด ๊ณ ๊ฐ์—๊ฒŒ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด๋“์„ ์กฐ๊ธฐ ์ œ๊ณต
  • ํ”„๋กœ๊ทธ๋žจ์€ ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณต ๋ฐ›์Œ

 


# ์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ธฐ์œ„ํ•œ 12๊ฐ€์ง€ ์‹ค์ฒœ์‚ฌํ•ญ(Practice)

  • Fine scale feedback
    • Pair Programming: ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ์— 2๋ช…์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ฝ”๋”ฉ๊ณผ ๋ฆฌ๋ทฐ ์—ญํ• ์„ ๋ฐ”๊ฟ”๊ฐ€๋ฉฐ ๊ณต๋™์ž‘์—… ์ง„ํ–‰
    • Planning Game: ๊ฒŒ์ž„์ฒ˜๋Ÿผ ์„ ์ˆ˜์™€ ๊ทœ์น™, ๋ชฉํ‘œ๋ฅผ ๋‘๊ณ  ๊ธฐํš์— ์ž„ํ•˜๋ผ
    • Test Driven Development: ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ถ€ํ„ฐ ์ž‘์„ฑ ๋ฐ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฝ”๋“œ ์ž‘์„ฑ
    • Whole Team: ๊ฐœ๋ฐœ ํšจ์œจ์„ ์œ„ํ•ด ๊ณ ๊ฐ์„ ํ”„๋กœ์ ํŠธ ํŒ€์›์œผ๋กœ ์ƒ์ฃผ์‹œํ‚ด
  • Continuous process
    • Continuous Integration: ์ƒ์‹œ ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์œ ์ง€
    • Design Improvement: ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ์—†์ด ์ค‘๋ณต์„ฑ/๋ณต์žก์„ฑ ์ œ๊ฑฐ, ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํ–ฅ์ƒ, ๋‹จ์ˆœํ™”, ์œ ์—ฐ์„ฑ ๋“ฑ์„ ์œ„ํ•œ ์žฌ๊ตฌ์„ฑ ์ˆ˜ํ–‰
    • Small Releases: ์งง์€ ์ฃผ๊ธฐ๋กœ ์žฆ์€ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ํ•จ์œผ๋กœ์จ ๊ณ ๊ฐ์ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•จ
  • Shared understanding
    • Coding Standards: ์†Œ์Šค ์ฝ”๋“œ ์ž‘์„ฑ ํฌ๋งท๊ณผ ๊ทœ์น™๋“ค์„ ํ‘œ์ค€ํ™”๋œ ๊ด€๋ก€์— ๋”ฐ๋ผ ์ž‘์„ฑ
    • Collective Code Ownership: ์‹œ์Šคํ…œ์— ์žˆ๋Š” ์†Œ์Šค์ฝ”๋“œ๋Š” ํŒ€์˜ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ˆ„๊ตฌ๋“ ์ง€ ์–ธ์ œ๋ผ๋„ ์ˆ˜์ • ๊ฐ€๋Šฅํ•จ
    • Simple Design: ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๊ฐ„๊ฒฐํ•œ ๋””์ž์ธ ์ƒํƒœ ์œ ์ง€
    • System Metaphor: ์ตœ์ข…์ ์œผ๋กœ ๊ฐœ๋ฐœ ๋˜์–ด์•ผ ํ•  ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ˆ 
  • Programmer welfare
    • Sustainable Pace: ์ผ์ฃผ์ผ์— 40 ์‹œ๊ฐ„ ์ด์ƒ ์ž‘์—… ๊ธˆ์ง€, 2์ฃผ ์—ฐ์† ์˜ค๋ฒ„ํƒ€์ž„ ๊ธˆ์ง€

 

 

 

 

 

 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

JiwonDev

JiwonDev

ํ™œ๋™ํ•˜๊ธฐ