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

스프링 DB 2편 - 데이터 접근 활용 기술 대시보드

(5)
344개의 수강평 ∙  13,129명의 수강생
99,000원

월 19,800원

5개월 할부 시
지식공유자: 김영한
총 88개 수업 (13시간 59분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

초급자를 위해 준비한
[백엔드] 강의입니다.

백엔드 개발에 필요한 DB 데이터 접근 기술을 활용하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다.

✍️
이런 걸
배워요!
스프링을 통해 DB를 사용하는 내부 원리
스프링을 통해 DB를 사용하는 다양한 방법
스프링 DB 접근 기술

백엔드 개발자라면 반드시 알아야하는
스프링 데이터 접근 기술 Part.2

📣 확인해주세요!
본 강의는 자바 스프링 완전 정복 시리즈의 7번째 강의입니다. 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 로드맵을 먼저 확인해주세요.
• 로드맵 링크: https://www.inflearn.com/roadmaps/373 (클릭하면 바로가기)

김영한의 스프링 DB
데이터 접근 기술 완성하기

백엔드 웹 애플리케이션을 제대로 개발하려면 HTTP를 기반으로 한 MVC와 DB를 기반으로 한 데이터 접근 기술이라는 2가지 큰 축을 완성해야 합니다. 우리는 앞선 강의를 통해 HTTP와 스프링 MVC를 완성했으니, 이제 남은 하나의 축인 스프링 DB 데이터 접근 기술을 완성해야 합니다.

✅ 선수 지식을 확인해주세요.

지난 강의인 <스프링 DB 1편> 를 통해 스프링 DB의 원리와 구조를 이해했는지 확인해 주세요. 

1. 스프링 데이터 접근 기술 기본 원리 이해
2. 실무에서 활용되는 코드로 직접 개발


스프링 DB 1편 강의를 통해 DB 접근 기술의 핵심 원리와 구조를 이해했습니다. 이번 스프링 DB 2편에서는 1편의 기반 위에 실무에 꼭 필요한 다양한 활용 기술들을 학습합니다. 2편은 크게 3부분으로 나뉘어 있습니다.

1) 다양한 데이터 접근 기술 이해

JdbcTemplate, MyBatis, JPA, Spring Data JPA, Querydsl 같은 실무에서 주로 사용하는 다양한 데이터 접근 기술들을 실전 예제를 통해 점진적으로 발전시키면서 학습합니다. 이 과정을 통해 각각의 기술들이 왜 필요한지, 그리고 각 기술들의 장단점을 코드로 개발하면서 자연스럽게 이해할 수 있습니다.

2) 데이터 접근 기술과 테스트

데이터 접근 기술은 결국 데이터베이스에 데이터를 관리하는 목적으로 사용됩니다. 따라서 데이터 접근 기술이 실제 데이터베이스에 데이터를 잘 저장하고 조회할 수 있는지 확인해야 합니다. 강의에서는 데이터베이스를 연동하는 상황에서 테스트를 어떻게 하는 것이 좋은지 단계적으로 설명합니다.

3) 스프링 트랜잭션의 깊은 이해

스프링 DB 1편에서는 스프링이 제공하는 트랜잭션 기능이 왜 필요하고, 어떻게 동작하는지 내부 원리를 알아보았습니다. 이번 시간에는 스프링 트랜잭션을 매우 깊이 있게 학습하고, 실무 활용 방안을 알아봅니다.

  • 트랜잭션 AOP 사용 시 실무 주의사항
  • 스프링 트랜잭션의 다양한 옵션
  • 예외 처리와 스프링 트랜잭션이 커밋되고 롤백되는 내부 원리
  • 트랜잭션 전파 옵션과 내부 동작 방식

강의 목표

  • 목표: 실무 백엔드 애플리케이션을 개발할 때 필요한 방대한 DB 데이터 접근 기술을 완성하는 것이 이 강의의 목표입니다.
  • 기초부터 실무까지: 실무 개발을 위한 내용이 많지만, 웹 애플리케이션 개발 경험이 없는 개발자도 적응할 수 있게 단계적으로 구성하였습니다. 참고로 스프링 DB 1편을 먼저 듣고 스프링 DB 2편을 학습해야 합니다.
  • 실무 예제 중심: 실무에서 스프링으로 백엔드 애플리케이션을 개발할 때 필요한 데이터 접근 기술을 예제를 통해 자연스럽게 학습하며, 실무에서의 Best Practice를 전수해 드립니다.
  • 간결함: 실무에서 사용하지 않는 오래된 기능은 과감하게 제외했습니다. 최신 실무에 주로 사용하는 내용을 위주로 설명합니다.

