Skip to content

Latest commit

ย 

History

History
48 lines (32 loc) ยท 3.36 KB

eXtremeProgramming.md

File metadata and controls

48 lines (32 loc) ยท 3.36 KB

eXtreme Programming (XP)

์ž‘์„ฑ์ž : ์ •ํฌ์žฌ

์ฐธ์กฐ : ์œ„ํ‚คํ”ผ๋””์•„

Table of Contents

eXtreme Programming ์ด๋ž€?

์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(eXtreme Programming, XP) ์€ ์ผ„ํŠธ ๋ฐฑ ๋“ฑ์ด ์ œ์•ˆํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์ด๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ์ƒ์˜ ์š”๊ตฌ๊ฐ€ ์‹œ์‹œ๊ฐ๊ฐ ๋ณ€๋™์ด ์‹ฌํ•œ ๊ฒฝ์šฐ์— ์ ํ•ฉํ•œ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์ด๋‹ค. 1999๋…„ ์ผ„ํŠธ ๋ฐฑ์˜ ์ €์„œ์ธ 'Extreme Programming Explained - Embrace Change'์—์„œ ๋ฐœํ‘œ๋˜์—ˆ๋‹ค. ์• ์ž์ผ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ผ ๋ถˆ๋ฆฌ๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ• ์ค‘์˜ ๋Œ€ํ‘œ์ ์ธ ํ•˜๋‚˜๋กœ ๊ผฝํžˆ๋ฉฐ, ์•ฝ์นญ์ธ 'XP'๋กœ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ๋‹ค.

๋‹ค๋ฅธ ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก ๊ณผ ๊ตฌ๋ถ„๋˜๋Š” ํŠน์ง•

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

XP ์‹ค์ฒœ ๋ฐฉ๋ฒ•

Whole Team

ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜๋Š” ๋ชจ๋“  ํŒ€์›๋“ค์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ๋””์ž์ด๋„ˆ, ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์ž, ๊ฐœ๋ฐœ์ž, ํ…Œ์Šคํ„ฐ, ์œ ์ € ๋“ฑ ์—ญํ• ๋“ค์ด ๋งŽ์€๋ฐ ์ด์ค‘ ์œ ์ €๊ฐ€ ์ œ์ผ ์ค‘์š”ํ•˜๋‹ค. ์œ ์ €๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ ํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Stakeholder์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Planning Game

์–ด๋–ค ๊ฐœ๋ฐœ ๊ณผ์ •์„ ๋๋งˆ์น  ๊ฒƒ์ธ๊ฐ€, ๋‹ค์Œ์—๋Š” ์–ด๋–ค ์ผ์„ ํ•  ๊ฒƒ์ธ๊ฐ€์— ์ค‘์ ์„ ๋‘์–ด iteration์„ ๊ณ„ํšํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ 2์ฃผ๋ฅผ ์ฃผ๊ธฐ๋กœ ํ•œ iteration์„ ์ง„ํ–‰ํ•œ๋‹ค. ํ•œ iteration ๋™์•ˆ ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค์–ด์„œ ์˜๋ขฐ์ธ์—๊ฒŒ ๋ณด์—ฌ์ฃผ๊ณ  ํšŒ์˜๋ฅผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐํ•œ ๋‚ด์— ํ”„๋กœํ† ํƒ€์ž…์ด ๋ฐ˜๋“œ์‹œ ๊ฐœ๋ฐœ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ์—…์€ ๋ณธ์ธ๋“ค์˜ ์‹ค๋ ฅ์„ ์ž…์ฆํ•  ์ˆ˜ ์žˆ๊ณ , ์˜๋ขฐ์ธ ์ž…์žฅ์—์„œ๋Š” ํ”„๋กœํ† ํƒ€์ž…์ด ๋งˆ์Œ์— ์•ˆ๋“ค ๋•Œ ๋น ๋ฅด๊ฒŒ ์†์ ˆํ•ด์„œ ๋น„์šฉ์„ ์•„๋‚„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

Customer Tests

์˜๋ขฐ์ธ์ด ์›ํ•˜๋˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค์–ด๋‚ด๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฒฐ๊ณผ๋ฌผ์ด ์ •๋ง ์˜๋ขฐ์ธ์ด ์›ํ•˜๋Š” ๊ฒŒ ๋งž๋Š”์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณธ๋‹ค.

Small Releases

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

Simple Design

๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง„๋‹ค. ๋”ฐ๋ผ์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ€๋Šฅํ•œ ์‹ฌํ”Œํ•˜๊ฒŒ ์„ค๊ณ„๋ฅผ ํ•œ๋‹ค. (KISS ์›์น™ : Keep It Small, Simple)

Test-Driven Development

XP์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์š”์†Œ์ด๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์น˜๋ฉด์„œ ์ฝ”๋”ฉํ•œ๋‹ค.

Pair Programming

๋‘๋ช… ํ˜น์€ ๊ทธ ์ด์ƒ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ•จ๊ป˜ ์ฝ”๋”ฉ์„ ํ•œ๋‹ค. ์ฝ”๋”ฉ ํ•˜๋Š” ์—ญํ• , Quality Assurance ์—ญํ•  ๋“ฑ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๊ฐœ๋ฐœ๊ณผ ํ…Œ์ŠคํŠธ์— ๋ชจ๋‘ ์ง‘์ค‘ํ•œ๋‹ค.