- 프로젝트 진행 시 요구사항 정의가 미흡하고 개발 과정에서 변경이 잦아 개발자들이 어려움을 겪는 현실 😫
- 요구사항 정의 후 화면 설계, UI 개발, 프론트/백엔드 개발 단계를 거치지만, 비즈니스 플로우는 CRUD 중심으로 단순화되는 문제점 😥
- 스펜서 존슨의 책을 인용하여 변화에 대한 적응과 현재에 집중, 자신을 소중히 여기는 태도의 중요성을 강조 🤩
- 유스케이스, 액티비티, 액션의 관계를 정의하여 설계 단계의 추상적인 유스케이스를 구현 시 구체화하는 방법 제시 🤔
- 액티비티 다이어그램을 활용하여 비즈니스 업무 플로우를 파악하고, 액티비티 인터페이스에 액션을 포함시켜 구현 누락 방지 🧐
- 서비스 인터페이스를 액티비티로 표현하여 컨트롤러, 서비스, 리퍼지토리 구조에서 비즈니스 로직 흐름을 명확히 함 😎
- 비즈니스 도메인과 시스템 컴포넌트를 모듈로 분리하고, 비즈니스 도메인에 대한 테스트 코드 작성을 강조 😮
- 룰은 비즈니스 도메인이 아닌 컴포넌트로 분류하여 관리하고, 컴포넌트 모듈과 비즈니스 도메인 모듈의 예시를 제시 😮
- 컴포넌트 모듈은 오디팅, 컨테이너, 인증/인가, 데이터 소스 등으로 구성하고, 필요에 따라 별도 서브 프로젝트로 분리하여 관리 😲
- 비즈니스 도메인 모듈은 액티비티 인터페이스, 포트, 서비스, API, 인프라 등으로 구성하고, 도메인 간 이벤트 기반 통신 고려 😮
- 테스트는 엔티티, 액티비티 인터페이스, API, 인프라 등으로 구분하여 수행하고, 비즈니스 플로우에 맞춰 테스트 코드 작성 😮
- 액티비티 인터페이스 개념을 통해 설계와 구현의 일치성을 높이고, CRUD로 단순화되는 문제 해결을 시도 🥳