이런 걸 배울 수 있어요

  • 스프링 부트와 JPA를 활용해서 실무에서 자바 웹 애플리케이션을 개발할 수 있습니다.
  • 스프링 부트와 JPA를 활용하는 최적의 방법을 이해합니다.
  • 도메인 모델을 이해하고 설계할 수 있습니다.
  • 도메인 주도 설계를 이해합니다.

실전! 스프링 부트와 JPA 활용

스프링 부트는 복잡하고 어려운 스프링 프레임워크를 간결하고, 쉽게 사용할 수 있게 도와줍니다. 여기에 JPA가 제공하는 강력한 ORM 기술을 더하면, 높은 생산성을 유지하면서 민첩하게 웹 애플리케이션을 개발할 수 있습니다. 이런 점들 때문에 자바 진영에서는 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 개발하는 것이 세계적인 추세입니다.

강의 목표

스프링 부트와 JPA를 알고 있어도, 실무에서 이 기술들을 활용해서 웹 애플리케이션을 설계하고, 개발하는 것은 또 다른 차원의 문제입니다. 보통 웹 애플리케이션은 다음 개발 과정을 거칩니다.

  • 요구사항 분석
  • 도메인과 테이블 설계
  • 아키텍처 구성
  • 핵심 비즈니스 로직 개발
  • 웹 계층 개발
  • 테스트
  • 성능 최적화

이 강의는 게시판 같은 단순한 예제를 넘어서, 실무의 복잡한 상황을 재현할 수 있는 난이도 있는 예제를 사용합니다. 그리고 요구사항 분석부터 설계, 개발, 테스트, 성능 최적화까지 이 모든 과정을 순서대로 진행합니다. 이렇게 실무에 가까운 예제로 웹 애플리케이션을 처음부터 끝까지 함께 설계하고 개발해보면, 이 과정속에서 스프링 부트와 JPA를 활용하는 올바른 방법을 자연스럽게 익힐 수 있습니다. 그리고 실무에서 이 기술들을 어떻게 활용해야 하는지 이해하게 됩니다. 특히 실무에서 중요한 성능 최적화 방안도 단계적으로 배워서 적용할 수 있습니다.

전체 강의는 웹 애플리케이션을 설계하고 개발하는 1편과 API를 개발하고, 성능을 최적화하는 2편으로 구성되어 있습니다. 본 강의는 그 중 1편 강의 입니다.

참고: 2편 API개발과 성능 최적화는 별도의 강의로 아래 연관된 강좌에 링크를 걸어두었습니다.

1편 웹 애플리케이션 개발

#실무에 가까운 복잡한 예제 #처음부터 끝까지 코딩으로 완성

1편은 회원, 상품, 주문 도메인이 있는 간단한 웹 애플리케이션을 설계하고 개발합니다.

진행 순서는 다음과 같습니다.

  • 프로젝트 환경설정: 프로젝트를 생성하고, 스프링 부트와 JPA, 뷰 템플릿인 타임리프, 롬복, 그리고 데이터베이스가 정상 동작하도록 프로젝트 환경을 구성합니다.
  • 도메인 분석 설계: 요구사항을 분석하고 도메인과 테이블을 설계합니다. 도메인과 테이블 설계가 끝나면 JPA를 활용해서 엔티티 클래스를 만들고, 엔티티 클래스와 테이블을 매핑합니다.
  • 도메인 개발: 회원, 상품, 주문 도메인의 핵심 비즈니스 로직을 개발하고, 테스트 케이스를 만들어서 검증합니다.
  • 웹 계층 개발: 구성한 도메인을 웹 환경에서 동작하도록 컨트롤러와 뷰 템플릿(타임리프)을 개발합니다. 실제 동작하는 화면을 확인할 수 있습니다.

2편 API 개발과 성능 최적화

최근에는 뷰 템플릿을 사용해서 직접 서버에서 HTML을 만들어서 응답하기 보다는, API에 JSON 데이터를 실어서 반환하는 경우가 많습니다. 스프링 부트와 JPA를 사용해서 API를 개발할 때 주의할 점과 올바른 설계 방향을 이해하고, 성능까지 고려해서 API를 완성하는 것이 이번 편의 목표입니다.

2편은 1편에서 만든 도메인을 기반으로 외부에서 사용할 수 있는 REST API를 개발합니다. 그리고 단계적으로 조회용 API의 성능을 최적화 합니다. 이 과정을 통해 실무에서 꼭 필요한 JPA의 조회 쿼리 튜닝과 관련된 부분을 속 시원하게 풀어드립니다.

  • API 개발 기본: 기본적은 등록, 수정, 조회용 REST API를 개발합니다.
  • API 개발 고급: 실무에서 JPA로 조회용 API를 개발할 때, 주의점과 올바른 설계 방향을 알려드립니다. JPA 지연 로딩 이슈를 해결하고, 단계별로 다양한 성능 최적화 방안을 설명합니다.
  • 실무 필수 최적화: 스프링 부트와 JPA를 사용할 때 주의해서 사용하지 않으면 실무에서 장애로 이어질 수 있는 내용들을 다룹니다.

학습 방법

이 강의는 대부분 실습으로 이루어져 있습니다. 따라서 처음부터 끝까지 본인이 직접 코딩을 하면서 강의를 따라가야 가장 많은 것을 얻을 수 있습니다.

