프로젝트의 기획부터 구현, 배포 및 테스트까지의 전반적인 흐름에 대해 학습하였다.
이때까지 진행되었던 학습은 코드 작성에 중점을 두었기 때문에 기획, 분석, 설계 단계 없이 바로 구현만 진행했는데
프로젝트부터는 직접 어떤 기능이 필요할지 생각해보고 일정과 개발 단계를 관리해야하기때문에 프로젝트를 관리법 또한 잘 알아야한다.
❯ 비즈니스 관점에서의 개발 프로젝트
- 과업 발생: 수행해야할 프로젝트가 발생한다. 이 때 회사 내부에서 자체적으로 해결할 수 있겠지만 필요한 경우 다른 업체에게 프로젝트를 위탁할수도 있다.
- 사업자 선정 및 계약: 외부 업체에 발주를 진행할 경우 위탁 업체에게 RFP(Request For Proposal, 제안 요청서)를 요청할 수 있다. RFP를 통해 적절한 제안을 제시한 업체를 선정하고 계약을 진행할 수 있다.
- 기획 / 분석: 계약 및 사전 처리가 완료되면 PM(Project Manager)이 사업내용 확인 후 필요한 인력, 시간을 확보하고 여러 사항을 고려하여 SRS(Software Requirements Specification)을 작성한다.
* SRS란 소프트웨어가 무엇을 할지, 어떻게 작동할지 등 종합 설계도와 같은 역할을 하며 프로젝트 전체 그림을 나타낸 문서이다. - 설계: SRS의 목표에 따라 구체적인 설계가 진행되는 과정이다. 구현해야하는 내용에 따라 화면 정의서, 클래스 정ㅇ릐서, 아키텍처 설계서 등을 작성한다.
- 구현: 실제 코드 개발 업무를 수행하는 과정이다. 기획, 분석, 설계에 따라 구현이 진행되므로 이전 과정이 잘 수행되어있어야한다.
- 시험: 코드가 올바르게 동작하는지 테스트하는 과정이다. 구현 과정에서 유닛테스트가 진행되었다면 시험에서는 통합테스트를 진행하며 서비스 오픈을 위해 사용자 매뉴얼 등을 작성하기도 한다.
- 서비스 오픈: 서비스를 배포한다.
- 유지보수: 서비스가 정상적으로 운영될 수 있도록 지속적으로 유지보수한다.
❯ 개발 프로젝트에서 사용되는 문서 예시
해당 문서는 기업이나 개발 과정에 따라 명칭이 달라지거나 사용 여부가 달라질수도 있다. 필요에 따라 양식이나 내용을 수정하여 사용한다.
사용자 요구사항 정의서 - 분석단계
고객 요청사항을 기반으로 SRS 협의 내용을 적용하고 실제 개발에 적용할 수 있는 수준으로 재정의한것을 말한다.
요구사항ID, 요구사항명, 구분, 요구사항 설명, 중요도 등을 명시한다.
테이블 명세서 - 설계단계
최종적으로 설계된 테이블과 인덱스를 데이터베이스에 매핑시키고 저장공간 등의 물리 모델을 기술한 문서이다.
데이터베이스 이름, 테이블 이름, 요구사항 ID, 테이블 설명, 컬럼명, 컬럼 id, 타입, PK 등을 명시한다.
API 명세서 - 설계단계
REST API를 사용한 애플리케이션에서, 리소스에 대해 고유 URI를 부여하고 HTTP 메서드를 적절히 사용해 리소스를 제어하게 된다.
API 명세서에 정해져있는 방법으로 JSON이나 XML같은 사전 정의된 형식을 통해 리소스를 일관된 방법으로 주고받을 수 있다.
개발자 테스트 체크리스트 - 시험단계
세부적인 기능테스트들은 구현단계에서 유닛테스트를 통해 검증한다.
개발자 테스트에서는 기본 기능들의 검증을 주 목적으로 하며 요구사항 정의서를 기준으로 작성할 수 있다.
개발자 테스트 체크리스트는 한번만 수행하고 끝나는 것이 아니라 관련 코드가 수정되거나 배포될 때 관련된 테스트들은 지속적으로 수행하는 것이 좋다. 테스트 통과율 등을 표시하여 현재 진행상황을 확인할 수 있다.
이제 본격적인 프로젝트가 시작된 느낌이다.
과제는 스택오버플로우 애플리케이션을 구현하는 것인데 프로젝트를 진행하기에 앞서 우리가 현재 실력이 어느정도이고, 어디까지 구현할 수 있을지를 명확히 하는것이 중요하겠다는 생각이 들었다.
최소한으로 구현해내고 싶은 기능, 만약 예상보다 해당 기능을 빠르게 구현한다면 추가로 구현해보고싶은 기능 등 여러가지를 생각해보고
팀원분들과 협의해서 계획을 세워야할 것 같다. 아무래도 코드 작성 뿐만아니라 테스트, 문서화, 배포 등 해야하는 단계들이 있어서 더 깊게 생각을 해봐야할 것 같다.(지난번에 멘토님께서 다른것보다도 기획과 설계에 더 많은 시간을 써야한다고 하신 말씀이 확 와닿았다.)
'부트캠프 개발일기 > Pre-Project' 카테고리의 다른 글
85일차: Pre-Project Day 5 (이슈 설정, 역할 분담) (0) | 2023.06.15 |
---|---|
84일차: Pre-Project Day 4 (사용자 요구사항 정의서, ERD) (0) | 2023.06.14 |
82일차: Pre-Project Day 2 (GitHub 다루기) (0) | 2023.06.12 |
81일차: Pre-Project Day 1 (팀빌딩) (0) | 2023.06.09 |
79일차: Solo Project(키오스크 구현) (0) | 2023.06.07 |