1. Command-line Application 코드 개선
1. main에 모든 기능을 모으지 않도록 각 객체별로 설계해보기 2. console 입력을 상세히 안내하기(+각 명령어별로 클래스로 분리) 3. enum을 사용하여 명령어, VoucherType을 분리해보기
2. 소프트웨어 테스팅 개념 학습
- 소프트웨어의 결함(error)을 찾기 위해서 테스트를 진행
- 소프트웨어의 결함의 종류
- 코드 오류
- 요구 사항 격차(설계 시 고려하지 못한 요구 사항으로 인한 오류)
- 확장성, 유지 관리 가능 여부, 성능 등의 이유가 있음
- 단위 테스트
- 기본단위인 모듈을 테스트
- 코드에서 각 클래스나 메소드 단위로 테스트를 진행
- 다른 클래스와의 연결은 테스트하지 않고 현재 클래스 내의 기능이 정상 작동하는지 확인
- 승인 테스트(acceptance test)
- 애플리케이션이 설계대로 동작하는지 확인하는 테스트
- 단위 테스트를 통과한 빌드 결과에 대해 수행
- 통합 테스트(integration test)
- 애플리케이션끼리 연결된 서비스에서 올바르게 작동하는지 확인하는 테스트를 진행
- 의존 관계에 연결된 클래스들이 정상 작동하는지 확인
- 통합 테스트는 단위 테스트와 승인 테스트를 통과한 빌드 결과에 대해 수행
1. Command-line Application 기능 구현(3시간)
- 과제 구현
- 고객 블랙리스트 구현
- YAML property 사용하기
- MemoryVoucherRepository 방식만 개발 profile에서 동작하게 하기
- 로그 기록하기 + 로그백 설정으로 에러를 기록하기
- Spring boot 애플리케이션으로 변경
- 실행가능한 jar 파일 생성
2. HTTP version별로 비교해보기(1~2시간)
3. JUnit 개념+실습(3시간)
내일 할일을 작성하면서 할 일이 아니라 해야되는 일을 쓰다보니 하루에 할 작업을 쓰려는 내 의도랑 다르게 해야될 모든 일을 작성하는 공간이 되는 것 같습니다. 그래서 앞으로 소요 시간을 적어서 하루에 내가 할 수 있는 공부 양을 측정해서 어떤 공부를 할 때 걸리는 시간을 스스로 판단할 역량을 길러보려 합니다.