참고로 이 강의는 스프링 부트나 JPA 자체는 자세히 설명하지 않습니다. 이 기술들을 어느정도 아는 분들이, 이 기술들을 최대한 잘 활용할 수 있게, 그래서 실무에서 웹 애플리케이션을 잘 만들 수 있도록 도와드리는 것이 목표입니다. 따라서 기본적으로 스프링이나 JPA에 대한 이해가 있는 상태에서 이 강의를 듣는 것을 권장합니다. 하지만 스프링이나 JPA를 아직 잘 몰라도, 끝까지 따라하면 자바로 웹 애플리케이션을 어떻게 개발하고 완성하는지 전체적인 감을 잡을 수 있습니다. 이후 본인이 부족하다고 생각하는 기반기술을 채워가는 식으로 학습하셔도 됩니다.

연관된 강좌

자바 ORM 표준 JPA 프로그래밍 - 기본편

JPA 기반 기술을 이해하는데 필요한 선수 강좌입니다.

실전! 스프링부트와 JPA 활용2 - API 개발과 성능 최적화

API를 개발하고, JPA 성능 최적화를 이해합니다.

실전! 스프링 데이터 JPA

기초부터 실무까지 스프링 데이터 JPA를 학습합니다.

참고 도서

책은 더 깊은 내용을 공부하고 싶은 분들을 위한 참고서로 생각하시면 됩니다. 
(책이 없어도 강의를 위한 별도의 자료가 제공됩니다.)

수강 대상

  • 실무에서 스프링 부트와 JPA를 사용하지만 해당 기술을 더 잘 활용하고 싶은 분
  • 스프링 부트나 JPA 같은 기술은 들어봤지만 어떻게 활용하는 것이 좋은 방향인지 알고 싶은 분
  • 스프링 부트와 JPA는 잘 모르지만 프로젝트 설정부터 실제 웹 애플리케이션 개발까지 예제를 따라하면서 자바 웹 애플리케이션 개발의 감을 잡고 싶은 분

선수 지식

  • JAVA 언어
  • 스프링 프레임워크
  • 관계형 데이터베이스 기초 지식
  • JPA

교육과정

모두 펼치기 35 강의 7시간 44분
섹션 0. 강좌 소개
2 강의 05 : 59
섹션 2. 도메인 분석 설계
5 강의 102 : 23
요구사항 분석
04 : 08
도메인 모델과 테이블 설계
21 : 10
엔티티 클래스 개발1
30 : 03
엔티티 클래스 개발2
19 : 29
엔티티 설계시 주의점
27 : 33
섹션 3. 애플리케이션 구현 준비
2 강의 08 : 01
구현 요구사항
04 : 02
애플리케이션 아키텍처
03 : 59
섹션 4. 회원 도메인 개발
3 강의 52 : 27
회원 리포지토리 개발
08 : 39
회원 서비스 개발
18 : 27
회원 기능 테스트
25 : 21
섹션 5. 상품 도메인 개발
3 강의 12 : 47
상품 엔티티 개발(비즈니스 로직 추가)
06 : 23
상품 리포지토리 개발
03 : 59
상품 서비스 개발
02 : 25
섹션 6. 주문 도메인 개발
5 강의 79 : 33
주문, 주문상품 엔티티 개발
16 : 24
주문 리포지토리 개발
02 : 06
주문 서비스 개발
19 : 48
주문 기능 테스트
19 : 59
주문 검색 기능 개발
21 : 16
섹션 7. 웹 계층 개발
10 강의 129 : 04
홈 화면과 레이아웃
18 : 11
회원 등록
23 : 07
회원 목록 조회
09 : 52
상품 등록
07 : 48
상품 목록
02 : 47
상품 수정
13 : 44
변경 감지와 병합(merge)
26 : 36
상품 주문
12 : 33
주문 목록 검색, 취소
13 : 31
다음으로
00 : 55

공개 일자

2019년 9월 24일 (마지막 업데이트 일자 : 2019년 9월 26일)

수강 후기

4.9
35개의 수강평
unialto 2달 전
"나도 스프링부트+JPA로 개발할 수 있다."가 되네요! 실전 위주에 마치 지방에서 올라온? 아는 형이 바로 옆에서 같이 개발하면서 가르쳐 주는것 같아서 아주 좋았습니다. "백문이 불여일타!"
김영한 프로필

김영한 2달 전
unialto님 감사합니다. 서울말 패치를 몇번 시도했는데 실패해서 롤백되었습니다. ㅋㅋ 궁금한 내용이 있으면 언제든 편하게 질문주세요^^

mandoo1027 2달 전
정말 도움이 많이 되었습니다. 내용이 알차고 이해가 잘 되도록 설명을 자세하게 잘 해주셔서 머리속에 쏙쏙 들어오네요. 또한 실무에서 사용되는 여러가지 팁들과 노하우들을 정말 아낌없이 알려주셔서 놀랬습니다. 강의가 정말 알차다는 말밖에 더이상 할말이 없네요. 진짜 많이 배우고 갑니다. 수강을 망설이시는 분들은 꼭 한번 들어보세요. 후회하지않을겁니다. "이 집 강의 정말 잘하네요 맛집 인정!!"
김영한 프로필

김영한 2달 전
mandoo1027님 맛집으로 인정해주셔서 고맙습니다. ㅎㅎㅎ 너무 좋게 평가해주셔서, 다음 강의도 더욱 열심히 준비해야겠습니다! 궁금한 내용이 있으면 언제든 편하게 질문주세요^^

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스