익스트림 프로그래밍 개념? 6가지 주요 요소 이해

익스트림 프로그래밍 개념에 대한 설명
익스트림 프로그래밍 개념에 대한 설명

익스트림 프로그래밍 개념에 대해서 이야기해봅시다.




익스트림 프로그래밍 개념에 대한 이해

익스트림 프로그래밍(XP, eXtreme Programming)은 애자일(Agile) 프로젝트 방법론 중 하나입니다.

애자일(Agile) 프로젝트에는 다양한 종류가 있습니다. 애자일 프로젝트의 가장 대표적인 방법론은 스크럼(Scrum) 방법론이 있습니다. 하지만 애자일 방법론 중에는 스크럼 방법론 만 있는 것이 아닙니다. 스크럼 방법론 이외에도 익스트림 프로그래밍, 크리스털 방법론, DSM 등 다양한 종류가 있습니다. 이 중에서 익스트림 프로그래밍도 가장 대표적인 애자일 방법론 중 하나인 것입니다.

익스트림 프로그래밍(XP, eXtreme Programming)은 업무를 민첩하게 추진하기 위한 기술적 측면을 소개하는 방법론입니다. 익스트림 프로그래밍은 1999년 켄트 백(Kent Beck)이 만든 방법론입니다.

익스트림 프로그래밍(XP, eXtreme Programming)은 줄여서 “XP” 라고도 표현합니다.

익스트림 프로그래밍(XP, eXtreme Programming)은 빠른 시간 안에 고객에게 양질의 소프트웨어를 전달하는 것을 목적으로 하고 있습니다.




익스트림 프로그래밍 개념에 대한 설명

익스트림 프로그래밍(XP, eXtreme Programming)품질(Quality)에 주의를 기울여야 신속한 릴리즈(Release)가 가능하고 프로젝트 팀(Project Team)이 최고의 속도로 인도하는데 도움이 될 수 있도록 다양한 기술적(Technical)인 실무를 제시하고 있는 방법론입니다.

익스트림 프로그래밍(XP, eXtreme Programming)에서는 6가지 주요 요소를 제시하고 있습니다.

익스트림 프로그래밍(XP)에서 제시하는 6가지 요소는 모든 수준에서의 테스트(Test at all Levels), 지속적인 통합(Continuous Integration), 스파이크(Spikes), 테스트 주도 개발(TDD, Test-Driven Development), 행위 주도 개발(BDD, Behavior-Driven Development), 인수 테스트 주도 개발(ATDD, Acceptance Test Driven Devlopment)입니다.

[익스트림 프로그래밍의 6가지 주요 요소]

구분내용
1모든 수준에서 테스트(Test at all Levels)
2지속적인 통합(Continuous Integration)
3스파이크(Spikes)
4테스트 주도 개발(TDD, Test-Driven Development)
5행위 주도 개발(BDD, Behavior-Driven Development)
6인수 테스트 주도 개발(ATDD, Acceptance Test Driven Devlopment)

모든 수준에서 테스트(Test at all Levels)는 단위 테스트부터 통합 테스트, 성능 테스트, 인수 테스트까지 모든 테스트를 반드시 프로젝트에서 진행하도록 하는 내용입니다. 익스트림 프로그래밍(XP)에서는 단위 테스트(Unit Test)와 통합 테스트(Integration Test), 성능 테스트(Performance Test) 그리고 UAT(User Acceptance Test)까지 기능이 잘 작동 하는지를 확인하고 시스템의 성능이 양호한지 등을 모드 테스트 해야 한다고 강조합니다.

지속적인 통합(Continuous Integration)는 개발 업무를 할 때 지속적인 통합 체계를 반드시 구축하여 모듈 단위로 개발된 코드는 하나의 작업이 끝날 때마다 지속적으로 통합하여 자동화된 테스트를 수행하도록 하는 것입니다. 나중에 통합 테스트를 진행할 때 어려움을 겪지 않으려면 자동으로 통합되어서 빌드(Build) 테스트가 진행되는 환경을 만들어야 한다는 것입니다. 그래서 한 명의 개발자가 코드를 수정하더라도 자동으로 통합되어서 빌드 테스트가 진행되도록 구성하는 것입니다.

스파이크(Spikes)프로덕트 오너(Product Owner)가 설명하는 유저 스토리(UserStory)에 대한 내용을 프로젝트 개발팀이 들었는데 개발팀이 해당 내용을 잘 이해하지 못한다면 프로덕트 오너는 개발팀에게 요청하는 것을 말합니다. 프로덕트 오너가 스파이크를 요청하면 개발팀은 스토리 내용을 충분히 이해할 수 있는 기간을 받을 수 있게 됩니다. 그러면 개발팀은 해당 기간 동안 무엇인가를 만들어 볼 수 있습니다. 이를 통해 불확실성과 리스크(Risk)를 감소시킬 수 있습니다.

스파이크(Spikes)는 특정 기간 안에 무엇인가를 제작해보는 작업을 진행하는 것입니다. 개발팀은 스파이크 기간 동안 요구 사항의 신뢰도를 높이고 기술 문제의 위험을 감소 시키기 위해서 간단한 프로그램을 별도로 만들어 볼 수 있는 것입니다.

테스트 주도 개발(TDD, Test-Driven Development)는 개발 코드를 작성한 다음에 나중에 테스트 케이스를 작성하는 방법이 아니라 불필요한 오버 코딩의 문제를 방지하기 위해서 테스트 케이스를 먼저 작성한 다음에 이를 검증할 수 있는 수준의 코드를 작성하면서 클린 코드가 나올 수 있도록 하는 방법론입니다.

테스트 주도 개발(TDD)는 테스트 케이스를 먼저 작성한 다음 코드를 작성함으로써 정확하게 해야 할 일을 파악하고 설계에 반영하여 실수를 줄이는 방법입니다.

행위 주도 개발(BDD, Behavior-Driven Development)은 개발팀의 관점이 아니라 고객이나 프로젝트 이해관계자가 바라보는 관점에서 가치 있는 기능부터 개발을 진행하는 것을 의미합니다. 고객이나 프로젝트 이해관계자가 바라본 애플리케이션의 동작 중에서 가장 가치 있는 기능부터 먼저 개발을 하는 방식입니다.

가치(Value)를 가장 먼저 추구하는 것이 애자일(Agile)의 기본적인 사상입니다.

행위 주도 개발(BDD)은 테스트 주도 개발(TDD)과 같은 개발자 중심이라기 보다 “고객과 이해관계자의 관점”에서 효과를 발휘하는 방법입니다.

인수 테스트 주도 개발(ATDD, Acceptance Test Driven Devlopment)은 작업 결과물에 대한 인수 기준을 논의한 다음에 테스트를 구성하는 것을 말합니다. 인수 테스트 주도 개발(ATDD)은 기준 충족에 충분한 수준의 코드만 만들어 가는 방식을 말합니다. 인수 테스트 주도 개발(ATDD)은 기준 충족에 충분한 코드를 작성하고 테스트를 진행하게 됩니다.




이 게시물이 얼마나 유용했습니까?

평점을 매겨주세요.

평균 평점 0 / 5. 투표 수: 0

가장 먼저 게시물을 평가해보세요.

error: 우클릭이 불가능합니다.