"" 열두 번째 세션 - 얘들아 자면 안돼 플젝하자 돌아보기 ""
12월 28일, GDSC Seoultech의 열두 번째 정기 세션이 있었습니다.
열두 번째 세미나로는 얘들아 자면 안돼 플젝하자가 진행되었습니다😲
그 뜨거웠던 현장을 돌아보시죠!
SW 개발 프로세스에 대해서 설명드리면, Software Development Process 라는 표현대로 "소프트웨어 제품을 개발하기 위해 필요한 과정 또는 도구"의 의미를 가지는데요. 비슷한 의미로 SDLC 라는 표현을 사용하기도 합니다. SDLC 는 Software Development Life Cycle 의 줄임말로 한국어로는 소프트웨어 생명주기로 불리기도 합니다. 한 사이트의 정의에 따르면
The Software Development Life Cycle (SDLC) is a structured process that enables the production of high-quality, low-cost software, in the shortest possible production time.
사진에서 보시는 것처럼 소프트웨어 개발에 대한 계획 을 가장 먼저 세우고, 유즈케이스 다이어그램과 같이 다양한 방법을 통해 설계 를 진행합니다. 이러한 설계를 바탕으로 코딩하여 제품을 구현 해 낸 뒤에 테스트를 통해 제품이 잘 만들어졌는지 확인하는 것이죠. 최종적으로는 실제 사용자들에게 배포 를 하고 지속적인 유지 보수를 해 나가게 될 것입니다.
SDLC는 프로젝트의 규모, 적용 방식에 따라 다양한 방법론들이 제시된다고 합니다.
대표적인 SDLS 모델 8가지 중에서도 폭포수 모델 에 대해서 먼저 살펴보겠습니다.
애자일 모델에 대해서는 더 자세히 알아봅시다:)
"Agile"이라는 단어를 사전에 검색하면 날렵한, 민첩한 이라는 의미를 가지고 있다는 것을 알 수 있는데요. 단어의 뜻처럼 필요에 따라 민첩하게 대응하고, 상황에 맞추어 주어진 문제를 풀어나가는 방법론이라고 합니다.
처음 애자일 모델이 등장하게 된 배경에 대해 잠깐 이야기해 드리자면 90년대 후반까지는 기존 공학의 프로세스와 비슷한 방식으로 소프트웨어 개발이 이루어졌지만 정보시스템에 대한 사용자 요구가 다양 해지고, 유동성과 변동성 등이 높은 소프트웨어의 특성에 더 적합한 방법론이 요구되었습니다. 기존 방법론들은 신속한 대응과 적응이 어렵 고, 중소규모의 시스템에 부적절하게 무거운 방법론을 적용하면 오버헤드가 커지는 문제 가 생길 수 있었기 때문입니다.
결과적으로 애자일 방법론이 등장하였으며 더 작은 반복 주기로 개발을 촉진 하고, 계획이나 문서화 작업보다는 프로그래밍 과정에 초점 을 둘 수 있습니다. 그리고 변경 사항에 대해 더 유연하게 적응 할 수 있고, 새로운 기능을 추가 한다든지 피드백과 제안을 모든 단계에서 수행 할 수 있다는 장점이 있습니다. 덕분에 최종 목표가 확실하지 않은 프로젝트에 용이하며 사용자의 의견을 수용하기가 쉽습니다. 다만 애자일 적용을 지원하는 지침서가 부족하고 요구사항의 잦은 변경으로 인해 테스트를 수행해야 하는 노력이 증가하는 등의 문제점도 존재합니다. 이러한 애자일 모델은 활용에 따라 스크럼, XP, 린 방식 등이 있습니다. 그중에서도 스크럼 방법에 대해서 자세히 알아봅시다.
스크럼은 5~9명으로 구성되는 소규모의 다기능 팀이 제품 개발을 완성하기 위해 스프린트(sprint)라고 불리는 업무 주기를 반복합니다. 이 팀은 제품 책임자(PO:Product Owner)가 관리하는 "해야 할 일들의 목록(product backlog)"에서 "스프린트 동안 해야 하는 일들(sprint backlog)"을 스스로 결정하고 완수하여 매 스프린트 마다 결과물(increment)을 산출해냅니다.
또한, 팀이 성과를 낼 수 있도록 조력하는 역할을 스크럼 마스터(SM:Scrum Master)라고 하는 사람이 팀원들이 과제를 완수할 수 있도록 필요한 자원을 지원하거나 장애 요소를 제거하며 프로세스를 인도하는 역할을 담당합니다.
<과정> 참고 링크
1. 제품에서 요구하는 기능과 우선순위를 제품 백로그 로 정한다.
2. PO가 정한 제품의 우선순위에서 어디까지 작업을 할지 팀과 조율한다. 조율하여 선정된 제품 백로그가 이번 스프린트 의 목표가 된다.
3. 스프린트 목표를 구현 가능하도록 팀에서 스프린트 백로그 를 작성한 뒤 작업을 할당한다.
4. 스프린트를 진행하는 동안, 매일 정해진 장소와 시간에 모든 개발 팀원이 참여하는 일일 스크럼 회의 를 가진다.
5. 매회의 스프린트가 종료할 때마다, 스프린트 리뷰 미팅 을 통해 만들어진 제품을 학습하고 이해 한다.
6. 제품의 학습과 이해가 끝나면, 스프린트 회고 를 통해 팀의 개발 프로세스에 대한 개선의 시간을 갖는다.
7. 스프린트 기간 중 다음 스프린트를 준비 하기 위해 PO와 필요 인원이 모여 백로그를 준비하는 시간을 갖는다.
<Agile 활용>
최근 여러 IT기업에서의 채용공고에서 찾아볼 수 있는 Agile!
실제 현업에서도 많이 사용된다고 하기에 솔루션챌린지 과정에서 팀원들과 함께 애자일에 대해 알아두면 도움이 될 것 같아 직접 경험해 볼 수 있도록 준비하게 된 세미나입니다. 현업과 100% 똑같은 애자일을 경험할 수는 없겠지만 이러한 경험들이 추후에 더 많은 발전을 위한 밑바탕이 될 것이라고 생각합니다. 솔루션챌린지의 길다면 길고, 짧다면 짧을 과정의 시작이 밝았으니 다 같이 힘내서 열심히 해보아요😀 또치, 아지, 나구리도 여러분을 응원한대요 ヽ(✿゚▽゚)ノ 우리 GDSC SEOULTECH 멤버들 파이팅😊