실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
수강정보
(95개의 수강평)
1613명의 수강생
5개월 할부시
월 17,600원88,000원
지식공유자 : 김영한
23회 수업 · 총 6시간 38분 수업
기간 : 평생 무제한 시청
수료증 : 발급 강의
수강 난이도 : 중급이상
김영한 프로필
스프링 핵심 원리 강의 오픈!
김영한 9일 전

스프링 핵심 원리 강의 오픈

안녕하세요. 스프링 입문 강의를 출시하고, 많은 분들이 응원해주신 덕분에 드디어 스프링 핵심 원리 강의를 오픈했습니다!

9월까지 25% 할인합니다^^!

강의소개: 스프링 핵심 원리 - 기본편

이 강의는 스프링이 없던 20년 전으로 돌아가서 스프링이 왜 만들어졌는지 그 이유부터 시작합니다. 그리고 우리도 그때로 돌아가서 스프링 없는 순수한 자바 코드로 예제 애플리케이션을 만들어봅니다. 요구사항이 변경 됨에 따라 문제점들이 하나씩 발견되고, 그 문제를 해결하기 위해 좋은 객체 지향 원리들을 하나씩 코드에 적용하면서 문제를 해결해나갑니다. 이렇게 애플리케이션 예제 코드를 개발하는 과정을 통해 자연스럽게 좋은 객체지향의 원리(SOLID)와 IoC, DI에 대해서 이해하고, 또 스프링 컨테이너가 왜 필요한지 깨달을 수 있습니다.

단순히 스프링 레퍼런스 문서에 있는 기능을 하나하나 설명하기 보다는, 왜 스프링을 만들었고, 왜 스프링이 이런 기능을 제공하는지 그 이유와 핵심 원리에 대해서 설명합니다. 학습이 끝나면 스프링이 제공하는 기능을 잘 사용하는 것은 물론이고, 스프링과 객체 지향 설계의 본질에 대해서 깊이 이해할 수 있습니다. 그래서 실무에서 스프링 핵심 기술을 제대로 이해하고 활용할 수 있습니다.

감사합니다^^!

강의 링크: https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8

김영한 프로필
스프링 핵심 원리 오픈 예정 소식!
김영한 12일 전

안녕하세요. 여러분

드디어 기나긴 강의 준비 기간이 끝나고, 지난주부터 촬영에 들어갔습니다.

강의는 다음주 9/21(월)~22(화) 사이에 오픈 예정입니다^^!

이번 스프링 핵심 원리 강의는 제가 올해 초 부터 6개월 동안 정말 심혈을 기울여서 준비한 강의입니다. 기대해주셔도 좋습니다!

  • 강의명: 스프링 핵심 원리 - 기본편
  • 준비 기간: 2020년 2월 ~ 2020년 9월
  • 강의 수 60강
  • 스프링과 객체지향을 설명하는 PPT 65장
  • 설명을 위한 그림 50장 이상
  • 강의 자료 PDF 159장

스프링 핵심 원리 - 기본편 강의 소개

단순히 스프링이 제공하는 기능을 배우고 사용하는 것은 어렵지 않습니다. 그런데 스프링이 제공하는 핵심 가치와 원리를 제대로 이해하고 사용하려면 큰 난관에 부딪힙니다. 왜냐하면 IoC(제어의 역전), DI(의존관계 주입) 같은 알듯말듯한 용어부터, SRP, OCP, DIP 같은 소위 SOLID라 불리는 좋은 객체 지향 설계의 원칙들도 함께 이해해야 비로소 스프링의 핵심 원리를 제대로 파악할 수 있기 때문입니다. 

스프링의 진정한 핵심 가치는 바로 객체 지향 프로그래밍에 있습니다. 그리고 스프링을 제대로 이해하기 어려운 이유도 이 객체 지향 때문입니다. 다음 단계의 백엔드 개발자로 성장하려면, 스프링이 제공하는 핵심 가치와 원리를 반드시 깊이있게 이해해야 합니다.

