# 📌 2주차 실전! 코틀린과 스프링부트로 도서관리 애플리케이션 개발하기 > ### 섹션 0 소개와 준비, 수업 자료(PDF, PPT) 섹션 - [ ] 강의 소개 영상 - [ ] 강의 준비 영상 > ### 섹션 1 도서관리 애플리케이션 리팩토링 준비하기 - [ ] 1강. 도서관리 애플리케이션 이해하기 - [ ] 2강. 테스트 코드란 무엇인가, 그리고 왜 필요한가?! - [ ] 3강. 코틀린 코드 작성 준비하기 - [ ] 4강. 사칙연산 계산기에 대해 테스트 코드 작성하기 - [ ] 5강. 사칙연산 계산기의 나눗템 테스트 작성 - [ ] 6강. Junit5 사용법과 테스트 코드 리팩토링 - [ ] 7강. Junit5으로 Spring Boot 테스트하기 - [ ] 8강. 유저 관련 기능 테스트 작성하기 - [ ] 9강. 책 관련 기능 테스트 작성하기 - [ ] 10강. 테스트 작성 끝! 다음으로! > ### 섹션 2 Java 서버를 Kotlin 서버로 리팩토링하자! - [ ] 11강. Kotlin 리팩토링 계획 세우기 - [ ] 12강. 도메인 계층을 Kotlin으로 변경하기 - Book.java - [ ] 13강. 도메인 계층을 Kotlin으로 변경하기 - UserLoanHistory.java, User.java - [ ] 14강. Kotlin과 JPA를 함께 사용할 때 이야기거리 3가지 - [ ] 15강. 리포지토리를 Kotlin으로 변경하기 - [ ] 16강. 서비스 계층을 Kotlin으로 변경하기 - UserService.java - [ ] 17강. BookService.java를 Kotlin으로 변경하고 Optional 제거하기 - [ ] 18강. DTO를 Kotlin으로 변경하기 - [ ] 19강. Controller 계층을 Kotlin으로 변경하기 - [ ] 20강. 리팩토링 끝! 다음으로! > ### 섹션 3 첫 번째 요구사항 추가하기 - 책의 분야 - [ ] 21강. 책의 분야 추가하기 - [ ] 22강. Enum Class를 활용해 책의 분야 리팩토링 하기 - [ ] 23강. Boolean에도 Enum 활용하기 - 책 반납 로직 수정 - [ ] 24강. 첫 번째 요구사항 클리어! > ### 섹션 4 두 번째 요구사항 추가하기 - 도서 대출 현황 - [ ] 25강. 유저 대출 현황 보여주기 - 프로덕션 코드 개발 - [ ] 26강. 유저 대출 현황 보여주기 - 테스트 코드 개발 - [ ] 27강. N+1 문제와 N+1 문제가 발생하는 이유 - [ ] 28강. SQL join에 대해 알아보자 - [ ] 29강. N+1 문제를 해결하는 방법! fetch join - [ ] 30강. 조금 더 깔끔한 코드로 변경하기 - [ ] 31강. 두 번째 요구사항 클리어! > ### 섹션 5 세 번째 요구사항 추가하기 - 책 통계 - [ ] 32강. 책 통계 보여주기 - 프로덕션 코드 개발 - [ ] 33강. 책 통계 보여주기 - 테스트 코드 개발과 리팩토링 - [ ] 34강. 다양한 SQL을 알아보자! - [ ] 35강. 애플리케이션 대신 DB로 기능 구현하기 - [ ] 36강. 세 번째 요구사항 클리어! > ### 섹션 6 네 번째 요구사항 추가하기 - Querydsl - [ ] 37강. Querydsl 도입하기 - [ ] 38강. Querydsl 사용하기 - 첫 번째 방법 - [ ] 39강. Querydsl 사용하기 - 두 번째 방법 - [ ] 40강. UserLoanHistoryRepository를 Querydsl으로 리팩토링 하기 - [ ] 41강. 마지막 요구사항 클리어! > ### 섹션 7 마지막 섹션 - [ ] 강의 마무리 - [ ] 추가 - 테스트와 영속성 컨텍스트 - [ ] 추가 - 코프링과 플러그인
📌 2주차 실전! 코틀린과 스프링부트로 도서관리 애플리케이션 개발하기