- 기본
- SpringBoot CLI를 이용해서 프로젝트를 생성한다.
- CLI로 제작한다.
- 스프링 부트 애플리케이션으로 만든다.
- 프로그램이 시작하면 다음과 같이 지원 가능한 명령어를 알려준다.
=== Voucher Program ===
Type exit to exit the program.
Type create to create a new voucher.
Type list to list all vouchers.
- create, list 커맨드를 지원한다.
- create 커맨드를 통해 바우처를 생성할 수 있다.(FixedAmountVoucher, PercentDiscountVoucher)
- list 커맨드를 통해 만들어진 바우처를 조회할 수 있다.
- 바우처 정보를 메모리에 관리한다.
- 적절한 로그를 기록하고 logback 설정을해서 에러는 파일로 기록된다.
- 실행가능한 jar 파일을 생성한다.
- 심화
- 메모리 관리가 아닌 파일로 관리가 되는 Repository 생성
- 기존 메모리 레파지토리는 지우지 말고 개발 프로파일에서만 동작하게 설정
- 고객 블랙 리스트 명단을 작성한다.
- customer_blacklist.csv 파일을 만들고 스프링 애플리케이션에서 해당 파일을 읽을 수 있고 블랙 리스트를 조회 할 수 있다.
- YAML 프로퍼티를 만들고 어떤 설정을 만들 수 있을지 고민해본다.
기본
2-1
- 바우처 관리 애플리케이션에 단위테스트를 작성해보세요.
- 가능한 많은 단위 테스트코드를 작성하려고 노력해보세요.
- 엣지 케이스(예외 케이스)를 고려해서 작성해주세요..
2-2
- 바우처 관리 애플리케이션에서도 과정에서 다루었던 고객을 적용해보세요.
- customers 테이블 정의 및 추가
- CustomerRepository 추가 및 JdbcTemplate을 사용해서 구현
2-3
- (1주차엔 파일로 관리하게 했다.) 바우처 정보를 DB로 관리해보세요.
- 바우처에 엔터티에 해당하는 vouchers 테이블을 한번 정의해보세요.
- 바우처 레포지토리를 만들어보세요. (JdbcTemplate을 사용해서 구현)
- 기존의 파일에서 바우처를 관리한 것을 vouchers 테이블을 통해서 CRUD가 되게 해보세요.
심화
2-4
- 특정 고객에게 바우처를 할당할 수 있습니다.
- 고객이 어떤 바우처를 보유하고 있는지 조회할 수 있어야 합니다.
- 고객이 보유한 바우처를 제거할 수 있어야 합니다.
- 특정 바우처를 보유한 고객을 조회할 수 있어야 합니다.