Skip to content
난이도 출제 빈출문제은행 6

애자일·XP·스크럼 ​

애자일(agile)은 계획을 한 번에 다 세우지 않고, 짧은 주기로 동작하는 소프트웨어를 만들어 고객에게 보여 주며 요구 변화에 맞춰 가는 개발 방식의 총칭이다. 실기 시험에서는 애자일 선언의 4가지 가치, XP(eXtreme Programming, 익스트림 프로그래밍)의 5가지 가치와 실천 방법, 스크럼(Scrum)의 역할·이벤트 이름을 단답형으로 묻는다. 스크럼은 다음 문서에서 다룬다.

애자일이 나온 이유 ​

폭포수 모형처럼 계획을 앞세우는 방식은 요구가 중간에 바뀌면 앞 단계로 돌아가기 어렵다. 그런데 실제 프로젝트에서는 고객이 만들어진 것을 보고 나서야 원하는 것을 정확히 아는 경우가 많다. 그래서 2001년 개발자들이 모여 애자일 선언(Agile Manifesto)을 발표했다. 핵심은 문서와 계획보다 자주 보여 주고 빨리 고치는 것에 더 무게를 두자는 것이다. 대표 방법론으로 스크럼(Scrum), XP(eXtreme Programming, 익스트림 프로그래밍), 칸반(Kanban), 린(Lean), 기능 중심 개발(FDD, Feature Driven Development)이 있다.

애자일 선언의 4가지 가치 ​

선언은 왼쪽 항목에 더 가치를 둔다고 말한다. 오른쪽을 버리라는 뜻은 아니다.

더 가치를 둔다보다
개인과 상호작용프로세스와 도구
작동하는 소프트웨어포괄적인 문서
고객과의 협력계약 협상
변화에 대응하기계획을 따르기

XP ​

XP는 켄트 벡(Kent Beck)이 정리한 방법론으로, 고객을 개발에 적극 참여시키고 짧은 주기로 자주 릴리스해 생산성을 높인다. 좋은 습관(테스트, 코드 리뷰, 통합)을 극단(extreme)까지 자주 하자는 뜻에서 이름이 나왔다.

XP의 5가지 가치는 **의사소통(communication), 단순성(simplicity), 용기(courage), 존중(respect), 피드백(feedback)**이다. 존중은 초판에는 없다가 개정판에서 더해졌다.

가치를 행동으로 옮긴 것이 실천 방법(practice)이다.

실천 방법하는 일
짝 프로그래밍(pair programming)두 사람이 한 화면에서 함께 코딩한다
공동 코드 소유(collective code ownership)누구나 어느 코드든 고칠 권한과 책임을 진다
테스트 주도 개발(test-driven development)코드보다 테스트를 먼저 작성한다
지속적 통합(continuous integration)작업이 끝날 때마다 바로 통합한다
리팩토링(refactoring)기능은 그대로 두고 코드 구조를 개선한다

이 밖에 고객을 포함한 모두가 책임지는 전체 팀(whole team), 짧은 주기로 자주 내놓는 소규모 릴리스(small releases)가 있다. 테스트 주도 개발(TDD)은 테스트를 먼저 써서 만들 것을 분명히 하는 방식이고, 리팩토링(refactoring)은 겉 동작을 바꾸지 않으므로 기존 테스트가 그대로 통과해야 한다.

시험 포인트 ​

  • "요구사항 변화에 유연하게 대응하도록 일정한 짧은 주기를 반복하며 개발" → 애자일.
  • 애자일 가치: 프로세스·도구보다 개인과 상호작용, 문서보다 작동하는 소프트웨어, 계약보다 고객 협력, 계획보다 변화 대응.
  • XP 5가지 가치 → 의사소통·단순성·용기·존중·피드백. 실천 방법(짝 프로그래밍, TDD, 리팩토링 등)과 섞지 않는다.
  • "기능 변경 없이 코드 구조를 개선" → 리팩토링. "테스트를 먼저 작성" → TDD.

관련 문서