Thumbnail
BEST 개발 · 프로그래밍 백엔드

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

(4.8)
20개의 수강평 ∙ 450명의 수강생
77,000원

월 15,400원

5개월 할부 시
지식공유자: 최태현
총 46개 수업 (6시간)
수강기한: 무제한
수료증: 발급
난이도:  입문-초급-중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유
초급자를 위해 준비한
[백엔드, 프로그래밍 언어] 강의입니다.

Java + Spring Boot로 만들어진 웹 애플리케이션을 Kotlin + Spring Boot로 리팩토링 하고 추가 요구사항을 구현합니다. 이 과정에서 Junit5, SQL, JPA, Querydsl 을 사용할 뿐 아니라, 설계 및 구현 관점에서 다양한 방법의 장단점을 다루게 됩니다.

✍️
이런 걸
배워요!
Kotlin + Spring Boot + JPA를 함께 사용하는 방법
Kotlin을 이용한 테스트 기초(Junit5)와 Querydsl 사용법
요구사항을 구현하는 다양한 방법과 Trade-Off 지점에 대한 이해

떠오르는 대세, 코틀린 백엔드! 👩‍💻 
자바 + 스프링부트 리팩토링으로 배워보세요.

지금, 왜 코틀린(Kotlin)일까요?

쉽고 간결한 
코드 

확연히 좋아진 
Null 안정성 

기존 자바와의 
완벽 호환 

이미 네카라쿠배는 코틀린 도입 중! 
자바를 대체할 매력적인 서버 개발 언어로 코틀린이 떠오르고 있습니다.

이 강의에서는 🔥

Java + Spring Boot로 미리 만들어진 도서 관리 애플리케이션을 Kotlin + Spring Boot로 완전히 리팩토링합니다. 모든 리팩토링이 끝나면 다음 세 가지 비즈니스 요구사항과 한 가지 기술적 요구사항을 코틀린 서버 위에 추가로 구현해 봅니다.

이러한 과정을 통해 설계 및 구현 관점에 필요한 다양한 고민을 해볼 수 있고, 여러 방법의 Trade-Off 및 장단점과 추가적인 기술에 대해 배울 수 있습니다. 앞서나가고 싶은 백엔드 개발자라면 함께 도전해봅시다!

강의에서 도전하는 요구사항 4-Step ✅

첫 번째 추가 요구사항

책 등록 시 분야를 구분, 선택할 수 있도록 합니다.

두 번째 추가 요구사항

유저 대출 현황 및 기록 조회를 보여줍니다.

세 번째 추가 요구사항

현재 대여 중인 책, 등록된 책에 대한 통계를 보여줍니다.

네 번째 추가 요구사항

JPQL을 대체하여 QueryDSL을 적용해 봅니다.


이런 분들께 
추천합니다 👩‍💻

  • Java + Spring Boot + JPA로 매우 간단한 CRUD API를 한 번 정도 만들어보신 분!
  • Kotlin 기초 문법을 알고 계신 분!

서버 개발자가 갖춰야 할 지식과 기술은 정말 다양합니다. 그러나 일반적인 강의에서는 ‘특정 주제’를 집중해서 다루고 있어 어느 부분의 역량을 다루고 있는지, 추가로 습득해야 하는 역량은 무엇인지 파악하기가 어렵습니다. 본 강의에서는 강의를 듣기 위해 필수적인 선수 지식을 제외하고는 모두 강의 내용에 녹일 수 있도록 노력하였습니다.

향후 로드맵에 추가되는 강의에서도 이전 강의의 내용을 중복해서 담지는 않되, 이전 강의에서 다룬 적이 없는 내용은 처음부터 차근차근 설명할 수 있도록 구성할 예정입니다. 
보다 자세한 이야기는 무료로 열려 있는 “강의 소개 영상”을 확인해주세요~! 😊


커리큘럼을 
확인해보세요 📚

Section #1.
Kotlin Spring Junit5 

  • Kotlin을 사용하기 위해 필요한 설정 방법을 알아봅니다.
  • 테스트란 무엇이고, 왜 중요한지 살펴봅니다.
  • Junit5의 기초 사용법을 익히고, Junit5와 Spring Boot를 함께 사용해 테스트를 작성하는 방법을 다룹니다.
  • 도서 관리 애플리케이션 API에 대한 테스트를 작성해 봅니다.

