개발가능상태란 무엇인가
개발가능상태로 준비해주세요
새로운 서비스나 기능을 개발할 때 항상 듣는 말입니다.
몇 번의 경험을 토대로 "개발가능한상태"에 대한 정리를 해봤습니다.
1. 기획 검토하기
먼저, 지금까지 나온 기획을 검토합니다. 요구사항과 와이어프레임을 확인합니다. 정리된 요구사항리스트가 없다면 와이어프레임 및 기획을 토대로 요구사항을 컴포넌트별로 정리해봅니다.
검토할 항목으로는
- 스토리 기준 우선순위 선정
- 유저흐름, 기능흐름 간 어색하거나 협의할 사항들 정리
- 정책 관련 협의할 사항들 정리
- 특정 기능 횟수 제한 여부, 에러 케이스, 기능 제공을 위한 유저 식별 시점, 특정 요구사항이 커버하는 범위, 알림 방법 및 시점, 환불 등
- 요구사항 반영 간 복잡하거나 불필요한 기능 및 대안 제시
- 화면구성이나 유저흐름에 대한 제안
- 요구사항을 더 잘 반영
- 고려되지 않은 케이스
2. 도메인 설계하기
어떤 컴포넌트들이 필요할지 구상하고 핵심적인 속성이나 메서드, 다른 컴포넌트들과의 관계를 표현하는 도메인 모델을 구성합니다.
요구사항에서 추론되는 기능들을 생각하며 컴포넌트들 사이의 연관성을 생각하고 컨텍스트맵을 그려봅니다.
애그리게이트루트, 엔티티, 값객체로 구성하여 서브도메인 기준으로도 그려보고 전체 도메인으로도 그려보며 컴포넌트들 간의 관계를 파악합니다.
3. 기술 검토하기
기획과 요구사항대로 기능이 구현 가능한지 적용해야 할 기술에 대해 검토하고 가능여부를 판단합니다.
불가능한 경우, 해당 기술에서 가능한 범위 혹은 다른 기술을 활용한 방법 등 대안을 마련하여 제안합니다.
4. 기능리스트 정리하기
요구사항과 디자인을 확인하며 도메인별로 기능리스트를 정리합니다.
5. API 리스트 작성하기
기능리스트를 토대로 api 리스트를 작성합니다.
6. 시퀀스 다이어그램 작성하기
여러 도메인이 엮이는 경우 동기적으로 API를 호출하거나, 비동기적으로 메시징 구조를 사용하는 등 연계된 기능을 이해하기 위해 흐름을 정리합니다.
이는 본인이 코드를 짜는 데는 물론이고 다른 백엔드 및 클라이언트 개발자와 소통을 하는 데 도움이 됩니다.
7. DDL을 구성하기
해당 단계를 따라 왔다면 기능들을 동작시킬 구체적인 비지니스 로직을 제외하고 코드의 틀은 얼추 구성이 가능한 상태가 될 것입니다.
또한 도메인 모델의 구성과 시퀀스 다이어그램을 통해 전반적인 흐름을 파악했기 때문에 요구사항의 변경에도 빠르게 대응할 수 있을 것입니다.
사용하는 도구는 노션, draw.io, plantUml 이 있습니다.