채널톡 아이콘
BEST

스프링 DB 1편 - 데이터 접근 핵심 원리

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

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

이런 걸 배울 수 있어요

  • 스프링 DB 접근 기술

  • 스프링을 통해 DB를 사용하는 다양한 방법

  • 스프링을 통해 DB를 사용하는 내부 원리

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

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

데이터 접근 기술

현대의 애플리케이션은 대부분 웹 환경에서 동작하는 웹 애플리케이션입니다. 단순하게 생각하면 웹 애플리케이션은 크게 3가지 기능을 수행합니다.

우리는 앞서 스프링 MVC 강의를 통해 클라이언트의 요청을 받아서 처리하는 방법을 학습했습니다. 이번에는 그 이후 단계인 비즈니스 로직을 수행하는 서비스와 수행 결과를 데이터베이스에 보관하고 관리하는 리포지토리에 대해 깊이있게 학습합니다.

클라이언트의 요청을 받아서 처리하는 기능은 스프링 MVC를 사용합니다. 비즈니스 로직을 수행하는 기능은 순수한 자바 코드로 만들어집니다. 마지막으로 수행 결과를 데이터베이스에 보관하고 관리하는 기능은 JDBC, JdbcTemplate, MyBatis, JPA와 같은 다양한 기술들을 선택해서 사용합니다. 그리고 스프링이 제공하는 DB 데이터 접근 기술을 사용하면 이러한 기술들을 스프링과 통합해서, 매우 편리하게 사용할 수 있습니다.


데이터 접근 기술을 정복해야 하는 이유

애플리케이션에서 데이터베이스에 데이터를 보관하고 관리하기 위해서는 다양한 데이터 접근 기술을 학습해야 합니다. 이러한 데이터 접근 기술을 학습하기 어려운 대표적인 이유는 다음 3가지 때문입니다.

1. 데이터베이스 기반 지식이 약하다.

모든 데이터 접근 기술은 데이터베이스에 데이터를 보관하고 관리하기 위한 것입니다. 따라서 데이터베이스에 대한 기본 이해가 필요합니다. 이 강의를 학습하기 전에 데이터베이스와 SQL에 대한 기본 내용을 학습하시길 바랍니다.

2. 데이터 접근 기술이 너무 다양하다.

JDBC부터 시작해서 SQL 매퍼라고 불리는 JdbcTemplate이나 MyBatis 같은 기술부터 ORM 기술인 JPA, 스프링 데이터 JPA, Querydsl 같은 최신 기술까지 정말 다양한 데이터 접근 기술들이 있습니다. 너무 다양한 기술들이 존재해서, 각각의 기술들이 어떤 장단점이 있고, 어떤 상황에 어떤 기술들을 사용하면 좋은지 명확하게 이해하고 사용하기는 쉽지 않습니다.

3. 데이터 접근 기술의 역사가 너무 오래되었다.

JDBC부터 시작한 데이터 접근 기술은 이미 20년이 넘었습니다. 그동안 데이터 접근 기술의 발전은 물론이고, 스프링은 이러한 데이터 접근 기술들을 더욱 편리하게 사용하도록 돕기 위해 수많은 기능을 발전시키고, 개선해왔습니다. 그래서 지금은 너무 많은 것이 자동화되고, 추상화 되어버렸습니다. 특히 최근에 개발을 시작한 백엔드 개발자들은 데이터 접근 기술을 사용할 때 왜 이런 방식으로 기능이 동작하는지 정확한 이유를 모르고, 단순히 사용법 위주로 사용하게 됩니다. 왜 이런 방식으로 사용하지?라고 의문을 가져도 과거에 어떤 불편한 문제 때문에 지금 이런 방식으로 개선되고 사용하는지 과거의 문맥을 제대로 이해하고 사용하기는 어렵습니다.


강의 특징

'왜' 쓰는지 알면, 정확하게 쓸 수 있습니다.