강의 내용

데이터 접근 기술 - JdbcTemplate

SQL을 직접 사용할 때 스프링이 제공하는 JdbcTemplate은 좋은 선택입니다. 이 기술은 JDBC를 매우 편리하게 사용할 수 있게 도와줍니다. 그리고 JDBC를 직접 사용할 때 발생하는 대부분의 반복 작업을 대신 처리해 줍니다.
* 개발자는 SQL을 작성하고, 전달할 파라미터를 정의하고, 응답 값을 매핑하기만 하면 됩니다.
* 실제 동작하는 웹 애플리케이션에 JdbcTemplate을 적용하면서 해당 기술의 장단점을 이해합니다.

데이터 접근 기술 - MyBatis

MyBatis는 앞서 설명한 JdbcTemplate보다 더 많은 기능을 제공합니다. JdbcTemplate과 비교해서 MyBatis의 가장 매력적인 점은 SQL을 XML에 편리하게 작성할 수 있고 또 동적 쿼리를 매우 편리하게 작성할 수 있다는 점입니다. 강의에서는 실제 동작하는 웹 애플리케이션에 MyBatis를 직접 코드로 적용하면서 해당 기술의 장단점을 이해할 수 있습니다.

데이터 접근 기술 - JPA

스프링과 JPA는 자바 엔터프라이즈(기업) 시장의 주력 기술입니다. 스프링이 DI 컨테이너를 포함한 애플리케이션 전반의 다양한 기능을 제공한다면, JPA는 ORM 데이터 접근 기술을 제공합니다. JPA는 스프링 만큼이나 방대하고, 학습해야할 분량도 많지만, 한번 배워두면 데이터 접근 기술에서 매우 큰 생산성을 향상을 얻을 수 있습니다. 여기서는 해당 기술들의 기본 기능과, 해당 기술을 왜 사용해야 하는지 각각의 장단점과 전체 큰 그림을 알아봅니다.

데이터 접근 기술 - 스프링 데이터 JPA

스프링 데이터 JPA는 JPA를 더욱 편리하게 사용하도록 도와주는 기술입니다. 쉽게 이야기해서 기본적인 CRUD 기능들을 모두 제공하기 때문에 개발자가 작성해야 하는 개발 코드를 혁신적으로 줄일 수 있습니다. 강의에서는 실제 동작하는 웹 애플리케이션에 스프링 데이터 JPA를 직접 코드로 적용하면서 해당 기술의 장단점을 이해할 수 있습니다.

데이터 접근 기술 - Querydsl

JPA는 복잡한 쿼리나, 동적 쿼리를 처리하기 어렵습니다. Querydsl을 사용하면 이런 문제를 매우 편리하게 해결할 수 있습니다. 실무에서 JPA를 사용한다면 꼭 사용해야 하는 추천 기술입니다. 강의에서는 실제 동작하는 웹 애플리케이션에 Querydsl를 직접 코드로 적용하면서 해당 기술의 장단점을 이해할 수 있습니다.

데이터 접근 기술 - 테스트

데이터 접근 기술은 결국 데이터베이스에 데이터를 관리하는 목적으로 사용됩니다. 따라서 데이터 접근 기술이 실제 데이터베이스에 데이터를 잘 저장하고 조회할 수 있는지 확인해야 합니다. 강의에서는 데이터베이스를 연동하는 상황에서 테스트를 어떻게 하는 것이 좋은지 단계적으로 설명합니다. 예를 들어서 데이터베이스에 연동하는 테스트를 어떻게 구성하는지 설명하고, @Transactional, 임베디드 모드 DB가 어떻게 동작하는지 코드로 알아봅니다.

스프링 트랜잭션 이해

