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

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 대시보드

(5)
1,856개의 수강평 ∙  24,520명의 수강생
99,000원

월 19,800원

5개월 할부 시
지식공유자: 김영한
총 72개 수업 (15시간 22분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유
김영한 프로필
스프링 DB 2편 - 데이터 접근 활용 기술 오픈 예정 소식!
김영한 2022.05.23

안녕하세요. 여러분^^!
드디어 스프링 DB 2편 강의가 오픈 준비에 돌입했습니다. 오랜기간 기다려주시고 응원해주셔서 감사합니다.

출시 예정일은 다음주 5월 30일(월) ~ 6월 3(금) 사이에 DB 2편이 출시될 예정입니다^^!

 - 강의명: 스프링 DB 2편 - 데이터 접근 활용 기술
 - 강의 수: 85강
 - 강의 자료 PDF:  250장
 - 강의 자료 PPT: 173장

자세한 강의 소개는 다음 내용을 참고해주세요.

강의 소개

백엔드 DB 데이터 접근 기술의 완성

백엔드 웹 애플리케이션을 제대로 개발하려면 HTTP를 기반으로한 MVC와 DB를 기반으로한 데이터 접근 기술이라는 2가지 큰 축을 완성해야 합니다. 우리는 앞선 강의를 통해 HTTP와 스프링 MVC를 완성했고, 이제 남은 하나의 축인 스프링 DB 데이터 접근 기술을 완성해야 합니다.
스프링 DB1편 강의를 통해 DB 접근 기술의 핵심 원리와 구조를 이해했습니다. 이번 스프링 DB 2편에서는 1편의 기반 위에 실무에 꼭 필요한 다양한 활용 기술들을 학습합니다. 2편은 크게 3부분으로 나뉘어 있습니다.

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

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

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

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

강의 목표

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

다루는 내용

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

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

데이터 접근 기술 - JPA
스프링과 JPA는 자바 엔터프라이즈(기업) 시장의 주력 기술입니다.
스프링이 DI 컨테이너를 포함한 애플리케이션 전반의 다양한 기능을 제공한다면, JPA는 ORM 데이터 접근 기술을 제공합니다.
JPA는 스프링 만큼이나 방대하고, 학습해야할 분량도 많습니다. 하지만 한번 배워두면 데이터 접근 기술에서 매우 큰 생산성을 향상을 얻을 수 있습니다. 대표적으로 JdbcTemplate이나 MyBatis 같은 SQL 매퍼 기술은 SQL을 개발자가 직접 작성해야 하지만, JPA를 사용하면 SQL도 많은 부분 JPA가 대신 작성하고 처리해줍니다.
실무에서는 JPA를 더욱 편리하게 사용하기 위해 스프링 데이터 JPA와 Querydsl이라는 기술을 함께 사용합니다.
JPA, 스프링 데이터 JPA, Querydsl은 각각 별도의 강의로 다룰 정도로 매우 방대합니다. 여기서는 해당 기술들의 기본 기능과, 해당 기술을 왜 사용해야 하는지 각각의 장단점과 전체 큰 그림을 알아봅니다.

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

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

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

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

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

김영한 프로필
스프링 DB 1편 - 데이터 접근 핵심 원리 오픈 소식
김영한 2022.04.12

안녕하세요. 여러분
스프링 DB 접근 기술 강의를 드디어 오픈했습니다.
오랜기간 기다려주신 모든분께 진심으로 감사합니다.

- 강의명: 스프링 DB 1편 - 데이터 접근 핵심 원리
- 강의 수: 54강
- 설명 그림: 약 80장
- 강의 자료 PDF: 약 200장

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

JDBC, 커넥션, 커넥션 풀, 데이터소스, 트랜잭션, 예외 처리 같은 기반 기술의 핵심 개념을 먼저 학습합니다. 이렇게 기반을 다진 다음에, 그 위에 스프링 데이터 접근 기술이 이 기능들을 얼마나 편리하게 사용할 수 있도록 도와주는지 단계별로 깊이있게 학습합니다. 그리고 2편을 통해 JdbcTemplate, MyBatis, JPA, SpringDataJPA, Querydsl 같이 실무에서 주로 사용하는 데이터 접근 기술들도 함께 학습하게 됩니다.

강의 목표

백엔드 개발자는 스프링 MVC와 함께  DB 접근 기술이라는 2가지 큰 축을 완성해야 합니다. 복잡하고 어려운 스프링 DB 접근 기술을 완전히 정복할 수 있게 도와드리겠습니다.

자세한 내용은 링크의 다음 강의 소개를 참고해주세요.
강의 링크: https://www.inflearn.com/course/스프링-db-1?inst=b308871a

감사합니다.

김영한 프로필
스프링 DB 접근 기술 오픈 예정 소식!
김영한 2022.04.06

안녕하세요. 여러분^^!
드디어 스프링 DB 접근 기술 강의가 오픈 준비에 돌입했습니다. 오랜기간 기다려주시고 응원해주셔서 감사합니다.

DB 데이터 접근 기술 전반의 방대한 분량을 다루다 보니, 강의 분량이 140강을 넘을 정도로 많아졌습니다.
이대로 계속 준비하면 출시가 너무 늦어질 것 같아서 강의를 2개로 나누어 출시하기로 했습니다.

1. 스프링 DB 1편 - 데이터 접근 핵심 원리
2. 스프링 DB 2편 - 데이터 접근 활용 기술

출시 예정일은 4월 12일(화) ~ 4월 19(화) 사이에 1편이 출시될 예정입니다^^!
(2편은 5월말 출시 예정입니다.)

이번 DB 접근 기술 강의도 오랜기간 열심히 준비했습니다. 기대해주셔도 좋습니다.

- 강의명: 스프링 DB 1편 - 데이터 접근 핵심 원리
- 강의 수: 54강
- 설명 그림: 약 80장
- 강의 자료 PDF: 약 200장

 

자세한 강의 소개는 다음 내용을 참고해주세요.

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

데이터 접근 기술

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

  1. 웹이나 앱 같은 클라이언트의 요청을 받아서 처리하는 기능 - 컨트롤러
  2. 비즈니스 로직을 수행하는 기능 - 서비스
  3. 수행 결과를 데이터베이스에 보관하고 관리하는 기능 - 리포지토리

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

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

데이터 접근 기술을 학습하기 어려운 이유

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

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

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

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

강의 특징

데이터 접근 기술의 시작인 JDBC 부터 최신 실무 기술까지
이 강의는 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가지 큰 축을 꼭 완성해야 합니다. 여러분이 두 가지 축을 완성하고, 멋진 백엔드 개발자로 성장할 수 있도록 저도 열심히 도와드리겠습니다. 감사합니다.

김영한 프로필
10만 수강생 달성 기념, 인프런 이벤트에 참여하게 되었어요.
김영한 2022.02.11

안녕하세요. 여러분

수강생 10만을 달성한 기념으로 인프런과 함께 이벤트를 진행하기로 했습니다.

여러분들의 질문을 받고 직접 라이브 방송으로 답변하는 시간을 가지려 합니다.
(작은 선물도 있습니다^^)

* 질문 남기는 곳 : https://www.inflearn.com/pages/knowledge-thanks10-t

* 질문 기간 : 2022-02-11(금) ~ 2022-02-16(수)

답변은 인프런 유튜브 채널에서 2월 24일 목요일 오후 9시 00분 라이브 방송으로 진행합니다.

그동안 저를 응원해주시고, 또 열심히 공부하며 성장하는 많은 개발자분들께 진심으로 감사합니다.
여러분께 조금이나마 도움이되고, 또 보답하는 시간이 되었으면 합니다.
많은 참여 부탁드려요^^

 

다른 댓글 보기(1)
김영한 프로필
저의 진솔한 이야기 - 개발바닥 유투브 인터뷰 1편 공개
김영한 2021.11.16

안녕하세요. 여러분
인프런에서 10번째 강의를 오픈하고 나면 저의 진솔한 이야기를 유투브 라이브에서 한번 하기로 했습니다.
그 약속을 지키기 위해서 이번에 개발바닥이라는 개발 유투브에서 인터뷰를 했습니다. (라이브는 아니지만 라이브처럼 합니다 ㅎㅎ)

시골 청년 개발왕 되다 - 개발 1타 강사, 우아한형제들 개발 팀장 김영한 1편
방송 링크: https://youtu.be/Pb69UQ6f8n0

주요 내용

- 대학을 자퇴하고 개발 학원에서 공부하고 처음 어렵게 취업한 이야기
- SI에서 고생한 내용부터, 카카오(다음) 그리고 우아한형제들에 입사한 이야기
- JPA 책을 쓰고, 인프런에서 스프링 강의를 찍고 개발 1타 강사가 된 이야기

제가 개발자가 되는 과정이 순탄하지는 않았습니다. 그 속에서 많은 고민과 어려움이 있었습니다.
이런 고민과 어려움을 여러분과 나누고 또 어떻게 극복해왔는지 여러분께 솔직히 전해드리고 싶었습니다.
제 이야기가 고민이 있는 개발자분들께 조금이나마 도움이 되었으면 좋겠습니다.

자세한 내용은 유투브 방송 링크를 참고해주세요.
참 그리고! 개발바닥 유투브 구독과 좋아요도 부탁드립니다^^!

김영한 프로필
스프링 핵심 원리 - 고급편 오픈 소식과 할인 공지
김영한 2021.10.27

안녕하세요. 여러분
스프링 핵심 원리 - 고급편 강의를 드디어 오픈했습니다.
오랜기간 기다려주신 모든분께 진심으로 감사합니다.

오픈 기념 30% 할인합니다^^! 모든 강의 25% 할인합니다!

- 강의명: 스프링 핵심 원리 - 고급편
- 강의 수: 120강
- 강의 자료: PDF 360장

강의 링크: 스프링 핵심 원리 고급편

https://www.inflearn.com/course/스프링-핵심-원리-고급편?inst=348e3d39

강의 목표

기본편 강의에서 스프링과 객체 지향 개발의 기본기를 학습했다면, 고급편 강의는 스프링과 백엔드 개발을 깊이있게 이해하기 위한 심도있는 주제들을 다룹니다. 

고급편 핵심 주제

 - 스프링 핵심 디자인 패턴
 - 동시성 문제와 쓰레드 로컬
 - 스프링 AOP

어려운 내용들이지만 실력있는 백엔드 개발자가 되려면 반드시 한번은 깊이있게 공부해야 하는 내용입니다.
포기하지 않고 이 강의를 끝까지 따라오시면 여러분은 개발자로서 확실한 내공 상승을 경험하고 누구보다 자신있게 스프링을 사용하실 수 있게 됩니다. 복잡하고 어려운 스프링의 핵심 심화 내용을 이 강의 하나로 마무리 할 수 있게 도와드리겠습니다.

자세한 내용은 링크의 강의 소개를 참고해주세요.

감사합니다.

김영한 프로필
스프링 핵심 원리 - 고급편 오픈 예정 소식!
김영한 2021.10.25

안녕하세요. 여러분
드디어 스프링 핵심 원리 - 고급편 강의가 오픈 준비에 돌입했습니다.
오랜기간 기다려주시고 응원해주셔서 고맙습니다.

- 제목: 스프링 핵심 원리 - 고급편
- 출시 일정: 10월 27일(수) ~ 11월 3일(수) 사이에 출시
- 강의 수: 120강
- 강의 자료: PDF 360장

기본편 강의에서 스프링과 객체 지향 개발의 기본기를 학습했다면, 고급편 강의는 스프링과 백엔드 개발을 깊이있게 이해하기 위한 심도있는 주제들을 다룹니다. 

고급편 핵심 주제

- 스프링 핵심 디자인 패턴
- 동시성 문제와 쓰레드 로컬
- 스프링 AOP

어려운 내용들이지만 실력있는 백엔드 개발자가 되려면 반드시 한번은 깊이있게 공부해야 하는 내용입니다.
복잡하고 어려운 스프링의 핵심 심화 내용을 이 강의 하나로 마무리 짓는다고 생각하시면 됩니다.

자세한 내용은 다음 강의 소개를 참고해주세요.

 

강의 소개

*스프링 프레임워크*

실력있는 개발자가 되려면 실무에서 자주 사용하는 도구를 깊이있게 이해해야 합니다.
스프링은 실무에서 가장 많이 사용하는 백엔드 기술입니다.
따라서 백엔드 개발자라면 스프링을 깊이있게 이해하는 것이 중요합니다.

우리는 앞서 스프링 핵심 원리 - 기본편에서 스프링과 객체 지향 개발의 기본기를 학습했습니다.

*스프링 핵심 원리 - 기본편*

객체 지향 설계와 스프링
  - SOLID - SRP, OCP, DIP
스프링 컨테이너와 스프링 빈
  - 스프링 컨테이너 - IoC, DI
  - 의존관계 주입
  - 빈 생성주기와 스코프

*스프링 핵심 원리 - 고급편*

스프링을 깊이있게 이해하고, 실무에서 실력있는 개발자가 되려면, 기본편에서 학습한 내용을 기반으로 크게 3가지 핵심 고급 개념을 알아야합니다. 이번 고급편에서는 이러한 고급 개념을 학습합니다.

1. 스프링 핵심 디자인 패턴
2. 동시성 문제를 다루기 위한 쓰레드 로컬
3. 스프링 AOP 

*1. 스프링 핵심 디자인 패턴*

스프링의 내부 기술들은 몇 가지 핵심 디자인 패턴으로 만들어져 있습니다. 따라서 스프링을 깊이있게 이해하기 위해서는 먼저 스프링이 자주 사용하는 디자인 패턴들을 알아야합니다.

*강의에서 전달하는 핵심 디자인 패턴*

  - 템플릿 메서드 패턴
  - 전략 패턴
  - 템플릿 콜백 패턴
  - 프록시 패턴
  - 데코레이터 패턴

강의에서는 이러한 디자인 패턴들을 예제 코드로 하나하나 만들어보면서 아주 쉽게 설명해드립니다. 그리고 이렇게 학습한 디자인 패턴을 애플리케이션에 적용하는 방법도 알아봅니다.

 

*2. 쓰레드 로컬*

스프링은 주로 웹 애플리케이션 개발에 사용됩니다. 웹 애플리케이션은 동시에 여러 요청을 처리하기 위해 멀티쓰레드를 사용합니다. 따라서 여러 쓰레드가 경합하는 동시성 문제가 발생할 수 있습니다.

*강의에서 전달하는 동시성 문제와 쓰레드 로컬 내용*

  - 웹 애플리케이션
  - 멀티쓰레드
  - 동시성 문제

강의에서는 스프링을 사용할 때 발생하는 동시성 문제를 알아보고, 또 동시성 문제를 편리하게 해결할 수 있는 쓰레드 로컬 개념까지 학습합니다. 
쓰레드 로컬은 멀티쓰레드 환경에서 스프링이 어떻게 동시성 문제 없이 잘 작동하는지 이해하기 위한 필수 개념입니다.

 

*3. 스프링 AOP*

스프링 AOP는 실무에서 정말 많이 사용되는, 마치 마법처럼 느껴질 정도로 편리한 기술입니다. 많은 개발자가 스프링 AOP를 사용하지만, 스프링 AOP가 어떻게 동작하는지 그 원리를 정확하게 이해하고 사용하는 개발자는 많지 않습니다.

단순히 스프링 AOP의 기능만 알고 사용하는 단계를 넘어서, 스프링 AOP의 동작 원리를 깊이있게 이해해야 장애가 발생했을 때 근본적인 문제 해결이 가능합니다.

*강의에서 전달하는 스프링 AOP 내용*

  - 개념, 용어정리
  - 프록시 - JDK 동적 프록시, CGLIB
  - 동작 원리
  - 실전 예제
  - 실무 주의 사항

강의에서는 스프링 AOP의 단순한 기능 정리를 넘어서 동작 원리부터 실전 예제, 그리고 실무에서 자주 발생하는 주의 사항까지 스프링 AOP의 모든 것을 정리해드립니다.

 

*기타*

추가로 스프링 컨테이너의 고급 기술인 빈 후처리기와 스프링 애플리케이션을 개발하는 다양한 *실무 팁*도 전해드립니다.

  - 스프링 컨테이너의 확장 포인트 - 빈 후처리기
  - 스프링 애플리케이션을 개발하는 다양한 실무 팁

 

강의를 듣고 나면

고급편인 만큼 이 강의에서 다루는 내용들은 쉬운 내용들이 아닙니다.
하지만 실력있는 백엔드 개발자가 되려면 반드시 한번은 공부해야 하는 내용입니다.
포기하지 않고 이 강의를 끝까지 따라오시면 여러분은 개발자로서 엄청난 내공 상승을 경험하고 누구보다 자신있게 스프링을 사용하실 수 있게 됩니다.
어려운 내용이니 만큼 저도 철저하게 강의를 준비했습니다. 여러분이 이 내용들을 본인 것으로 완성할 수 있게 도와드리겠습니다.

감사합니다.

김영한 프로필
스프링 핵심 원리2 - 고급편 준비 소식(다음 강의 근황)
김영한 2021.09.22

안녕하세요. 여러분

최근 다음 강의 소식을 궁금해하시는 분들이 많으셔서 준비중인 강의 근황을 전달드립니다.

  • 제목: 스프링 핵심 원리2 - 고급편
  • 출시 예정: 10월 말 목표
  • 강의 수: 약 80강

강의 목표

이번 고급편 강의는 스프링과 백엔드 개발을 깊이있게 이해하기 위한 심도있는 주제들을 다룹니다. 특히 스프링 AOP 부분을 중점적으로 다룹니다.

처음에는 중급편을 출시하려고 고민했는데, 강의를 준비하면서 중급 내용에 심화 내용을 더해서 고급편 하나로 출시하기로 했습니다. 복잡하고 어려운 스프링의 심화 내용을 이 강의 하나로 마무리 짓는다고 생각하시면 됩니다.

어려운 주제를 예제 코드를 통해 단계별 나누어 최대한 쉽게 설명드리려다 보니 준비 기간이 다른 강의 보다 더 많이 걸리네요. 이 부분은 이해 부탁드려요.

강의 주제

  • 스프링 같은 프레임워크와 멀티쓰레드를 깊이있게 이해하는데 필수적인 쓰레드 로컬(Thread Local) 개념
    • 쓰레드 로컬 개념 설명
    • 쓰레드 로컬 적용
  • 스프링이 자주 사용하는 핵심 디자인 패턴들
    • 템플릿 메서드 패턴과 콜백 패턴
    • 프록시 패턴과 데코레이터 패턴
  • 스프링 AOP를 처리하기 위한 동적 프록시 기술
    • 자바 다이내믹 프록시와 CGLIB 같은 동적 프록시 기술
    • 스프링이 지원하는 프록시 기술
  • 스프링 컨테이너의 확장 포인트인 빈 후처리기
    • 스프링 빈 후처리기 소개
    • 스프링 빈 후처리기 적용
  • 스프링 AOP의 완벽한 이해
    • AOP 소개, 적용 방법, 용어 정리
    • AOP 구현
    • AOP 실전 예제

현재 출시 예정인 강의는 다음과 같습니다.

  • 스프링 핵심 원리2 - 고급편(10월말 예정)
  • 스프링 DB 접근 기술(스프링 핵심 원리2 - 고급편 이후)
  • 스프링 부트 강의(스프링 DB 접근 기술 이후)

감사합니다.

다른 댓글 보기(1)
김영한 프로필
스프링 MVC 2편 강의 오픈 소식과 할인 공지
김영한 2021.06.24

안녕하세요. 여러분

스프링 MVC 2편 강의를 드디어 오픈했습니다.

오랜기간 기다려주신 모든분께 진심으로 감사합니다.

강의명: 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

강의 수: 126강

강의 자료: PDF 350장

강의 링크: https://www.inflearn.com/course/스프링-mvc-2

강의 소개

자바 백엔드(Java Backend) 웹 기술은 매우 방대하고 공부할 분량도 많습니다. 특히 스프링 MVC는 제공하는 기능도 많고, 구조도 복잡합니다. 이러한 웹 기술을 제대로 학습하기 위해서는 스프링 MVC의 핵심 원리와 구조를 먼저 이해하고, 그 기반 위에 방대한 웹 활용 기술들을 하나씩 정복해야 합니다.

MVC1편을 통해 웹 개발에 필요한 스프링 MVC의 핵심 원리와 구조를 이해했습니다.

이번 MVC2편에서는 그 기반 위에 실무에 꼭 필요한 뷰 템플릿, 메시지, 국제화, 검증, 쿠키, 세션, 필터, 인터셉터, 예외 처리, 타입 컨버터, 파일 업로드와 같은 방대한 웹 활용 기술들을 예제를 통해 완전히 정복할 수 있습니다.

감사합니다.

다른 댓글 보기(2)
김영한 프로필
스프링 MVC 2편 오픈 예정 소식!
김영한 2021.06.21

스프링 MVC 2편 오픈 예정 소식!

안녕하세요. 여러분^^!
드디어 스프링 MVC 2편 강의가 오픈 준비에 돌입했습니다. 오랜기간 기다려주시고 응원해주셔서 고맙습니다.

MVC 2편에서는 MVC 1편의 기반 위에 실무에 꼭 필요한 뷰 템플릿, 메시지, 국제화, 검증, 쿠키, 세션, 필터, 인터셉터, 예외 처리, 타입 컨버터, 파일 업로드와 같은 방대한 웹 활용 기술들을 예제를 통해 완전히 정복할 수 있습니다.

다루는 내용도 방대하지만, 단순히 각 기술의 사용법만 설명하는 것이 아니라, 이 기술이 왜 필요하고, 어떻게 나왔는지 핵심 원리와 활용 방안들을 함께 설명드립니다.

그래서 이번 스프링 MVC 2편 강의는 강의 수도 가장 많고, 강의 시간도 가장 긴 강의입니다. 그만큼 오랜기간 심혈을 기울여서 준비한 강의입니다. 기대해주셔도 좋습니다.

출시일은 6/24(목) ~ 6/28(월) 사이에 MVC 2편이 출시될 예정입니다.

강의명: 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

강의 수: 126강

강의 시간: 21시간

강의 자료 PDF 350장

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 강의 소개

웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있습니다.

강의 소개

백엔드 웹 기술을 학습하기 어려운 이유

자바 백엔드(Java Backend) 웹 기술은 매우 방대하고 공부할 분량도 많습니다. 특히 스프링 MVC는 제공하는 기능도 많고, 구조도 복잡합니다.
이러한 웹 기술을 제대로 학습하기 위해서는 스프링 MVC의 핵심 원리와 구조를 먼저 이해하고, 그 기반 위에 방대한 웹 활용 기술들을 하나씩 정복해야 합니다.
MVC1편을 통해 웹 개발에 필요한 스프링 MVC의 핵심 원리와 구조를 이해했습니다.
MVC2편에서는 그 기반 위에 실무에 꼭 필요한 뷰 템플릿, 메시지, 국제화, 검증, 쿠키, 세션, 필터, 인터셉터, 예외 처리, 타입 컨버터, 파일 업로드와 같은 방대한 웹 활용 기술들을 예제를 통해 완전히 정복할 수 있습니다.

강의 목표

목표: 실무 백엔드 웹 애플리케이션을 개발할 때 필요한 방대한 웹 활용 기술을 완성하는 것이 이 강의의 목표입니다.

웹 기초부터 실무까지: 실무 개발을 위한 내용이 많지만, 웹 애플리케이션 개발 경험이 없는 개발자도 적응할 수 있게 단계적으로 구성하였습니다. 참고로 MVC1 편을 먼저 듣고 MVC2 편을 학습해야 합니다.

개념부터 활용까지: 단순히 기술의 사용법을 설명하는 것이 아니라, 이 기술이 왜 필요하고, 어떻게 나왔는지 핵심 원리와 활용 방안을 함께 설명합니다.

실무 예제 중심: 실무에서 스프링으로 웹 애플리케이션을 개발할 때 필요한 모든 과정을 예제를 통해 자연스럽게 학습하며, 실무 베스트 프랙티스를 전수해드립니다.

간결함: 실무에서 사용하지 않는 오래된 스프링 MVC 기능은 과감하게 제외했습니다. 최신 실무에 주로 사용하는 내용 중심으로 설명합니다.

다루는 내용

타임리프
타임리프는 백엔드 개발자를 위한 서버 사이드 뷰 템플릿입니다. 타임리프를 사용하면 별도의 프론트엔드 개발자가 없어도 백엔드 개발자 만으로 쉽고 빠르게 동적인 HTML을 만들 수 있습니다. 강의에서는 타임리프의 기본 기능부터, 스프링과 통합, 체크 박스, 라디오 버튼, 셀렉트 박스와 같은 복잡한 폼 관리 기능까지 모든 것을 예제를 통해서 만들어가며 학습합니다.

메시지, 국제화
웹 애플리케이션이 크고 복잡해질수록, 사용하는 다양한 메시지들을 일관성 있게 한 곳에서 관리해야 합니다. 예를 들어서 "상품명" 이라는 단어를 "상품 이름"이라는 단어로 고치려면 수 많은 파일의 소스코드를 수정해야 합니다. 스프링이 제공하는 메시지 기능을 사용하면 이런 것을 한번에 관리하고 수정할 수 있습니다. 국제화는 영어를 사용하는 사람에게는 사이트가 영어로 나오고, 한국어를 사용하는 사람에게는 사이트가 한국어로 나오는 기능입니다. 스프링은 이미 이러한 국제화 기능을 제공합니다. 강의에서는 스프링이 제공하는 메시지와 국제화 기능을 실제 예제를 통해서 단계적으로 학습합니다.

검증(Validation)
고객이 회원 가입을 할 때 입력 폼에 잘못된 값을 입력해서 서버에 전송한다면, 서버는 그 값을 검증하고 고객에게 다시 입력 폼을 보여주면서 어떤 부분이 잘못 입력되었는지 친절하게 안내해야 합니다. 이런 방식은 모든 웹 서비스에 꼭 필요한 기능입니다. 강의에서는 먼저 이러한 검증 기능을 직접 개발해봅니다. 그리고 스프링이 제공하는 검증 기능도 사용해보고, 더 나아가서 애노테이션 하나로 매우 편리하게 검증기능을 수행하는 Bean Validation 기능까지 예제를 통해 단계적으로 학습합니다.

쿠키, 세션
HTTP는 무상태 프로토콜입니다. 따라서 로그인 기능을 유지하려면 쿠키와 세션과 같은 개념이 필요합니다. 강의에서는 먼저 쿠키만으로 로그인 기능을 만들어봅니다. 그리고 어떤 보안 문제점들이 있는지 확인한 다음에 세션을 직접 만들고 적용해봅니다. 이렇게 세션을 직접 만드는 과정을 통해서 쿠키와 세션의 동작 방식을 깊이있게 이해할 수 있습니다. 그리고 추가로 서블릿이 제공하는 세션을 학습하고 적용해봅니다.

필터, 인터셉터
서블릿이 제공하는 필터와 스프링이 제공하는 인터셉터를 예제를 통해서 학습합니다. 먼저 가장 단순한 모든 HTTP 요청을 로그로 남기는 기능을 필터와, 인터셉터로 만들어보고, 이후 인증 처리를 위한 기능도 필터와 인터셉터로 만들어봅니다. 이렇게 둘을 함께 사용해보면서 각각의 장단점을 명확히 이해할 수 있습니다.

예외 처리
웹 애플리케이션을 학습할 때 가장 이해하기 어려운 부분이 바로 이 예외 처리 입니다. 왜냐하면 서블릿 컨테이너(WAS)와 스프링 MVC가 각각 나름의 예외 처리 방법을 제공하기 때문입니다. 그리고 실제로는 이 둘이 섞여서 복잡하게 예외 처리 메커니즘이 동작합니다. 그래서 컨트롤러에서 예외가 발생했을 때 스프링과 서블릿 컨테이너가 각각 내부에서 어떻게 동작하는지 개발자가 정확하게 이해하고 사용하기는 매우 어렵습니다. 강의에서는 서블릿 컨테이너의 예외 처리 부터 스프링MVC의 예외 처리까지 하나씩 단계적으로 풀어서 설명해드립니다. 그래서 강의를 듣고 나면 실제 예외가 발생했을 때 서버 내부에서 어떻게 동작하고, 어떤 지점을 변경해야 할지 명확히 이해할 수 있습니다. 추가로 API를 사용할 때의 예외 처리도 함께 설명합니다.

스프링 타입 컨버터
문자를 숫자로 변환하거나, 반대로 숫자를 문자로 변환해야 하는 것 처럼 애플리케이션을 개발하다 보면 타입을 변환해야 하는 경우가 많습니다. 예를 들어서 HTTP 요청에서 문자 "10"이 전달되어도 스프링에서는 @RequestParam으로 Integer 타입인 숫자 10으로 받을 수 있습니다. 스프링은 타입 컨버터라는 기능을 제공해서 일관성 있는 타입 변환을 지원합니다. 타입 컨버터는 스프링을 학습하면 많이 언급되는 내용이지만, 실제 어떻게 작동하는지 깊이있게 이해하기는 쉽지 않습니다. 강의에서는 타입 컨버터의 기본에서 활용까지 예제를 통해 단계적으로 이해할 수 있습니다.

파일 업로드
인터넷에는 수 많은 파일 업로드 예제들이 있습니다. 강의에서는 단순히 파일 업로드의 기능을 설명하는 것을 넘어서, 파일 업로드를 위해 사용하는 프로토콜을 깊이있게 설명하고 어떤 원리로 HTTP에서 파일 업로드가 가능한지 설명합니다. 그리고 파일 업로드 기능을 서블릿부터 시작해서 스프링이 제공하는 편리한 방식의 파일 업로드까지 예제를 통해 단계적으로 학습합니다.

감사합니다.

다른 댓글 보기(4)
김영한 프로필
스프링 MVC 강의 오픈 소식과 할인 공지
김영한 2021.03.08

안녕하세요. 여러분

스프링 MVC 강의를 드디어 오픈했습니다. 그동안 기다려주신 모든분께 진심으로 감사합니다.

강의 링크: https://www.inflearn.com/course/스프링-mvc-1

강의 목표

자바 백엔드 웹 애플리케이션을 개발할 때 필요한 실무 웹 기술 완성

강의 소개

현대의 애플리케이션은 대부분 웹 환경에서 동작하는 웹 애플리케이션입니다. 자바 백엔드 개발자는 웹 애플리케이션을 개발할 때, 대부분 스프링 MVC를 사용합니다.

스프링 MVC를 포함한 자바 백엔드 웹 기술은 20년이 넘는 오랜 기간 동안 수 많은 기능이 개선되고 발전하면서 너무 많은 것이 자동화되고, 추상화 되어버렸습니다. 그래서 최근에 웹 개발을 시작한 개발자들은 너무 많은 기능들 때문에, 어디서 부터 어떻게  시작해야 할지 혼란스럽습니다. 그리고 왜 이런 방식으로 기능을 제공하는지 과거 발전 과정의 문맥을 깊이있게 이해하고 사용하기는 어렵습니다.

이 강의는 20년 전으로 돌아갑니다. 자바 웹 기술의 기초라 할 수 있는 서블릿부터 시작해서 JSP, MVC 패턴, MVC 프레임워크, 그리고 스프링 MVC의 탄생부터 실무에서 주로 사용하는 최신 스프링 MVC의 사용법까지, 모든 것을 코드로 여러분과 함께 만들어보면서 단계적으로 알아갑니다. 과거에 어떤 불편한 점이 있어서 다음 기술이 탄생했고, 어떤 점들이 개선되었는지 그 이유를 직접 코딩하면서 자연스럽게 이해할 수 있습니다. 그리고 MVC 프레임워크를 직접 코드로 개발하는 과정을 통해 스프링 MVC의 내부 구조가 왜 이렇게 설계 되었는지 깊이있게 이해할 수 있습니다.

자바 웹 기술을 모두 설명하려면 수백시간도 부족합니다. 이 강의는 모든 것을 설명하기 보다는 자바 백엔드 웹 개발의 핵심 뼈대를 세우고, 그 위에 실무에 꼭 필요한 웹 기술을 위주로 설명합니다. 이 강의가 끝나면 여러분은 튼튼한 기반 지식을 바탕으로 스프링 백엔드 웹 애플리케이션을 자신있게 개발할 수 있습니다.

감사합니다.

다른 댓글 보기(2)