이 강의는 스프링이 없던 20년 전으로 돌아가서 스프링이 왜 만들어졌는지 그 이유부터 시작합니다. 그리고 우리도 그때로 돌아가서 스프링 없는 순수한 자바 코드로 예제 애플리케이션을 만들어봅니다. 요구사항이 변경 됨에 따라 문제점들이 하나씩 발견되고, 그 문제를 해결하기 위해 좋은 객체 지향 원리들을 하나씩 코드에 적용하면서 문제를 해결해나갑니다. 이 과정속에서 여러분은 자연스럽게 좋은 객체지향의 원리(SOLID)와 IoC, DI에 대해서 이해하고, 또 스프링 컨테이너가 왜 필요한지 깨달을 수 있습니다.

스프링의 핵심 원리를 단순히 이론적으로 이해하는 것이 아니라, 예제 애플리케이션을 직접 코드로 개발하는 과정 속에서 자연스럽게 이해하게 됩니다.

강의 목차

  • 1. 객체 지향 설계와 스프링
  • 2. 스프링 핵심 원리 이해1 - 예제 만들기
  • 3. 스프링 핵심 원리 이해2 - 객체 지향 원리 적용
  • 4. 스프링 컨테이너와 스프링 빈
  • 5. 싱글톤 컨테이너
  • 6. 컴포넌트 스캔
  • 7. 의존관계 자동 주입
  • 8. 빈 생명주기 콜백
  • 9. 빈 스코프

강의의 1,2,3 앞부분은 이렇게 객체 지향과 스프링의 핵심 원리에 대해서 설명합니다. 그리고 이후 4. 스프링 컨테이너와 스프링 빈 부터는 스프링이 제공하는 핵심 기능들을 설명합니다. 스프링이 제공하는 기능을 단순히 설명하는 것을 넘어서, 이 기능이 왜 만들어졌는지, 어디에 왜 필요한지, 그리고 가장 중요한 실무에서 어떤 방식으로 사용되는지, 이 부분에 초점을 맞추어 설명합니다.

그래서 스프링의 기능을 단순히 사용하는 단계를 넘어서, 실무에서 어떻게 활용하는게 좋은 방법인지, 제대로 이해하고 사용할 수 있습니다.

이 강의를 듣고 나면

이 강의는 단순히 스프링 레퍼런스 문서에 있는 기능을 하나하나 설명하는 강의가 아닙니다. 기능을 넘어서 왜 스프링을 만들었고, 왜 스프링이 이런 기능을 제공하는지 그 이유와 핵심 원리에 대해서 설명하는 강의입니다.

강의가 끝나면 여러분은 스프링의 기본 기능을 잘 사용하는 것은 물론이고, 스프링의 본질에 대해서 깊이있는 이해를 하게 됩니다. 스프링의 본질을 이해한다는 것은 객체 지향 설계의 본질을 이해하는 것과 같습니다. 따라서 단순히 스프링의 기능만 사용하는 개발자에서 객체 지향 애플리케이션의 설계와 아키텍처 레벨까지 고민하는 개발자로 성장할 수 있습니다.

강의 대상

스프링 핵심 원리 강의는 스프링을 처음 접하는 개발자부터, 실무에서 스프링을 사용하지만 스프링의 핵심 원리를 제대로 이해하고 사용하고 싶은 개발자 분들을 위해서 준비했습니다. 그리고 객체지향 설계에 고민이 많은 개발자 분들에게도 도움이 됩니다.

강의명: 스프링 핵심 원리 - 중급편

  • 기본편은 객체 지향 설계와 스프링의 핵심 원리, 그리고 스프링을 사용할 때 필수로 알아야 하는 핵심 기능들을 다룹니다.
  • 중급편은 기본편에서 다루지 않은, 컨테이너 확장 포인트, AOP 동작 원리 같은 스프링의 난이도 있는 내용들을 주로 다룰 예정입니다. 따라서 기본편을 완전히 숙지하고 들어야 합니다. 출시 일정과 자세한 내용은 어느정도 정리가 되면 다시 공유드리겠습니다.

기대해주세요. 감사합니다^^

김영한 프로필
수강생 1만명 감사 할인 이벤트
김영한 27일 전

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