DB 1편에서는 스프링이 제공하는 트랜잭션 기능이 왜 필요하고, 어떻게 동작하는지 내부 원리를 알아보았습니다. 이번 시간에는 스프링 트랜잭션 AOP 사용 시 실무 주의사항, 스프링 트랜잭션의 다양한 옵션, 예외가 발생했을 때 스프링 트랜잭션이 커밋되고 롤백되는 내부 원리와 같이 스프링 트랜잭션이 제공하는 다양한 기능들을 깊이 있게 자세히 알아봅니다.

스프링 트랜잭션 전파

스프링의 트랜잭션 전파를 매우 깊이 있게 다룹니다. 트랜잭션 전파가 왜 필요한지 이해하고, 다양한 트랜잭션 전파 옵션, 전파 옵션에 따른 예외 처리, 실무에서 트랜잭션 전파 옵션을 사용할 때의 주의점을 다룹니다.


지식공유자
김영한님의 한마디

백엔드 개발자는 MVC와 DB 접근 기술이라는 2가지 큰 축을 꼭 완성해야 합니다. 여러분이 두 가지 축을 완성하고, 단단한 백엔드 개발자로 성장할 수 있도록 도와드리겠습니다. 감사합니다.


강의 순서


연관 로드맵

스프링 완전 정복 시리즈 
스프링 똑똑하게 시작하기, 핵심 원리부터 실전 활용
스프링 부트 + JPA 실무 완전 정복 
최신 실무 기술로 웹 앱을 만들며 학습  실전 심화 단계 

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
스프링을 통해 DB에 접근하고, 데이터를 관리하고 싶은 개발자
개발자 취업 준비생
스프링 DB 접근 기술을 깊이있게 이해하고 싶은 현업 개발자
스프링으로 웹 애플리케이션을 만들고 싶은 개발자
📚
선수 지식,
필요할까요?
자바 언어
스프링 기본 지식
DB 기본 지식

