모던 자바 프로그래밍에서 널리 쓰이는 프레임워크와 라이브러리를 활용하여 API 서버를 개발합니다.
- 목표
- Gradle로 Multi Module 구조의 프로젝트를 구성합니다.
- Jooq, JPA, Lombok 등의 주요 의존성을 설정하고 사용합니다.
테스트 작성은 안정성 있는 코드를 작성하는 데 중요한 역할을 합니다.
- 목표
- TDD의 개념을 이해하고, JUnit5와 Mockito를 활용하여 테스트 코드를 작성합니다.
- 단위 테스트의 중요성을 이해하고, 테스트 코드를 작성합니다.
DDD는 모던 자바 프로그래밍에서 도메인 모델을 설계하는 데 중요한 개념입니다. 어플리케이션이 비대해지는 것을 방지하고, 도메인 모델을 설계하는 데 도움을 줍니다.
- 목표
- DDD의 개념을 이해하고, 도메인 모델을 설계합니다.
- Aggregate, Entity, Value Object 등의 개념을 이해하고, 구현합니다.
Clean Architecture와 Hexagonal Architecture는 DDD를 기반으로 어플리케이션을 설계하는 전술적 패턴입니다. 계층을 나누어 어플리케이션을 설계하고, 의존성을 줄여 유지보수성을 높입니다.
- 목표
- Clean Architecture와 Hexagonal Architecture의 개념을 이해하고, 어플리케이션을 설계합니다.
- Controller, Service, Repository 등의 계층을 나누어 어플리케이션을 설계합니다.
개발의 주요 관심사 중 하나는 코드의 가독성과 유지보수성입니다. 위의 Clean Code는 이러한 관심사를 해결하기 위한 방법론입니다.
- 목표
- Clean Code의 개념을 이해하고, 코드를 작성합니다.
- 코드 리뷰를 통해 다른 사람의 코드를 리뷰하고, 리뷰를 받습니다.
서로에게 모두 적절한 시간을 확보하기 어렵기 때문에 실시간으로 진행하는 것은 어려워서 아래와 같은 방법으로 스터디를 진행하겠습니다.
커리큘럼에 따라 매주 한 가지의 미션을 드립니다. 미션 수행자는 주간 미션을 수행합니다.
주간 미션을 수행할 때, 하루에 10분이라도 개발하여, 빌드와 어플리케이션이 동작하는 상태로 커밋을 합니다. 미션 제출자는 해당 커밋을 리뷰합니다.
주간 미션 마지막 날, 가능하면 대면하여 전체적인 리뷰와 페어 프로그래밍을 진행합니다.