728x90
요구사항 추적
- 큰 맥락의 필요 기능과 예외상황을 기술한 기능 목록을 작성한다
- 이때, 놓치기 쉬운 요구사항들은 주의 사항 리스트로 별도로 만들어둔다
- 기능 목록에서 객체를 도출하고 도출한 객체를 가장 작은 개념까지 최대한 쪼개본다 ex) Lottos → Lotto → LottoNumber
- 기능 목록에서 메세지를 도출하고 도출한 메세지의 송수신 객체를 찾아본다 ex) Lottos → “로또를 생성하라” → Lotto
- 위를 기반으로 메세지 흐름이 보이도록 다이어그램을 그려본다
- 이때, 자세한 메서드 명이나 타입은 포함하지 않으며 어떤 형식의 결과를 반환할지만 명시한다 ex) List<String> x , 다리 정보를 리스트로 반환 o
- 검토하며 필요한 부분에 객체나 메세지를 재배치한다, 책임 분배를 의미하는 것이다
- 설계로 넘어간다
💡 *모든 기능을 한번에 설계하고 구현하는게 아니라, 구현해야하는 기능 목록에서 하나씩 점진적으로 설계 및 구현 후 커밋한다
설계
- 위 다이어그램과 기능 목록을 참고해 메인 로직을 설계한다
- 이때, 결과 예시 양식이나 조건을 제대로 반영하는지 재차 검토한다
- 메인 로직을 구성하는 기능들을 설계한다
- 메서드 이름과 반환 타입들을 결정한다
- 구현으로 넘어간다
구현
- 정리한 내용을 참고해 핵심 기능을 구현한다
- 예외를 잘 고려하여 테스트를 성공시킨다
- 리펙토링 한다
- 버전관리로 넘어간다
버전관리
- 커밋 한다
- origin push는 최대한 신중하게 진행한다
유지보수
- 버그 및 수정이 필요한 부분을 찾아 개선한다
- 버전관리로 넘어간다
728x90
'개발자 준비 > 개발 공부' 카테고리의 다른 글
동적 주입으로 버전 관리시 DB 연동 정보 숨기기 (3) | 2022.12.02 |
---|---|
Static 장점 제대로 살리기(feat. 프로그래밍 패러다임은 어우러져야 한다) (0) | 2022.11.22 |
실전을 위한 MVC 재 정리(feat. 입력을 원하는 타입으로 가공하는 책임은 어디일까?) (0) | 2022.11.22 |
매개변수 3개는 무조건 피해야할까? (0) | 2022.11.08 |
CI/CD(feat. DevOps) (0) | 2022.05.22 |