자바/스프링/JPA 강의를 시작한지 이제 1년이 조금 지났는데, 어느덧 확인해보니 수강생이 1만명을 넘었네요.
제 강의를 듣고 응원해주신 개발자분들께 진심으로 고맙다는 인사를 드립니다.

지난시간을 돌이켜 보면, 낮에는 회사일을 하고 저녁에는 아이들 재우고 남는 시간에 강의를 준비하면서 참 힘든 순간들이 많았습니다. 그나마 아내의 배려 덕분에 시간을 쪼개서 강의를 계속 준비할 수 있었습니다.

여러분 덕분에 지난 1년간 수강생 1만명을 포함해서 많은 일들을 이루었습니다.

자바 스프링 분야 수강평점 1위

힘들때 마다 여러분이 남겨주신 수강평과 질문에서 큰 힘을 얻었습니다.

어쩌면 그냥 지나칠 수도 있는데, 따뜻하고 소중한 수강평을 남겨주신 분들께 고마움을 전합니다. 강의를 듣고 현업에 잘 적용하고 있다는 개발자 분들의 이야기, 덕분에 개발이 더 재미있어졌다는 이야기, 취업준비에 도움이 되었다는 이야기, 신입 개발자인데 강의 덕분에 현업에 잘 적응했다는 이야기를 들으면서, 큰 보람을 느끼고 또 다음 강의를 준비할 힘을 얻습니다. 참 그리고 여러분 덕분에 자바 스프링 분에서 수강평점 1위를 달리고 있습니다. 진심으로 고맙습니다.

질문 답변 1000개

질문을 통해서 시니어, 주니어, 신입 개발자, 취업 준비생, 대학생 등등 다양한 계층의 개발자 분들과 소통하는 것도 저에게는 큰 즐거움입니다. 저도 신입, 주니어 시절에 어떻게 해야 개발을 더 잘 할 수 있을까? 항상 진지한 고민을 많이 했습니다. 비슷한 고민을 하고 또 질문하는 개발자 분들을 보면서 저도 다시 열정이 살아나고, 또 그분들께 제 경험을 나눌 수 있어서 기쁩니다. 방금 지금까지 질문에 답변한 글을 세어보니 약 1000개 정도 되네요.

여러분 사실 저는 개발을 정말 좋아하고, 여러분에게 하고 싶은 개발 이야기도 정말 많습니다. 제 개발 경험을 더 많이 나누고 싶고, 실무 최전선에서 있으면서 자바 스프링으로 진짜 제대로 개발하는 재미를 더 많이 보여 드리고 싶습니다.

할인 이벤트

지난 1년간 응원해주셔서 고맙습니다. 여러분의 감사에 보답하는 가장 좋은 방법은 할인이라 생각했습니다.
인프런 자체 할인 이벤트를 제외하고는 지금까지 20% 까지만 할인 했는데, 처음으로 25% 할인을 진행하겠습니다^^!

할인 기간: 지금부터 ~ 9월 13일(일요일)
할인율: 전 강의 25%
링크: https://www.inflearn.com/instructors/74366/courses

P.s: 스프링 핵심 원리 강의 소식

스프링 핵심 원리 강의는 정말 열심히 준비하고 있습니다. 현재 약 45강 정도 준비했고, 약 60강 정도로 마무리 될 것 같습니다. 어느정도 규모가 있지만, 진짜 핵심 원리를 깊이있게 파서 한방에 끝내는 것을 목표로 하고 있습니다.

모두 고맙습니다!!

김영한 프로필
실전! Querydsl 오픈 소식
김영한 7달 전

안녕하세요^^!

드디어 실전 시리즈를 완성하는 마지막 강의인 실전! Querydsl이 오픈 했습니다!

Querydsl은 스프링과 JPA에 이어서 제가 실무에서 가장 좋은 하는 기술 중 하나입니다. 

링크: https://www.inflearn.com/course/Querydsl-%EC%8B%A4%EC%A0%84

로드맵: https://www.inflearn.com/roadmaps/149