Section #2.
Kotlin Spring JPA (1) 

  • Java Spring Boot를 Kotlin Spring Boot로 리팩토링하며 다양한 리팩토링 방법을 배웁니다.
  • Kotlin + Spring + JPA를 함께 사용하는 방법과 주의할 점을 알아봅니다.
  • Spring Application에서 Kotlin의 언어적 특성을 활용하는 방법을 다룹니다.

Section #3.
Kotlin Spring JPA (2) 

  • Type, Status 등을 서버에서 관리하는 두 가지 방법과 각각의 장단점을 살펴봅니다.
  • Text Fixture의 필요성과 구성 방법을 다룹니다.
  • Kotlin에서 Enum + JPA + Spring Boot를 활용할 수 있는 방법을 알아봅니다.

Section #4.
Kotlin Spring JPA SQL

  • 새로운 기능을 추가할 때 위치에 관한 고민과, 각각의 선택에 따른 장단점을 알아봅니다.
  • 복잡한 기능을 추가할 때 테스트 코드를 작성하는 방법을 배웁니다.
  • SQL의 inner join, left join을 이해하고, N + 1 문제를 해결하기 위해 fetch join을 사용해 봅니다.

Section #5.
Kotlin Spring SQL

  • SQL의 다양한 기능을 이해하고, 간결한 함수형 프로그래밍 기법에 익숙해져 봅니다.
  • 동일한 기능을 애플리케이션과 DB로 구현해 보고, 특징과 장단점에 대해 이해합니다.

Section #6.
Kotlin Spring QueryDSL

  • JPQL과 QueryDSL의 장단점을 알아봅니다.
  • QueryDSL을 Kotlin + Spring Boot와 함께 이해하고, 2가지 방식의 장단점을 이해합니다.
  • QueryDSL의 기본적인 사용법을 익힙니다.
  • QueryDSL을 사용해 기존 Repository를 리팩토링해봅니다.

수강생 여러분을 위해 준비한 
이 강의만의 키 포인트 🔑

Point 1

무한 복습을 위한 강의 자료 

강의 내용을 완벽하게 정리한 142페이지 분량의 핸드북과 468페이지 분량의 PPT를 드립니다.

Point 2

서버 개발에 집중하세요 

서버 개발에만 집중할 수 있도록 도서 관리 애플리케이션을 위한 웹 UI를 제공해드립니다.

Point 3

이해를 돕는 꼼꼼한 설명

강의 내용 이해를 돕기 위해 다양한 시각 자료를 준비했습니다!

Point 4

실전 서버 개발 레벨 업! 

실습형 수업에 걸맞게 함께 코드를 작성합니다. 
리팩토링은 물론 추가 요구사항 구현까지 완성해 나갑니다! 


함께 보면 좋은 강의 📺

평균 별점 5.0! 생생한 수강평을 확인해보세요 🚩

이번 강의에서도 Java + Spring Boot가 Kotlin + Spring Boot에서 어떻게 변경되고, 어떤 의미를 갖는지 꼼꼼하게 담았습니다. 여러분의 성공적인 코틀린 서버 개발 입문을 응원합니다! 💪

지식공유자가 알려주는
강의 수강 꿀팁!
🎓
이런 분들께
추천드려요!
Kotlin으로 웹 애플리케이션 개발을 해보고 싶으신 분
웹 애플리케이션 개발 과정에서 다양한 선택지와 각각의 장단점을 알아가고 싶으신 분
📚
선수 지식,
필요한가요?
Java, Kotlin 기초 문법을 알고 계셔야 합니다!
Spring Boot로 아주 간단한 CRUD API를 만들어 보셨어야 합니다!
필수적인 선수지식 외의 내용은 모두 설명드립니다!

안녕하세요
최태현 입니다.
최태현의 썸네일

안녕하세요 😊

제가 아는 내용을 이해하기 쉽고, 재미있게 설명드려 여러분들이 성장하실 때 행복함을 느끼는

공부하는 개발자 최태현입니다.

  • Youtube : https://www.youtube.com/channel/UCUQi7y46_TMbvPjSt1AbDug
  • Blog : https://lannstark.tistory.com/

 

- (현) 셀렉트스타 백엔드 개발자

- (전) 우아한형제들 백엔드 개발자

- (교육활동) Next Step 리뷰어 다수 참여, 공기관 & 스타트업 경진대회 강사 및 멘토, 스파르타 코딩클럽 멘토

