-
각 요구 사항에 맞추어 콘솔 창 기반의 간단한 프로그램을 구현한다
- 요구 사항에는 실행 결과를 포함한 기능 요구 사항, 프로그래밍 요구 사항이 있다.
- 프로그래밍 요구 사항에는 책 'The ThroughtWorks Anthology'에서 제안한 객체 지향 생활 체조 원칙을 기반으로 한다.
-
프로그램을 일차적으로 구현 후, 공통 피드백을 통해 리팩토링을 한다.
- 공통 피드백을 적용한 내용이나 생각한 내용에 대해서는 Wiki 항목에 정리했다.
-
기본 학습 목표
- GitHub을 활용해 미션 기반으로 학습하는 경험을 한다.
- 컨벤션을 지키고, 읽기 좋은 코드 구현에 대한 필요성을 느끼고, 구현하는 경험을 한다.
- 테스트 기반으로 리팩터링을 통해 점진적으로 클린코드를 구현하는 경험을 한다.
-
추가 학습 목표
- 프로그래밍 자체가 얼마나 재미있는 활동인지 경험하고
- 효과적으로 프로그래밍을 학습하는 방법을 경험하고
- 프로그래머로 어떻게 성장하고, 어떻게 살아갈 것인지 같이 고민하는 시간으로 만들기 위함이다.
-
- 자바 code convention을 지키면서 프로그래밍하는 경험
- JUnit 사용법을 익혀 단위 테스트하는 경험
- 학습테스트를 하면서 JUnit 사용법을 익히는 경험
- 메소드를 분리하는 리팩터링 경험
-
- TDD 기반으로 프로그래밍하는 경험
- 메소드 분리 + 클래스를 분리하는 리팩토링 경험
- 점진적으로 리팩토링하는 경험
-
- 미션을 통해 상속과 인터페이스를 하는 경험
- 상속과 인터페이스를 적용해 리팩터링하는 경험
-
블랙잭
- 자바8의 스트림, 람다를 사용해 함수형 프로그래밍하는 경험
- 다형성을 통해 객체지향 프로그래밍하는 경험