강사 소개

- 현) 우아한형제들 - 주문시스템 개발
- SpringBoot, Gradle, JPA
- RDMS, Redis, MongoDB, ElasticSearch
- 전) 카카오 - 미디어 다음(media.daum.net) 개발
- Spring, Maven, Mybatis
- Javascript, Vue.js
- 전) 줌인터넷 - 뉴스줌(news.zum.com) 개발
- Spring, Maven, JPA
- Javascript, Backbone.js
학습 목표
스프링 웹 어플리케이션의 데이터 저장 계층에 대해 이해합니다.
JPA에 대해서 이해합니다.
스프링데이터 JPA에 대해 이해합니다.
스프링 데이터 JPA를 이용한 REST API 서버를 구축합니다.
학습 커리큘럼
학습 캘린더
1일차
JPA 소개
- ApplicationLayer 에서 Database Layer에 접근하는 방법에 대해 학습합니다.
- JDBC Template, 쿼리매퍼 (Mybatis) 소개
- ORM (JPA)
- JPA란 무엇인지 학습합니다.
- JPA의 필요성에 대해 학습합니다.
JPA 프로젝트 시작하기 (IntelliJ + Maven)
- JPA 실습을 위한 환경을 세팅합니다.
2일차
영속성 컨텍스트
- EntityManagerFactory, EntityManager 에 대해 학습합니다.
- 영속성 컨텍스트에 대해 학습합니다.
- 엔티티의 생명주기에 대해 학습합니다.
- 영속성 컨텍스트의 특징에 대해 학습합니다.
- 실습을 통해 영속성 컨텍스트에 대해 이해합니다.
3일차
엔티티 매핑
- 엔티티 매핑을 실습합니다.
- 엔티티간의 연관관계 매핑을 실습합니다. (OneToOne, OneToMany, ManyToOne)
- 고급 매핑 전략에 대해 소개합니다.
프록시와 연관관계
- 프록시에 대해 학습합니다.
- 즉시 로딩(Eager fetch), 지연 로딩(Lazy fetch)에 대해 학습합니다.
- 영속성 전이에 대해 학습합니다. (CASCADE, 고아객체)
4일차
스프링 데이터 JPA
- 스프링 데이터 JPA에 대해 소개합니다.
- Native Query (QueryDSL)
5일차
REST API 웹 어플리케이션 개발
- 엔티티 (주문 관리 vs 게시판)
- API 개발 (JUnit, Lombok, OSIV)
- API 문서화 (레스트 닥스, 스웨거)