본 프로젝트의 소프트웨어 개발 프로세스는 다음과 같습니다.
소프트웨어 출시 전 배포까지의 모든 과정에 대해 진행합니다. 단계별 테스팅, 유지 보수와 관련된 명세는 현재 문서에서 다루지 않습니다.
기본적으로 기능 단위의 개발을 진행합니다. 개발 프로세스는 아래 기입된 사이클을 반복합니다.
요구 분석: 소프트웨어의 전반적인 요구 분석이 아니라 개별적인 기능에 대한 요구 분석을 진행합니다. 요구 분석의 결과는 간단한 기능 명세서로, 소프트웨어가 사용자의 입장에서 어떤 기능이 요구되는 지를 설명합니다. 구체적인 기능의 구현 방법은 기술하지 않습니다.
요구 분석 대상은 어플리케이션 개발을 위한 기능과 디자인 시스템 제작을 위한 코어 컴포넌트 두 파트로 나뉘어집니다.
작업 선정: 요구 사항에서 도출된 결과를 기반으로 세부 작업을 결정합니다. 작업 선정 방식은 요구 분석 대상에 따라 다르게 선정합니다.
<aside>
💡 특정 기능의 작업이 해당 요구 사항과 연관되지 않는 경우가 발생할 수 있습니다. 예를 들어, 검색 기능에 대한 요구 분석 결과로 http
요청 기능의 작업이 할당되었을 때, http
핵심 모듈 구현부 자체는 검색 기능의 책임에 부합하지 않습니다. 이런 경우 해당 기능의 새로운 요구 사항을 생성하여 작업을 진행합니다.
</aside>
이슈 및 브랜치 생성: 작업 선정 단계에서 생성한 작업을 기반으로 이슈와 브랜치를 생성합니다. 이때, 각 작업과 이슈는 1:1로 대응됩니다. 이슈 및 브랜치 생성 가이드는 이후 문서에서 다룹니다.
개발: 원격 저장소에서 생성된 이슈와 브랜치를 참고하여 작업 환경을 구성하고 개발을 진행합니다.
PR 및 합병: 개발이 완료되면 PR을 요청합니다. 팀원들의 리뷰를 거친 후 브랜치를 병합합니다. 이후, 이슈를 닫고 브랜치는 만료 상태로 변경합니다.
2단계 개발 프로세스에서 선정한 각 작업(을 기반으로)에 대해 이슈를 발행합니다. 이슈의 이름은 기능을 할당된 작업을 기반으로 자유롭게 작성할 수 있지만, 아래 타입 중 하나에 해당하는 라벨을 부여해야 합니다.
개발 외적으로, 아래 타입에 해당하는 작업을 수행할 때도 이슈를 발행할 수 있습니다.