Agile 방법론의 기법 중 하나입니다.
Pair Programming (짝프로그래밍)
“Pair” 단어에서도 알 수 있듯이 “함께” 수행하는 프로그래밍을 의미합니다. 추가로 책임도 나누는 것도 포함된 개념입니다.
Test-Driven-Developement (테스트 주도 개발)
TDD 라고 줄여 부르기도 합니다. 구현하기 전에 테스트 케이스를 먼저 작성하여, 최종 목표을 명확히 하며 진행할 수 있는 장점이 있죠. 테스트는 “자동화” 하여 수행합니다.
Whole Team (전체 팀)
누군가는 책임이 모호한 경우, 책임회피가 발생할 수 있습니다. 그런것을 막고자 모두가 책임을 가지고 일하는 것을 의미하는 단어입니다.
Continuous Integration (지속적인 통합)
뭔가 Merge의 느낌이 나죠? 각 개발자들이 모듈화 시켜 개발을 하고 본 프로젝트에 하나로 통합하는 활동을 의미합니다.
Design improvement (디자인 개선) or Refactoring (리팩토링)
디자인이 시각적 디자인이 아닌 설계 구조를 의미할겁니다. MVC라든지 MVVM이라든지. 이러한 Scalability를 고려한 디자인 설계를 해야하고 그런 방식으로 코드를 리팩토리애야하는 활동을 의미합니다.
Small Releases (작은 단위의 배포)
배포를 빠르게 하기위해 배포의 단위를 줄이는 단어입니다.
(그림출처 : XP (eXtreme Programming) > 도리의 디지털라이프)
사용자 스토리 (User Story)
유저스토리 화살표를 보면 “요구사항” 과 “테스트 시나리오” 의 출발점이죠.
유저라고 해서 실제로 사용하는 대상이라고 생각하실 수 있겠지만 “고객” 혹은 “클라이언트” 로 생각하시면 암기에 도움이 될 것 같네요.
스파이크 (Spike)
어려운 요구사항이나 잠재 솔루션(무슨 뜻인지 감이 안잡히네요.) 을 고려한 간단한 프로그램을 뜻한다고 합니다. 이를 통해서 사용자 스토리가 신뢰성이 높아지고 기술적인 문제 리스크가 감소한다고 합니다.
스파이크가 이해가 안되서 따로 좀더 조사해봤습니다.
Extreme Programming(XP) 방법론 의 설명을 제가 이해한대로 작성해보겠습니다.
- 유저스토리보드가 만들어진다. (Zeplin이나 XD와 같은 형태로)
- 요구사항 중에서 어려워보이는 것(==리스크가 있는것)을 찾는다.
- 이에 대해 “스파이크 솔루션” 이라는 것을 만든다.
그러면 스파이크 솔루션이 무엇인가?
어려운 문제를 해결하기 위한 해결책인데, 잘 보이지 않는 문제를 찾아주는 프로그램이다.
어찌보면 테스트를 수행하는 것이라고 생각할 수 있을 것 같아요.
배포 계획 (Release Planning)
1 ~ 3주를 하나의 Session으로 생각하고 배포를 계속 해나간다라고 생각하면 됩니다. 이것이 xp에서 말하는 배포계획입니다.
주기 (Iteration)
하나의 Session을 1~3주로 잡습니다. 그리고 이를 반복하는 것이 하나의 주기입니다.
xp에서 반복을 할 때, 계획 -> 평가
를 단순하게 하는 것이 중요하다고 합니다.
이를 통해 사용자의 요구사항을 반영하기 쉽게해주고, 여러 문제에 대해서 대응성이 높아진다고 합니다.
승인 테스트, 인수 테스트 (Acceptance Test)
사용자(고객) 에게 인수할 때, 수행하는 테스트입니다.
소규모 릴리즈 (Small Release)
이 단계는 마지막 단계입니다. 짧게 여러번 배포하면서 고객에게 완성본의 형태를 잘 전달할 수 있고, 빠르게 배포하면서 얻는 경제적 이득(시장선점효과를 노릴 수 있다.) 등에 기여합니다.
XP (eXtreme Programming) > 도리의 디지털라이프
Extreme Programming(XP) 방법론