김영한の実戦データベース - 基本編
yh
実務に必ず必要なSQLとデータベースの基礎を学習します。 開発者だけでなく、企画者やデータアナリストの方々もSQLを深く学習します。
초급
SQL, MySQL, DBMS/RDBMS
백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다.

스프링 DB 접근 기술
스프링을 통해 DB를 사용하는 다양한 방법
스프링을 통해 DB를 사용하는 내부 원리
백엔드 개발자라면 반드시 알아야하는
스프링 데이터 접근 기술 Part.1
📣 확인해주세요!
본 강의는 자바 스프링 완전 정복 시리즈의 6번째 강의입니다. 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 로드맵을 먼저 확인해주세요.
• 로드맵 링크: https://www.inflearn.com/roadmaps/373 (클릭하면 바로가기)
현대의 애플리케이션은 대부분 웹 환경에서 동작하는 웹 애플리케이션입니다. 단순하게 생각하면 웹 애플리케이션은 크게 3가지 기능을 수행합니다.
우리는 앞서 스프링 MVC 강의를 통해 클라이언트의 요청을 받아서 처리하는 방법을 학습했습니다. 이번에는 그 이후 단계인 비즈니스 로직을 수행하는 서비스와 수행 결과를 데이터베이스에 보관하고 관리하는 리포지토리에 대해 깊이있게 학습합니다.
클라이언트의 요청을 받아서 처리하는 기능은 스프링 MVC를 사용합니다. 비즈니스 로직을 수행하는 기능은 순수한 자바 코드로 만들어집니다. 마지막으로 수행 결과를 데이터베이스에 보관하고 관리하는 기능은 JDBC, JdbcTemplate, MyBatis, JPA와 같은 다양한 기술들을 선택해서 사용합니다. 그리고 스프링이 제공하는 DB 데이터 접근 기술을 사용하면 이러한 기술들을 스프링과 통합해서, 매우 편리하게 사용할 수 있습니다.
애플리케이션에서 데이터베이스에 데이터를 보관하고 관리하기 위해서는 다양한 데이터 접근 기술을 학습해야 합니다. 이러한 데이터 접근 기술을 학습하기 어려운 대표적인 이유는 다음 3가지 때문입니다.
모든 데이터 접근 기술은 데이터베이스에 데이터를 보관하고 관리하기 위한 것입니다. 따라서 데이터베이스에 대한 기본 이해가 필요합니다. 이 강의를 학습하기 전에 데이터베이스와 SQL에 대한 기본 내용을 학습하시길 바랍니다.
JDBC부터 시작해서 SQL 매퍼라고 불리는 JdbcTemplate이나 MyBatis 같은 기술부터 ORM 기술인 JPA, 스프링 데이터 JPA, Querydsl 같은 최신 기술까지 정말 다양한 데이터 접근 기술들이 있습니다. 너무 다양한 기술들이 존재해서, 각각의 기술들이 어떤 장단점이 있고, 어떤 상황에 어떤 기술들을 사용하면 좋은지 명확하게 이해하고 사용하기는 쉽지 않습니다.
JDBC부터 시작한 데이터 접근 기술은 이미 20년이 넘었습니다. 그동안 데이터 접근 기술의 발전은 물론이고, 스프링은 이러한 데이터 접근 기술들을 더욱 편리하게 사용하도록 돕기 위해 수많은 기능을 발전시키고, 개선해왔습니다. 그래서 지금은 너무 많은 것이 자동화되고, 추상화 되어버렸습니다. 특히 최근에 개발을 시작한 백엔드 개발자들은 데이터 접근 기술을 사용할 때 왜 이런 방식으로 기능이 동작하는지 정확한 이유를 모르고, 단순히 사용법 위주로 사용하게 됩니다. 왜 이런 방식으로 사용하지?라고 의문을 가져도 과거에 어떤 불편한 문제 때문에 지금 이런 방식으로 개선되고 사용하는지 과거의 문맥을 제대로 이해하고 사용하기는 어렵습니다.
이 강의는 20년 전으로 돌아갑니다. 데이터 접근 기술의 시작인 JDBC를 시작으로, 커넥션, 커넥션 풀, 데이터소스, 트랜잭션 개념, 그리고 스프링이 지원하는 데이터 접근 기술까지, 모든 것을 코드로 여러분과 함께 만들어보면서 단계적으로 진행합니다. 과거에 어떤 불편한 점이 있어서 다음 기술이 탄생했고, 어떤 점들이 개선되었는지 그 이유를 찾고 직접 코딩하면서 하나씩 이해할 수 있습니다.
그리고 2편을 통해 MyBatis, JPA 같이 실무에서 주로 사용하는 데이터 접근 기술들도 함께 학습하게 됩니다.
데이터 접근 기술을 학습할 때는 여러가지 기본기가 중요합니다. 이 강의에서는 실무에서는 많이 사용되지만 학습하기는 쉽지 않은 트랜잭션과 자바 예외에 대한 기본기도 함께 다룹니다. 그리고 이렇게 학습한 내용들이 실무에서 어떻게 활용되는지 코드로 학습할 수 있습니다.
이 강의는 데이터 접근 기술에 대한 모든 내용을 설명하지 않습니다. 데이터 접근 기술을 위해 필요한 핵심 뼈대를 세우고, 그 위에 실무에 꼭 필요한 기술을 위주로 설명합니다. 이 강의가 끝나면 여러분은 튼튼한 기반 지식을 바탕으로 스프링 백엔드 애플리케이션을 자신있게 개발할 수 있습니다.
스프링 DB 강의는 1, 2편으로 나누어져 있습니다.
본 강의는 스프링 DB 1편 - 데이터 접근 핵심 원리입니다.
데이터 접근 기술의 핵심 개념을 다지고, 스프링이 제공하는 데이터 접근 기술의 기본 원리를 이해합니다.
1편은 먼저 스프링 없이 순수한 데이터 접근 기술인 JDBC, 커넥션, 커넥션 풀, 데이터소스, 트랜잭션 같은 기반 기술의 핵심 개념을 먼저 학습합니다. 이렇게 기반을 다진 다음에, 그 위에 스프링 데이터 접근 기술이 이 기능들을 얼마나 편리하게 사용할 수 있도록 도와주는지 단계별로 깊이있게 학습합니다.
1편의 기반 위에 다양한 활용 기술들을 학습합니다.
JdbcTemplate, MyBatis 같은 SQL 매퍼 기술 부터, JPA, 스프링 데이터 JPA, Querydsl 같은 최신 ORM 기술을 학습하고 각 기술들의 장단점을 이해합니다. 그리고 데이터 접근 계층의 테스트 방법과 스프링 트랜잭션에 대한 다양한 기능들도 깊이있게 학습합니다.
학습 대상은
누구일까요?
스프링을 통해 DB에 접근하고, 데이터를 관리하고 싶은 개발자
개발자 취업 준비생
스프링 DB 접근 기술을 깊이있게 이해하고 싶은 현업 개발자
스프링으로 웹 애플리케이션을 만들고 싶은 개발자
선수 지식,
필요할까요?
자바 언어
스프링 기본 지식
DB 기본 지식
567,902
명
수강생
38,234
개
수강평
9,015
개
답변
5.0
점
강의 평점
25
개
강의
교육자
전: 우아한형제들 기술이사, 카카오, SK플래닛
진짜 실무에 필요한 제대로 된 개발자가 될 수 있도록, 교육하는 것이 저의 목표입니다.
EO 인터뷰 영상
개발바닥 - 시골 청년 개발왕 되다
전체
57개 ∙ (10시간 4분)
해당 강의에서 제공:
4. 프로젝트 생성
03:13
5. H2 데이터베이스 설정
05:02
6. JDBC 이해
09:09
8. 데이터베이스 연결
16:04
9. JDBC 개발 - 등록
19:57
10. JDBC 개발 - 조회
14:42
11. JDBC 개발 - 수정, 삭제
12:45
12. 정리
05:02
13. 커넥션 풀 이해
08:41
14. DataSource 이해
06:10
17. DataSource 적용
13:54
18. 정리
03:23
전체
960개
5.0
960개의 수강평
수강평 1
∙
평균 평점 5.0
5
通常、インターネットにレビューをする方ではありませんが、多くの助けを借りて文を残します。 知識共有者の他の講義がそうであるように、講師様本人の開発実力だけでなく、徹底した準備が基盤となった良い講義です。内容的にも本当に役に立ちますが、いつも講義を聞く人を基準にどのようによく伝えなければならないのかについての悩みが溶け込んでおり、特におすすめの講義です。 適切な時点でソースコードや公式文書を開けて見せながらも、ちょうどその時点で必要なだけ進めてくださり、いつものように現業での使用経験の話も役に立ちます。 DBアクセス技術を勉強していたところで、基底にある原理について、自然に出るしかない疑問に対して大きな助けを得ました。おかげで時間を大幅に節約できました。 特に例外処理の問題を扱ったことは本当に役に立ちました。 JDBCを学びながら例外についてかなり混乱していた状況でしたが、 1. Java例外概念について基礎からしっかりとわかっていただき、 2. 現業で使用傾向を伝え、どのように使用することについての指針を明確にしてください。 特に役に立ちました。 事実上、独学で開発を始めて球球団だけを打つと思っていた頃から、ヨンハン様の講義で勉強してきてから8ヶ月ほど経ちましたが、川の一つ一つが本当に役に立ちました。特に講師様のライブコーディングで行われる授業なので、IDEの利用や良いコードの書き方に関する知識も習得できるという点もおすすめしたいと思います。 いつもありがとうございます。
イ・ハンビン様一生懸命勉強して、またこのように講義のメリットを一つ一つ解いて話してくださって本当にありがとうございました。 Java例外の基礎についてここに含めるか悩みを少しやりましたが、こういう部分で助けてくれて私もやりがいですね。ありがとうございます!
수강평 6
∙
평균 평점 4.3
5
Java文法だけを勉強し、JPA -> Spring ロードマップ順に英漢様の講義を全部見た就壕生です。 (順番が変わったようですが、私が始まる当時はスプリングの基礎だけがありましたㅠㅠ) 古代の開発者がどのような問題を感じてどのように発展したのか、初めてプログラミングをする私も理解できるように簡単に解いて説明していただき、大きな困難なしにここまで来たようです。 今回の講義は、前に高級編を聞いてきて、そんなテンプレート、コールバック、プロキシ、AOPのような概念が出てきたときに、このように活用されるんだって楽しく聞きましたね。後で私が機能を作るときにも繰り返されるコードや依存性の問題が発生したら、パターンを導入しなければならないと思いました。スプリングで作るプロジェクトのような本で始めたら、ただスプリングを使うことに満足していたかもしれないと思われ、ヨンハン様の講義で始めることができたと思います:) DB2編を待ちながら教えてくださったように、勉強する段階を超えて体得する段階に行こうとするのに、どのように始めるべきかを終えたけれど、霊的な様のアドバイス通りに小さなプロジェクトからじっくり作ってみようと思います。講義ももちろん良いですが、最後に進むべき方向を提示していただくのが私に大きな動機付けになると思います本当にありがとうございました^^
ミンギュ様私がぴったり意図したとおり勉強をしましたね^^! 就任生なのに、すでにこれくらい悩んでいたら、実務開発者になったとき、きっと良い開発者になると確信しています。 応援します!
₩77,000