커리큘럼 총 46 개 ˙ 6시간의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 소개와 준비, 수업 자료(PDF, PPT) 섹션
섹션 1. 도서관리 애플리케이션 리팩토링 준비하기
1강. 도서관리 애플리케이션 이해하기 미리보기 12:07 2강. 테스트 코드란 무엇인가, 그리고 왜 필요한가?! 미리보기 05:39
3강. 코틀린 코드 작성 준비하기 05:17
4강. 사칙연산 계산기에 대해 테스트 코드 작성하기 미리보기 14:48 5강. 사칙연산 계산기의 나눗템 테스트 작성 미리보기 06:04
6강. Junit5 사용법과 테스트 코드 리팩토링 16:19
7강. Junit5으로 Spring Boot 테스트하기 12:03
8강. 유저 관련 기능 테스트 작성하기 11:23
9깅. 책 관련 기능 테스트 작성하기 16:07
10강. 테스트 작성 끝! 다음으로! 03:02
섹션 2. Java 서버를 Kotlin 서버로 리팩토링하자!
11강. Kotlin 리팩토링 계획 세우기 02:18
12강. 도메인 계층을 Kotlin으로 변경하기 - Book.java 10:08
13강. 도메인 계층을 Kotlin으로 변경하기 - UserLoanHistory.java, User.java 13:58
14강. Kotlin과 JPA를 함께 사용할 때 이야기거리 3가지 07:45
15강. 리포지토리를 Kotlin으로 변경하기 05:15
16강. 서비스 계층을 Kotlin으로 변경하기 - UserService.java 09:05
17강. BookService.java를 Kotlin으로 변경하고 Optional 제거하기 12:36
18강. DTO를 Kotlin으로 변경하기 06:11
19강. Controller 계층을 Kotlin으로 변경하기 12:52
20강. 리팩토링 끝! 다음으로! 미리보기 03:15
섹션 3. 첫 번째 요구사항 추가하기 - 책의 분야
21강. 책의 분야 추가하기 09:43
22강. Enum Class를 활용해 책의 분야 리팩토링 하기 12:41
23강. Boolean에도 Enum 활용하기 - 책 반납 로직 수정 11:06
24강. 첫 번째 요구사항 클리어! 01:00
섹션 4. 두 번째 요구사항 추가하기 - 도서 대출 현황
25강. 유저 대출 현황 보여주기 - 프로덕션 코드 개발 11:57
26강. 유저 대출 현황 보여주기 - 테스트 코드 개발 11:18
27강. N+1 문제와 N+1 문제가 발생하는 이유 06:44
28강. SQL join에 대해 알아보자 05:44
29강. N+1 문제를 해결하는 방법! fetch join 07:04
30강. 조금 더 깔끔한 코드로 변경하기 05:05
31강. 두 번째 요구사항 클리어! 01:39
섹션 5. 세 번째 요구사항 추가하기 - 책 통계
32강. 책 통계 보여주기 - 프로덕션 코드 개발 12:56
33강. 책 통계 보여주기 - 테스트 코드 개발과 리팩토링 10:16
34강. 다양한 SQL을 알아보자! 04:14
35강. 애플리케이션 대신 DB로 기능 구현하기 11:14
36강. 세 번째 요구사항 클리어! 01:43
섹션 6. 네 번째 요구사항 추가하기 - Querydsl
37강. Querydsl 도입하기 07:27
38강. Querydsl 사용하기 - 첫 번째 방법 10:38
39강. Querydsl 사용하기 - 두 번째 방법 07:12
40강. UserLoanHistoryRepository를 Querydsl으로 리팩토링 하기 11:35
41강. 마지막 요구사항 클리어! 01:23
섹션 7. 마지막 섹션
강의 마무리 01:46
강의 게시일 : 2022년 08월 08일 (마지막 업데이트일 : 2022년 08월 15일)
수강평 총 20개
수강생분들이 직접 작성하신 수강평입니다. 수강평을 작성 시 300잎이 적립됩니다.
4.8
20개의 수강평
5점
4점
3점
2점
1점
VIEW 좋아요 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
Heekng Ko thumbnail
1/3 정도 강의 듣고 수강평 빨리 남기고싶어서 남깁니다! 이전 java to kotlin 강의를 듣고 스프링 프로젝트를 시작하고 싶은 찰나에 딱! 강의가 올라와서 수강하고 있습니다. 예상한대로 설명도 너무 잘해주시고, 자바 스프링 프로젝트를 코틀린 스프링으로 변경해주는 과정이 더 쉽고 직관적으로 이해되는 것 같습니다. 아쉬운점은 강의가 끝날때 하시던 멘트가 사라진게 아쉬울 뿐입니다 ㅎㅎ 좋은강의 감사합니다.
2022-08-09
지식공유자최태현
아이고 안녕하세요~ Heekng Ko님 ㅎㅎㅎㅎ 첫 수강평!!! 너무나도 감사드립니다~~ 😊 매 강의가 끝날 때 하던 멘트는 이번 강의가 1분 내외도 많아 섹션 마지막 강의에서만 하였습니다 ㅎㅎㅎㅎ 나름 트레이드 마크였는데 저도 아쉽더라고요~ 벌써 1/3이나 들으신 Heekng Ko님을 존중하고 존경하며 끝까지 완주하시기 바랍니다!!! 🔥 감사합니다~!!
2022-08-09
겜러잡 thumbnail
기초때도 그렇고 설명이 너무 좋습니다. 자바->코틀린 넘어갈때 보면 정말 좋을 것 같아요
2022-09-06
지식공유자최태현
안녕하세요! 겜러잡님~~ ㅎㅎㅎ 아이고~~ 좋은 후기 너무 감사드립니다!!! 앞으로도 좋은 설명, 좋은 컨텐츠 가득한 강의 만들어가도록 하겠습니다! 좋은 하루 되세요~!! 😊
2022-09-07
j thumbnail
절반정도 듣고 수강평남깁니다. 곧 입사하게 될 회사에서 코틀린을 다루게 되었고 jojuldu님의 추천으로 우연하게 접하게 되었는데 너무 많이 배워가는 것 같습니다. 아마 개인프로젝트를 진행하면서 테스트코드, Enum, fetch join, QueryDSL을 다뤄보신 분들도 많겠지만 그 속에서도 강사님의 코딩 스타일 등 배울점들이 많으니 추천드립니다. 그리고 코틀린의 확장함수 같은 이론을 이런식으로 적용하는구나를 배울 수 있습니다. 또한 강사님이 답변도 너무 친절하게 달아주십니다. 자바 개발자를 위한 코틀린 입문은 아직 듣지 않았는데 추후에 이 강의도 꼭 들어보고 싶네요. 양질의 강의 감사드립니다~
2022-08-15
지식공유자최태현
안녕하세요~ j님!! 아이고~ 좋은 후기 남겨주셔서 너무 감사드립니다!!! ☺️ 저도 j님께서 날카롭고 흥미로운 질문 많이 남겨주셔서 좋았습니다!! 계속해서 좋은 컨텐츠 만들 수 있도록 노력하겠습니다! 감사합니다!!! 🙏
2022-08-15
opensesame thumbnail
강의 내용이 너무 좋았습니다! 테스트와 좋은 코드와 관련해서 생각해 볼만한 것들을 이야기해주셔서 좋았습니다. 좋은 강의 감사합니다!!!
2022-08-28
지식공유자최태현
안녕하세요! opensesame님~!!! ㅎㅎㅎ 아이고~~ 감사드립니다 ㅎㅎㅎㅎ 저도 opensesame님께서 날카로운 질문 해준 덕분에 재미있는 말씀 나눈 것 같아요!!! 앞으로도 생각할 거리를 던져주는 좋은 컨텐츠들 만들어보겠습니다!! 오늘도 좋은 하루 되세요!! 감사합니다! 😊
2022-08-29
조용한 요한 thumbnail
너무 좋습니다! 제가 항상 의문을 가졌던 부분(constructor 명시적으로 작성하기)도 말씀해주셔서 너무 시원했어요!ㅋㅋㅋㅋ 좋은 강의 만들어주셔서 감사합니당 <3 !!!!!
2022-08-29
지식공유자최태현
안녕하세요~!!! 겸손한 요한님 ㅎㅎㅎㅎ 아이고~ 좋은 후기 감사드립니다 ㅎㅎㅎ 앞으로도 좋은 컨텐츠 열심히 만들어볼게요!! 오늘도 좋은 하루 되세요!!! 🙏
2022-08-30
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의를
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스