본문내용 바로가기

> ReadIT > 칼럼 자세히 보기

칼럼
리스트보기

[커리어 스킬] 소프트웨어 개발 방법론

2019.05.30

소프트웨어 개발 방법론

 

 

소프트웨어 개발 방법론의 세계에 온 것을 환영한다. 소프트웨어 개발 커뮤니티에서 개발방법론과 이를 구현할 방법이라는 주제보다 더 많은 논쟁을 불러일으키는 주제는 없을 것이다개발 방법론은 소프트웨어 제작 절차를 정의한다. 가벼운 방법론도 있고, 규칙이 무척 많은 방법론도 있다. 크게 폭포수 개발 방법론과 애자일 개발 방법론으로 구분한다.

  


1.     폭포수 개발 방법론

 

폭포수 개발은 이름 그대로다. 바닥에 닿을 때까지 한 단계가 끝나면 다음에 있는 아래 단계로 내려가며 소프트웨어를 한 번에 한 단계씩 만들어가는 방식이다. 폭포수 개발 방법론에는 소프트웨어 개발 생명주기(Software Development Life Cycle, SLDC)가 포함되어 있다. SDLC는 소프트웨어를 개발하기 위해 요구사항 분석부터 시작해 설계, 구현, 테스트, 배포, 유지 보수로 끝나는 일련의 과정을 가리킨다. 폭포수 개발의 SDLC는 순차적이다. 사실 폭포수 개발은 SDLC를 점진적으로 따라갈 뿐이라고 보아도 무방하다.

 


2.     애자일 개발 방법론

 

애자일은 소프트웨어 개발 업계의 판도를 뒤바꿔놓았다. 애자일이란 정확히 무엇일까? 애자일은 확실한 형태가 없다. 그 이유는 역사를 알아야만 이해할 수 있다.

 

애자일 선언문

https://agilemanifesto.org/iso/ko/manifesto.html

 

#애자일은 방법론이 아니다

애자일은 소프트웨어 개발이 어떻게 이루어져야 하는지를 매우 높은 수준에서 정의한다. 그래서 이 자체를 방법론으로 보기는 어렵다. 애자일은 개발이 점증적으로 이루어져야 한다는 아이디어에 불을 붙였고, 개발이 이루어지는 동안 요구사항 또한 바뀔 수 있고, 오히려 바뀌어야 마땅하다는 아이디어도 수용했다.

 

#애자일 개발 방법론 3가지

 

1.     스크럼

스크럼은 소프트웨어 개발팀의 특정 역할, 소프트웨어를 개발하는 작업 흐름, 개발의 반복 주기마다 여는 스프린트라고도 부르는 회의를 까다로운 규범에 따라 정의한 정형화된 방법론이다. 스프린트라고 부르는 작은 반복 주기로 나누고, 각 스프린트를 마칠 때마다 나오는 결과를 점진적으로 고객에게 전달한다.

 

스크럼 회의라는 것이 있다. 이 회의는 서서 진행하며, 업무 진행 상황을 전체 팀원과 공유하고 업무를 지연시키는 장애물을 제거하는 것이 목적이다. 각 팀원은 세 가지 질문에 답해야 한다. 

어제는 팀의 스프린트 목표 달성에 도움이 될 만한 어떤 일을 했는가?

오늘은 팀의 스프린트 목표 달성에 도움이 될 만한 어떤 일을 할 것인가?

본인이나 팀의 스프린트 목표 달성을 막는 장애물이 있는가?

 

스프린트가 끝나면 스프린트가 진행되는 동안 완료한 목표를 이해 관계자에게 보여주는 리뷰를 수행하고, 마지막으로 지난 스프린트를 돌아보고 다음 스프린트에 대한 아이디어를 떠올리는 회고 회의를 한다.

  

2.     칸반

칸반은 스크럼보다는 느슨하게 정의된 방법론이다. 칸반 보드를 주로 활용한다칸반 보드는 몇 개의 칼럼이 있는 간단한 보드인데, 개발 프로세스가 진행되는 동안 업무 단계를 표현한다. 병목 구간을 알아내서 제거할 수 있도록 프로젝트에서 해야 하는 일을 시각화하고, 동시에 진행하는 업무의 양을 제한하는 것이 핵심이다. 또한 칸반은 피드백 루프를 통해 끊임없이 더 나아지는 데 집중한다.

 

 3.     익스트림 프로그래밍

XP라고도 불리는 익스트림 프로그래밍은 단위 테스트, 테스트 주도 개발, 객체지향 프로그래밍, 고객 중심 등 모범 사례를 많이 가져와서 극단의 경지라고 부를 수준까지 끌어올렸다. XP는 페어 프로그래밍에 크게 의존한다. 페어 프로그래밍이란 개발자 두 명이 함께 앉아서 공동으로 작업해 모든 코드를 함께 만드는 것이다. 

 

소프트웨어 개발할 때 어떤 방법론을 쓰시나요?”

 

어떤 방법론을 선택하느냐 보다는 반복과 측정이 가능한 프로세스를 갖추는 것이 더 중요하다는 사실을 다시 한번 명심하자.


이 글은「커리어 스킬」'27장. 소프트웨어 개발 방법론' 중에서 발췌 및 재구성한 글입니다.

커리어 스킬 [컴퓨터/IT]  커리어 스킬
존 손메즈 | 길벗
2019.04.10

리스트보기

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품