CLI 기반 주문 시스템
프로젝트의 루트에서 이하의 명령 실행
docker build -t order-system:latest .
docker run -it -p 50152:50152 order-system:latest
- 전체적인 로직을 직관적으로 파악하기 위해 Flow Chart 작성
- 가장 간단한 방식(Happy Path)의 주문 기능 구현
- Flow Chart에 작성한 주요 분기점에 대해 실패하는 단위 테스트 작성
- 실패하는 테스트를 성공시키기 위해 코드 수정
- 3번과 4번 과정을 충분히 반복한 후, 테스트 기반으로 전체적인 코드 리팩토링
본 프로젝트는 이하의 5개 패키지로 구성
- cli: shell 환경의 입출력 처리
- application: 비지니스 로직 처리
- domain: 엔티티 정의
- exception: 커스텀 예외 정의
- infra: 영속적 데이터 처리
- Application Framework: Spring Shell
- RDBMS & ORM: H2, Spring Data JPA
- Test Framework: JUnit
- Spring Shell: Baeldung
- Unit Test: better specs, 기계인간 블로그
- Concurrency Test: 삐멜 소프트엔지니어