이 강의는 20년 전으로 돌아갑니다. 데이터 접근 기술의 시작인 JDBC를 시작으로, 커넥션, 커넥션 풀, 데이터소스, 트랜잭션 개념, 그리고 스프링이 지원하는 데이터 접근 기술까지, 모든 것을 코드로 여러분과 함께 만들어보면서 단계적으로 진행합니다. 과거에 어떤 불편한 점이 있어서 다음 기술이 탄생했고, 어떤 점들이 개선되었는지 그 이유를 찾고 직접 코딩하면서 하나씩 이해할 수 있습니다.

그리고 2편을 통해 MyBatis, JPA 같이 실무에서 주로 사용하는 데이터 접근 기술들도 함께 학습하게 됩니다.

기본기를 단단히

데이터 접근 기술을 학습할 때는 여러가지 기본기가 중요합니다. 이 강의에서는 실무에서는 많이 사용되지만 학습하기는 쉽지 않은 트랜잭션과 자바 예외에 대한 기본기도 함께 다룹니다. 그리고 이렇게 학습한 내용들이 실무에서 어떻게 활용되는지 코드로 학습할 수 있습니다.


강의 목표

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

이 강의는 데이터 접근 기술에 대한 모든 내용을 설명하지 않습니다. 데이터 접근 기술을 위해 필요한 핵심 뼈대를 세우고, 그 위에 실무에 꼭 필요한 기술을 위주로 설명합니다. 이 강의가 끝나면 여러분은 튼튼한 기반 지식을 바탕으로 스프링 백엔드 애플리케이션을 자신있게 개발할 수 있습니다.


스프링 DB 강의 구성

스프링 DB 강의는 1, 2편으로 나누어져 있습니다.
본 강의는 스프링 DB 1편 - 데이터 접근 핵심 원리입니다.

스프링 DB 1편 - 데이터 접근 핵심 원리  현재 강의 

데이터 접근 기술의 핵심 개념을 다지고, 스프링이 제공하는 데이터 접근 기술의 기본 원리를 이해합니다.
1편은 먼저 스프링 없이 순수한 데이터 접근 기술인 JDBC, 커넥션, 커넥션 풀, 데이터소스, 트랜잭션 같은 기반 기술의 핵심 개념을 먼저 학습합니다. 이렇게 기반을 다진 다음에, 그 위에 스프링 데이터 접근 기술이 이 기능들을 얼마나 편리하게 사용할 수 있도록 도와주는지 단계별로 깊이있게 학습합니다.

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

1편의 기반 위에 다양한 활용 기술들을 학습합니다.
JdbcTemplate, MyBatis 같은 SQL 매퍼 기술 부터, JPA, 스프링 데이터 JPA, Querydsl 같은 최신 ORM 기술을 학습하고 각 기술들의 장단점을 이해합니다. 그리고 데이터 접근 계층의 테스트 방법과 스프링 트랜잭션에 대한 다양한 기능들도 깊이있게 학습합니다.


지식공유자님의
한마디

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

 


강의 순서


연관 로드맵

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

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 스프링을 통해 DB에 접근하고, 데이터를 관리하고 싶은 개발자

  • 개발자 취업 준비생

  • 스프링 DB 접근 기술을 깊이있게 이해하고 싶은 현업 개발자

  • 스프링으로 웹 애플리케이션을 만들고 싶은 개발자

선수 지식,
필요할까요?

  • 자바 언어

  • 스프링 기본 지식

  • DB 기본 지식

안녕하세요
김영한입니다.

528,237

수강생

32,826

수강평

8,844

답변

5.0

강의 평점

22

강의

진짜 실무에 필요한 제대로 된 개발자가 될 수 있도록, 교육하는 것이 저의 목표입니다.

 

저의 개발 인생 이야기

EO 인터뷰 영상

개발바닥 - 시골 청년 개발왕 되다

취업과 이직에 대한 고민 해결

 

더보기

커리큘럼

전체