안녕하세요
김영한 입니다.
김영한의 썸네일
커리큘럼 총 88 개 ˙ 13시간 59분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 강의 소개
강의 소개 미리보기 02:52
수업 자료
강의 소스 코드
PPT 자료
섹션 2. 데이터 접근 기술 - 스프링 JdbcTemplate
JdbcTemplate 소개와 설정 미리보기 03:50
JdbcTemplate 적용1 - 기본 19:20
JdbcTemplate 적용2 - 동적 쿼리 문제 04:47
JdbcTemplate 적용3 - 구성과 실행 07:47
JdbcTemplate - 이름 지정 파라미터 1 13:09
JdbcTemplate - 이름 지정 파라미터 2 11:02
JdbcTemplate - 이름 지정 파라미터 3 02:44
JdbcTemplate - SimpleJdbcInsert 06:56
JdbcTemplate 기능 정리 03:43
정리 03:52
섹션 3. 데이터 접근 기술 - 테스트
테스트 - 데이터베이스 연동 10:24
테스트 - 데이터베이스 분리 07:29
테스트 - 데이터 롤백 09:29
테스트 - @Transactional 11:50
테스트 - 임베디드 모드 DB 10:59
테스트 - 스프링 부트와 임베디드 모드 05:36
정리 03:42
섹션 4. 데이터 접근 기술 - MyBatis
MyBatis 소개 05:22
MyBatis 설정 08:52
MyBatis 적용1 - 기본 20:37
MyBatis 적용2 - 설정과 실행 06:38
MyBatis 적용3 - 분석 07:19
MyBatis 기능 정리1 - 동적 쿼리 04:08
MyBatis 기능 정리2 - 기타 기능 06:59
정리 04:12
섹션 5. 데이터 접근 기술 - JPA
JPA 시작 04:36
ORM 개념1 - SQL 중심적인 개발의 문제점 14:58
ORM 개념2 - JPA 소개 16:08
JPA 설정 03:34
JPA 적용1 - 개발 20:08
JPA 적용2 - 리포지토리 분석 06:02
JPA 적용3 - 예외 변환 10:07
정리 04:58
섹션 6. 데이터 접근 기술 - 스프링 데이터 JPA
스프링 데이터 JPA 소개1 - 등장 이유 12:47
스프링 데이터 JPA 소개2 - 기능 10:47
스프링 데이터 JPA 주요 기능 09:26
스프링 데이터 JPA 적용1 09:23
스프링 데이터 JPA 적용2 25:00
정리 03:23
섹션 7. 데이터 접근 기술 - Querydsl
Querydsl 소개1 - 기존 방식의 문제점 09:27
Querydsl 소개2 - 해결 07:58
Querydsl 설정 10:14
Querydsl 적용 15:55
정리 02:49
섹션 8. 데이터 접근 기술 - 활용 방안
스프링 데이터 JPA 예제와 트레이드 오프 16:47
실용적인 구조 18:27
다양한 데이터 접근 기술 조합 07:06
정리 02:26
섹션 9. 스프링 트랜잭션 이해
스프링 트랜잭션 소개 미리보기 09:45
프로젝트 생성 02:33
트랜잭션 적용 확인 13:54
트랜잭션 적용 위치 13:46
트랜잭션 AOP 주의 사항 - 프록시 내부 호출1 18:24
트랜잭션 AOP 주의 사항 - 프록시 내부 호출2 08:57
트랜잭션 AOP 주의 사항 - 초기화 시점 06:51
트랜잭션 옵션 소개 12:18
예외와 트랜잭션 커밋, 롤백 - 기본 11:54
예외와 트랜잭션 커밋, 롤백 - 활용 30:19
정리 04:50
섹션 10. 스프링 트랜잭션 전파1 - 기본
스프링 트랜잭션 전파1 - 커밋, 롤백 06:44
스프링 트랜잭션 전파2 - 트랜잭션 두 번 사용 10:45
스프링 트랜잭션 전파3 - 전파 기본 09:06
스프링 트랜잭션 전파4 - 전파 예제 21:34
스프링 트랜잭션 전파5 - 외부 롤백 07:06
스프링 트랜잭션 전파6 - 내부 롤백 15:02
스프링 트랜잭션 전파7 - REQUIRES_NEW 17:47
스프링 트랜잭션 전파8 - 다양한 전파 옵션 05:27
정리 05:55
섹션 11. 스프링 트랜잭션 전파2 - 활용
트랜잭션 전파 활용1 - 예제 프로젝트 시작 17:57
트랜잭션 전파 활용2 - 커밋, 롤백 09:16
트랜잭션 전파 활용3 - 단일 트랜잭션 09:42
트랜잭션 전파 활용4 - 전파 커밋 04:50
트랜잭션 전파 활용5 - 전파 롤백 07:19
트랜잭션 전파 활용6 - 복구 REQUIRED 10:06
트랜잭션 전파 활용7 - 복구 REQUIRES_NEW 10:08
정리 07:01
섹션 12. 다음으로
다음으로 24:47
강의 게시일 : 2022년 05월 30일 (마지막 업데이트일 : 2024년 03월 28일)
수강평 총 344개
수강생분들이 직접 작성하신 수강평입니다.
5
344개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
gusdn85554 thumbnail
5
영한님 안녕하세요 ! 작년 7월부터 공부를 시작해서 1년 4개월이 지나서 드디어 영한님 강의(부트 강의 제외)를 다 들었습니다,, 매 강의를 들으면서 DB 2편까지 듣고 제대로 수강평을 작성해보고자 마음을 먹었는데 드디어 쓸 수 있게 되었어요,, 비전공자로 개발 공부가 막막할 때, 영한님 강의를 들으며 지금까지 성장할 수 있었던 것 같습니다. 강의를 통해서 프로젝트도 여러 개 해보면서, 부족한 cs 공부는 스터디를 통해서 공부해왔습니다. Spring, Jpa 모든 강의를 다 들은 영한님에 대한 강의 특징을 말씀드리겠습니다. 영한님 강의 특징을 말씀드리자면 5단계를 배우기 위해서 1단계부터 차근차근 가르쳐주십니다. 1~3단계를 모르는 체로 5단계를 알고 계신다면, 강의를 통해 1~3단계를 배우면 왜 5단계가 이렇게 나왔는지 알 수 있습니다. 저는 항상 모르고 들었어서 점점 진화하는 코드를 보면서 항상 신기해했습니다,, 기술이 이렇게 발전됐구나 하면서요.(새로운 기술이 있을 수 있는 이유는 과거의 기술들이 있기 때문이니까) 그리고 영한님 강의는 여러 번 봐야 더욱 효과가 좋다고 생각해요. 예를 들어 spring 기본보다가 spring mvc강의를 듣고 다시 spring 기본을 들으면 처음 들었던 거랑 다르게 시야가 더 넓어지실거에요. 그래서 저는 JPA 기본을 2~3번 들었던 것 같아요(어렵기도해서) 영한님 강의를 고민하시는 분들은 이 글을 읽고 한번 생각해보셨으면 좋겠어요. 아 그리고 마지막으로 서포터즈님들 QnA 답변을 잘해주셔서 너무 감사드립니다,,! 저는 항상 모르는게 있으면 구글링이나 QnA에서 해결했던 것 같습니다. 모두 화이팅입니다. 긴 글 읽어주셔서 감사합니다.
2022-11-17
지식공유자 김영한
gusdn85554님 단계적으로 잘 이해하고 계시군요. 그리고 말씀하신 것 처럼 복습하는 것도 정말 중요합니다. 응원합니다!
2022-11-17
웃자 thumbnail
5
솔직히 스프링 DB 1편, 2편의 내용의 내용을 모르는 분들은 사상위에 누각을 쌓고 계신겁니다. 여기는 목차 한개라도 잘 모르시는 분은 꼭 들으십시오! 두 번 들으세요
2022-08-28
지식공유자 김영한
웃자님 열심히 들어주셔서 저도 감사합니다!!
2022-08-29
최준영 thumbnail
5
많은 것을 배워갑니다 . 늘 감사합니다
2022-07-06
지식공유자 김영한
최준영님 열심히 들어주셔서 저도 보람이 있네요^^ 고맙습니다^^
2022-07-10
선한영향력주는개발자되기 thumbnail
5
안녕하세요. 교수님. 이번 강의도 완강을 했네요. 1년정도의 시간동안 퇴근 후나 주말에 강의를 들으면서 로드맵을 따라 왔는데 이제 진짜 대단원의 마지막 장만 남았네요. 항상 강의를 들으면서 해당 기술의 탄생 배경과 왜 그 기술을 사용하는지 누구나 이해할 수 있도록 쉽게 설명해주고 하나라도 더 전달 해주시려고 하셔서 너무 감사합니다. 가끔 강의를 보면서 교수님의 컴퓨터 시간을 봅니다. 어쩔때는 숫자로 나오고 어쩔때는 시계모양으로 나와서 일부러 숨기시는건가 하는 생각도 했습니다.ㅋㅋㅋ 아무튼 이른 저녁부터 새벽까지 다양한 시간대에 강의를 찍으시는걸 보면서 교수님도 이렇게 열심히 좋은 강의를 찍어주시는데 나는 저렇게 열심히 하는가? 라는 반성도 많이 하게 되었습니다. 좋은 강의를 제공해주시고 또 선배 개발자로서 아낌없는 조언도 해주셔서 기술적인 학습뿐만 아니라 인생의 동기부여를 얻을 수 있는 1년 여간의 시간이었습니다. 앞으로도 이 시스템을 잘 유지하면서 즐겁게 개발할 수 있을거 같습니다. 감사합니다.
2022-10-18
지식공유자 김영한
선한영향력 개발자님 항상 열심히 들어주시고 또 수강평도 자주 남겨주셔서 감사합니다. 1년을 함께했다고 하니 저도 뭔가 같이한 느낌이 들어서 더 보람이 있네요. 시간은 가끔 학생분들이 이야기를 주셔서, 강의에 더 집중할 수 있게 최근에는 점점 가리고 있답니다^^
2022-10-18
hoon thumbnail
5
짱이에요 :) 최고의 강의입니다. 강의 들으면서 많이 배워 실무에서 잘 사용하고 있어요. 실전강의도 들을 예정이고, 스프링 부트 강의도 기대하겠습니다.
2022-08-28
지식공유자 김영한
hoon님 열심히 들어주셔서 감사합니다. 끝까지 화이팅.
2022-08-29
연관 로드맵
이 강의가 포함된 잘 짜여진 로드맵을 따라 학습해 보세요!