정보처리기사/소프트웨어 설계

SDLC - 애자일 방법론 (XP, Scrum)

joungdev 2025. 1. 23. 14:50

 오늘은 소프트웨어 개발 생명주기 중 하나인 애자일 방법론에 대해 알아볼 것이다. 소프트웨어 개발 생명주기와 소프트웨어 개발 방법론의 여러 종류를 알고 싶다면 이전 포스팅을 확인하면 좋을 것 같다.

 

 

소프트웨어 개발 생명주기

우리는 어떤 일을 실천하기 전에 항상 계획이란 걸 세운다. 공부를 할 때도, 여행을 갈 때도 마찬가지이다. 소프트웨어 개발도 마찬가지로 계획을 세우고 계획된 프로세스를 통해 개발을 진행한

joungdev.tistory.com

 

 

SDLC : V-모델

이전 포스팅에서는 SDLC, 즉, 소프트웨어 개발 생명주기와 그 종류인 폭포수 모델, 프로토타입 모델, 나선형 모델에 대해 알아보았다. 이번 포스팅에서는 역시나 포스트웨어 개발 생명주기의 한

joungdev.tistory.com


애자일(Agile) 방법론

 애자일은 소프트웨어 개발에서 유연하고 빠르게 변화하는 환경에 대응하기 위해 만들어진 방법론이다. 비교가 많이 되는 모델인 폭포수 모델과는 달리, 애자일은 반복적이고 점진적인 개발 방식을 채택한다.

 

 애자일 방법론은 개발의 문서화 보다는 고객과 팀 협업에 중심을 둔 방법론이라고 할 수 있다. 애자일 선언문에서는 프로세스와 도구 보다는 개인과 상호작용을 핵심 가치로 하고, 문서화보다는 결과물을 중시하고, 계약 협상 보다는 고객과의 협력을 중시한다. 또한 계획을 따르는 것보다는 변화에 대한 대응을 하는 것을 중요시 한다.

 

 오늘은 애자일 방법론 중 가장 많이 언급되고 정보처리기사 시험에서도 가끔 나오는 개념인 XP와 스크럼에 대한 포스팅을 할 것이다. 물론, 칸반이나 LEAN 같은 방법론도 있지만, 이는 오늘 다루지 않을 것이니 궁금하신 분들은 따로 찾아보기를 권한다.


XP (eXtreme Programming)

 XP는 애자일 소프트웨어 개발 방법론 중 하나로, 빠르게 변화하는 요구사항에 대응하기 위해 만들어졌다. 고객과의 긴밀한 협력과 짧은 주기를 강조하며, 테스트 중심 개발(TDD)와 같은 기술적 실천을 중시한다.

 

 고객 참여와 팀 협력을 중심으로 둔 XP는 다음과 같은 핵심 가치를 가진다.

 

XP의 5가지 핵심 가치

  1. 의사소통
  2. 단순성
  3. 피드백
  4. 용기
  5. 존중

 위의 항목들은 어쩌면 협력을 위한 당연한 5가지 항목이라고 할 수 있다. 따라서 고객 참여와 팀 협력이라는 모토에 맞게 XP를 잘 설명하는 5가지 핵심 가치라고 할 수 있다.

 

 XP를 실천하기 위해선 여러 실천 방법들이 존재한다. 그 내용은 다음과 같다.

 

XP의 실천 방법

실천 방법 설명
Pair Programming (짝 프로그래밍) 두 명의 개발자가 한 컴퓨터로 함께 코드를 작성하는 방식. 한 사람은 코드를 작성하고 한 사람은 작성된 코드를 검토한다.
Collective Ownership (공동 소유권) 코드는 팀 전체의 자산으로, 모든 팀원이 코드를 수정하거나 개선할 수 있다.
Test-Driven Development (TDD, 테스트 주도 개발) 코드를 작성하기 전에 테스트를 먼저 설계하고 작성하는 개발 방식이다.
Whole Team (전체 팀) 팀 전체가 한 몸처럼 협력하여 프로젝트를 진행한다.
Continuous Integration (지속적 통합) 팀원이 작성한 코드를 자주 통합하여 빌드하고 테스트하는 과정이다.
Design Improvement (설계 개선) 단순하고 유지보수가 쉬운 설계를 지향한다.
Small Release (작은 릴리즈) 짧은 주기로 작고 빈번하게 제품을 릴리즈한다.
Refactoring (리팩토링) 코드의 동작은 그대로 유지하면서 구조를 개선하는 작업이다.

 

 XP의 실천 방법에는 더 다양한 내용이 있지만 이 포스팅에서는 많이 언급되는 내용만 적었다. 이처럼 XP는 팀원들 간의 협업과 고객 참여를 중심으로 1~3주 주기의 반복적인 개발을 통해 기술적 실천과 팀 간 협업을 강조한다. 또한 고객을 팀의 중요한 일원으로 간주하고 프로젝트를 진행하기 때문에 고객이 만족할 수 있는 소프트웨어를 제공하는 것이 XP의 핵심이다.


스크럼 (Scrum)

 스크럼은 애자일 프로젝트 관리 프레임워크로, 팀이 복잡한 프로젝트를 효과적으로 관리하고 개발할 수 있도록 돕는다. 특히, 반복적이고 점진적인 방식으로 제품을 개발하는 데 중점을 둔다.

 

 XP와의 차이점이라고 한다면 XP는 고객과 팀간 협업으로 인한 품질 높은 소프트웨어 개발이 중심이었다고 한다면, 스크럼은 팀원 간 협업과 반복적인 피드백으로 프로젝트 관리 및 효율적인 개발을 모토로 삼는다. XP는 고객이 적극적으로 참여를 하고 고객이 팀과 협력한다는 특징이 있지만 Product Owner가 고객의 요구사항을 관리하고 개발 팀은 개발에 전념한다는 차이점도 있다.

 

스크럼 팀 구성

  • Product Owner(제품 책임자) : 요구사항을 관리하고 우선순위를 정한다.
  • Scrum Master(스크럼 마스터) : 팀이 스크럼 규칙을 준수하며 장애물을 제거하는 역할을 한다.
  • 개발 팀 : 실제 제품을 개발하는 멤버들이다.

 

스크럼 진행

스크럼 진행 과정

 

  • 프로덕트 백로그 : 고객의 요구사항을 우선순위에 따라 정리한 목록
  • 스프린트 계획 : 스프린트에서 수행할 작업을 계획
  • 스프린트 백로그 : 스프린트 기간 동안 수행할 작업 목록
  • 스프린트 : 1 ~ 4주 단위의 반복 주기. 각 스프린트의 목표는 동작 가능한 제품 인도
  • 데일리 스크럼 : 매일 약 15분 동안 진행 상황과 장애물 공유
  • 스프린트 리뷰 : 스트린트 결과를 검토하고 피드백 받음
  • 스프린트 회고 : 프로세스를 돌아보고 개선점 논의

 스크럼은 위 내용에서 보앗듯이, 짧은 스프린트 주기로 인해 자주 결과물을 확인하고 개선할 기회가 생기고 각 스프린트마다 고객의 피드백을 반영하여 더 나은 방향으로 나아갈 수 있다. 팀은 스프린트 회고를 통해 내부 프로세스와 협업 방식을 꾸준하게 개선하여 프로젝트 관리를 효율적이고 안정적으로 조율할 수 있다는 특징이 있다.

반응형