57개 ∙ (10시간 4분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

837개

5.0

837개의 수강평

  • boot님의 프로필 이미지
    boot

    수강평 5

    평균 평점 4.2

    5

    100% 수강 후 작성

    I am a job seeker who studied only Java grammar and watched all of Younghan's lectures in the order of JPA -> Spring roadmap. (I think the order changed, but when I started, there was only the Spring basics ㅠㅠ) I think I was able to get here without much difficulty because he explained in an easy way that even I, a beginner in programming, could understand what problems ancient developers felt and how they developed. I think it was because I had listened to the advanced lecture before, so when concepts like templates, callbacks, proxies, and AOP came out, I found them interesting and thought that they were used in this way. Later, when I was creating a function, I thought that I should introduce patterns when I had repetitive code or dependency problems. If I had started with a book like Projects with Spring, I might have been satisfied with just using Spring, so I think it was a good decision to start with Younghan's lecture :) As you said while waiting for DB Part 2, I am trying to move beyond the study stage to the acquisition stage, but I don't know where to start, but I plan to follow Younghan's advice and create small projects step by step. Of course the lecture is good, but I think the direction you give me at the end is a great motivation for me. Thank you so much^^

    • yh
      지식공유자

      Min-gyu, you studied exactly as I intended^^! You're a job seeker, but if you've already thought about it this much, I'm sure you'll be a good developer when you become a working developer. I'm rooting for you!

  • koorung님의 프로필 이미지
    koorung

    수강평 25

    평균 평점 5.0

    5

    100% 수강 후 작성

    Not only the lecture content, but also the good words in the last video gave me a lot of strength. Recently, I feel like I've been studying after work out of inertia without any particular goals, so I wondered if this was really right? Is this really not my path? Many of the parts that were frustrating have been resolved. Thank you!

    • yh
      지식공유자

      KoorunG, in the end, consistent effort is the most important. I feel like my hard work paid off. Thank you.

  • hanbin10184700님의 프로필 이미지
    hanbin10184700

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    I don't usually write reviews on the internet, but I'm writing this because it helped me a lot. Like other lectures by Knowledge Sharer, this is a good lecture based on thorough preparation as well as the instructor's own development skills. It is really helpful in terms of content, but it is especially recommended because it always considers how to convey the lecture well based on the listener. While showing the source code or official documents at the appropriate time, it only goes as far as necessary at that time, and as always, the stories of usage experiences in the field are also helpful. I was studying DB access technology, and it helped me a lot with the underlying principles and the questions that naturally came up. Thanks to this, I was able to save a lot of time. In particular, the exception handling issue was really helpful. I was quite confused about exceptions while learning JDBC, but 1. You covered the basics of Java exception concepts in a solid manner, 2. You conveyed usage trends in the field and gave clear instructions on how to use them, which was especially helpful. In fact, I started developing on my own and have been studying with Younghan's lectures since I only knew how to do the multiplication table. It's been about 8 months since I started studying with Younghan's lectures, and each lecture has been really helpful. In particular, since the lecture is conducted through the instructor's live coding, I would like to recommend it because you can also acquire knowledge about using IDEs and writing good codes. Thank you always.

    • yh
      지식공유자

      Thank you, Mr. Lee Han-bin, for studying hard and explaining the merits of the lecture one by one. I thought a lot about whether to include the basics of Java exceptions here, and I feel rewarded for helping you in this area. Thank you!

  • omg님의 프로필 이미지
    omg

    수강평 205

    평균 평점 5.0

    5

    100% 수강 후 작성

    I highly recommend this to those who have thrown exceptions in their company code or lack the concept of transactions :) Thank you for providing a unique and excellent lecture that raises the average skill level of domestic backend developers!!

    • yh
      지식공유자

      OMG, I really sympathize with the part where the company code is full of throws exceptions and such. Thank you for listening so intently!

  • robin00q6778님의 프로필 이미지
    robin00q6778

    수강평 20

    평균 평점 4.7

    5

    100% 수강 후 작성

    Kim Young-han!! Kim Young-han!! Kim Young-han!!

    • yh
      지식공유자

      Mr. Lee Seok-jun, thank you for listening so attentively!

김영한님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

₩42

29%

₩77,000