1. Software Development Life Cycle (SDLC)
소프트웨어 개발의 전체적인 라이프 사이클을 이해하여 개발 과정에서 발생하는 일을 정략적으로 관리하자.
해야할 일
요구사항 분석
설계
구현
테스트
유지보수
위 과정을 진행하기 위한 대표적인 모델은 다음과 같다.
1.1. Waterfall
SDLC 일련의 단계를 모든 팀원들이 참여한다. 심각한 문제라면 다시 이전단계로 돌아가야하겠지만, 작은 문제라면 일단 다음 단계로 넘어간다.(작은 문제를 지금 고친다 하더라도 사이드 이펙트 발생까지 생각하기 어렵다.)
장점
팀을 관리하기가 편하여 대규모 팀에 적합
어떤 단계가 마무리되면 결과가 뚜렷함
1.2. Agile
작은 기능들의 성공을 반복시켜서 프로젝트 완성, 너무 많은 플랜을 지양하고 요구사항에 맞는 코드를 작성한다.
커뮤니케이션 중요(daily scrum, 코드리뷰, 회고)
Daily scrum
매일 15분간 회의를 진행하여 본인이 진행할 기능, 수정사항에 대해 우선순위를 부여하고 순서대로 진행한다.
- Product Backlog: 제품 전체의 요구사항
- Sprint Backlog : 프로덕트 기능 하나하나에 대해서 적어 놓음
Sprint
Sprint는 2주 단위로 진행을 한다. 첫날에 planning meeting을 진행하여 2주간 일정을 세세하게 세운다.
ex) 10월 25일 HTML설계, 10월 26일 컴포넌트 구조 설계 …
회고
2주간의 Sprint가 끝나면 회고를 진행한다.
- 3L 전략(Liked, Learned, Lacked)
Sprint 전 준비사항
- UseCase 작성하기
UseCase는 flowchart와 다르니 flowchart화 되고 있다면 재고해봐야한다.
UseCase는 사용자가 어떤 행동을 할 수 있는지를 나열하고 이들간의 관계를 연결한 구조로 작성한다.
flowchart가 아니므로 순서를 따를 필요가 없다.
소감
점점 막히는 부분도 많아지고 이전에 제대로 구조를 설계하지 않고 회피하고 구현에만 집중하다보니 리팩터링을 어떻게 시작해야할지 막막하다…
프로젝트 막바지에 다가오니 의욕도 떨어지는 것 같다. 재충전이 필요하다.
그래도 이틀남았으니 내일 하루는 리팩터링에 시간을 쏟고 목요일은 배포와 회고, 발표준비를 하면 프로젝트를 잘 마무리 할 수 있을 것 같다.