최신 자바 백엔드는 주로 스프링 부트와 JPA, 스프링 데이터 JPA를 조합해서 사용합니다. 그런데 이런 조합으로 해결하지 못하는 한계점이 바로 복잡한 쿼리동적 쿼리 문제입니다.

Querydsl은 자바 언어의 한계를 넘어서, 쿼리를 문자가 아니라 진짜 자바 코드로 작성할 수 있게 도와줍니다. 정말 많은 개발자들이 고민해온 동적 쿼리 문제를 깔끔하게 해결할 뿐만 아니라, 문법 오류도 컴파일 시점에 모두 잡아줍니다

복잡한 실무에서 스프링 데이터 JPA와 Querydsl의 조합은 선택이 아니라 필수입니다. Querydsl의 완전 기초부터 다양한 실무 프로젝트에서 쌓은 노하우들을 까지 Querydsl에 관한 모든 내용을 전달해 드립니다.

공유 많이 부탁드립니다^^!

추가로 학습계획을 위한 로드맵도 새로 구성했습니다^^!

로드맵을 등록해두시면 학습방향과 추가 강의 등록을 바로 확인할 수 있습니다. (할인 쿠폰도 가끔 나옵니다. ㅎㅎ)

로드맵: https://www.inflearn.com/roadmaps/149

다른 댓글 보기(1)
김영한 프로필
실전! Querydsl 오픈 예정 소식
김영한 9달 전

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

드디어 실전 시리즈의 마지막 강의인 실전! Querydsl 오픈 예정 소식을 전해드립니다^^

강의: 실전! Querydsl

오픈: 1월 중순(예정)

최근 자바 백엔드는 주로 스프링 부트와 JPA, 스프링 데이터 JPA를 조합해서 사용합니다. 그런데 이런 조합으로 해결하지 못하는 한계점이 바로 복잡한 쿼리와 동적 쿼리 문제입니다.

Querydsl은 자바 언어의 한계를 넘어서, 쿼리를 문자가 아니라 진짜 자바 코드로 작성할 수 있게 도와줍니다. 정말 많은 개발자들이 고민해온 동적 쿼리 문제를 깔끔하게 해결할 뿐만 아니라, 문법 오류도 컴파일 시점에 모두 잡아줍니다.

스프링 부트와 JPA라는 기반 위에, 스프링 데이터 JPA와 Querydsl이라는 두 환상적인 프레임워크를 더하면 개발이 정말 즐거워집니다. 지금까지 조금이라도 단순하고 반복이라 생각했던 개발 코드들이 확연히 줄어듭니다. 개발자는 핵심 비즈니스 로직을 개발하는데, 집중할 수 있습니다. 그리고 Querydsl 덕분에 쿼리를 작성하는 것 조차도 자바 코드로 작성할 수 있어서 즐겁습니다. 복잡한 실무에서 스프링 데이터 JPA와 Querydsl의 조합은 선택이 아니라 필수입니다.

실무에서 Querydsl을 어떻게 사용하면 좋은지 다양한 실무 프로젝트에서 쌓은 노하우들을 모두 전달해 드립니다. 기대해주세요^^!

querydsl이 궁금하신 분들은 2012년 한국 스프링 사용자 모임에서 제가 발표한 내용을 들어보세요. (너무 소시적이라 좀 부끄럽네요. 아직 서울말 패치 되기 전입니다. ㅎㅎ querydsl 버전도 과거 버전인 점은 감안해주세요.)

발표링크: https://www.youtube.com/watch?v=9Zu5SThOFKw

다른 댓글 보기(1)
김영한 프로필
실전! 스프링 데이터 JPA 오픈! 공지
김영한 9달 전

안녕하세요^^!

11월말 오픈으로 약속드린 실전! 스프링 데이터 JPA 강의를 오픈했습니다.

실전! 스프링 데이터 JPA

최근에 스프링 부트와 JPA에 대한 실무 활용 강의를 출시하고, 많은 분들이 스프링 데이터 JPA도 실무에서 어떻게 활용하는지 문의를 주셨습니다.

그래서 실무에서 스프링 데이터 JPA를 재대로 사용할 수 있는 강의를 만들었습니다.

실무에 꼭 필요한 기능 위주로 설명하고, 실무에 사용하기 부족한 기능은 과감하게 내용을 줄였습니다.

스프링 데이터 JPA를 처음 사용하거나 실무 활용법을 배우고 싶은 많은 분들께 도움이 되었으면 합니다.

공유 많이 부탁드립니다^^!

다른 댓글 보기(1)
김영한 프로필
실전! 스프링 데이터 JPA 오픈 예정 소식
김영한 10달 전

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

어느정도 준비가 되어서 다음 강의 계획을 전해드립니다.

강의: 실전! 스프링 데이터 JPA

오픈: 11월 말(예정)

추가로 실전! Querydsl 강의도 12월 오픈 목표로 준비중입니다.

처음 강의를 기획 했을 때, 다양한 실무 프로젝트에 스프링부트와 JPA를 적용하면서 배우고 느낀, 노하우를 여러분께 생생하게 전해드리고 싶었습니다. 그래서 먼저 JPA 기본기를 탄탄하게 다지고, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 개발하고, 성능을 최적화 하는 방법을 전해드렸습니다.

강의를 들으신 분들은 아시겠지만, 스프링 부트와 JPA만 사용해도 개발 생산성이 정말 많이 증가하고, 개발해야할 코드도 확연히 줄어듭니다. 여기에 스프링 데이터 JPA를 사용하면, 기존의 한계를 넘어 마치 마법처럼, 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있습니다. 그리고 반복적으로 개발해온 기본적인 CRUD 기능도 스프링 데이터 JPA가 모두 제공합니다.

Querydsl은 자바 언어의 한계를 넘어서, 쿼리를 문자가 아니라 진짜 자바 코드로 작성할 수 있게 도와줍니다. 정말 많은 개발자들이 고민해온 동적 쿼리 문제를 깔끔하게 해결할 뿐만 아니라, 문법 오류도 컴파일 시점에 모두 잡아줍니다.

스프링 부트와 JPA라는 기반 위에, 이 두 환상적인 프레임워크를 더하면 개발이 정말 즐거워집니다. 지금까지 조금이라도 단순하고 반복이라 생각했던 개발 코드들이 확연하게 줄어듭니다. 개발자는 핵심 비즈니스 로직을 개발하는데, 집중할 수 있습니다. 그리고 Querydsl 덕분에 쿼리를 작성하는 것 조차도 자바 코드로 작성할 수 있어서 즐겁습니다.

스프링 데이터 JPA를 강의에서 사용하지 않은 이유

스프링 데이터 JPA와 Querydsl은 제가 실무에서 항상 즐겨 사용하는 기술입니다. 그런데 제가 지금까지 진행한 다음 강의에서는 의도적으로 이 기술들을 사용하지 않았습니다.

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

* 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

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

스프링 데이터 JPA는 JPA를 정말 편리하게 사용하도록 도와주는 기술입니다. 하지만 JPA의 너무 많은 부분을 자동화하고 추상화 해버립니다. 따라서 JPA에 대한 이해 없이, 처음부터 스프링 데이터 JPA를 사용하면, 깊이있는 내부 동작 방식을 이해하기 어렵습니다.

그래서 실전! 스프링 데이터 JPA 강의에서는 순수하게 JPA로 개발한 코드를 먼저 보여드리고, 그 다음에 스프링 데이터 JPA로 변경해서 어떤 차이가 있는지 비교하는 식으로 진행합니다.

실무 위주

스프링 데이터 JPA는 너무 많은 기능을 제공합니다. 그리고 겉으로 보기에는 정말 멋지지만 아직 실무에서 사용하기에 부족한 기능들도 있습니다. 실무에서 자주 사용하는 기능 위주로 설명하고, 실무에서 사용하기에 아직은 부족한 기능들은 과감하게 내용을 줄였습니다.  그리고 가장 중요한 실무에서 스프링 데이터 JPA를 어떻게 사용하면 좋은지 다양한 실무 노하우들을 녹였습니다.

기대해주세요^^ 감사합니다.

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