Thumbnail
BEST 개발 · 프로그래밍 백엔드
스프링 핵심 원리 - 고급편
(5.0)
52개의 수강평 ∙ 1974명의 수강생
121,000원

월 24,200원

5개월 할부 시
지식공유자 : 김영한
총 125개 수업˙총 16시간 41분
평생 무제한 수강
수료증 발급 강의
입문 초급 중급이상 대상
폴더에 추가 1048 공유
중급자를 위해 준비한
[백엔드, 웹 개발] 강의입니다.

스프링의 핵심 원리와 고급 기술들을 깊이있게 학습하고, 스프링을 자신있게 사용할 수 있습니다.

✍️
이런 걸
배워요!
핵심 디자인 패턴
스프링 고급 기능
스프링 AOP

핵심 디자인 패턴, 쓰레드 로컬, 스프링 AOP
스프링의 3가지 핵심 고급 개념 이해하기

📢 수강 전 확인해주세요!

  • 본 강의는 자바 스프링 완전 정복 시리즈의 여섯 번째 강의입니다. 우아한형제들 개발팀장 김영한의 스프링 완전 정복 로드맵을 먼저 확인해주세요. (바로가기)

 

스프링 핵심 원리 - 기본편

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

스프링 핵심 원리 - 고급편 현재 강의

  • 스프링 핵심 디자인 패턴
    • 템플릿 메서드 패턴, 전략 패턴, 템플릿 콜백 패턴, 프록시 패턴, 데코레이터 패턴
  • 쓰레드 로컬
    • 동시성 문제, 멀티쓰레드, 쓰레드 로컬
  • 스프링 AOP
    • 개념, 동작 원리, 실전 예제, 주의 사항

김영한의 스프링 핵심 원리 고급편
핵심 디자인 패턴, 쓰레드 로컬, 스프링 AOP

실무에서 가장 많이 사용하는 기술
스프링 프레임워크

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

스프링 핵심 원리
기본에서 고급으로

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

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


스프링 핵심 원리
고급편

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

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

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

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

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

2. 쓰레드 로컬

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

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

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

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

3. 스프링 AOP

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

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

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

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

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

기타

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

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

이 강의를
시작하기 전에

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


이 강의를
이런 분들께 추천합니다

스프링을 더 깊게
알고 싶은데…

스프링의 고급 개념을
학습함으로써 실력을
더 키우고 싶은 분

스프링 AOP를
사용하기는 하는데…

스프링 AOP의 동작
원리를 정확하게
이해하고 싶은 분

스프링을 코드로
이해하고 싶은데

디자인 패턴을 통해
스프링의 내부 기술을
이해하고 싶은 분

스프링으로 웹 앱을
만들 생각인데

쓰레드 로컬을 통해
스프링 동시성 문제를
이해하고 싶은 분


앞으로 이어질
스프링 완전 정복 시리즈

스프링을 완전히 마스터할 수 있는 시리즈를 준비하고 있습니다. 실제 실무에서 사용하는 핵심 스프링 기능을 중심으로, 실무에서 쓰이지 않거나 오래된 기능은 과감하게 생략한 실무 노하우를 전수해드릴 예정입니다.

강의 순서


이 강의와 관련된
강의 로드맵

김영한의 스프링 완전 정복 시리즈
스프링 핵심 원리~실전 활용이 강의 포함

스프링 부트 + JPA 실무 완전 정복
내공있는 백엔드 최신 실무 기술실전 심화편


지식공유자가 알려주는
강의 수강 꿀팁!
🎓
이런 분들께
추천드려요!
스프링을 깊이있게 이해하고 싶은 개발자
스프링을 코드로 쉽게 이해하고 싶은 개발자
개발자 취업 준비생
스프링을 공부했지만 어려워서 포기했던 개발자
실무에서 스프링을 사용하지만 스프링의 핵심 원리를 제대로 이해하고 사용하고 싶은 개발자
📚
선수 지식,
필요한가요?
자바 언어
스프링 핵심 원리 - 기본편

안녕하세요
김영한 입니다.
김영한의 썸네일
커리큘럼 총 125 개 ˙ 16시간 41분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 소개
강의 소개 미리보기 03:02
수업 자료
강의 소스 코드
섹션 2. 쓰레드 로컬 - ThreadLocal
필드 동기화 - 개발 미리보기 12:37
필드 동기화 - 적용 05:01
필드 동기화 - 동시성 문제 06:03
동시성 문제 - 예제 코드 18:05
ThreadLocal - 소개 미리보기 03:03
ThreadLocal - 예제 코드 05:38
쓰레드 로컬 동기화 - 개발 06:10
쓰레드 로컬 동기화 - 적용 03:12
쓰레드 로컬 - 주의사항 04:16
정리 03:34
섹션 3. 템플릿 메서드 패턴과 콜백 패턴
템플릿 메서드 패턴 - 시작 07:23
템플릿 메서드 패턴 - 예제1 03:29
템플릿 메서드 패턴 - 예제2 10:15
템플릿 메서드 패턴 - 예제3 04:45
템플릿 메서드 패턴 - 적용1 12:39
템플릿 메서드 패턴 - 적용2 05:10
템플릿 메서드 패턴 - 정의 06:47
전략 패턴 - 시작 01:46
전략 패턴 - 예제1 11:02
전략 패턴 - 예제2 09:47
전략 패턴 - 예제3 11:16
템플릿 콜백 패턴 - 시작 04:46
템플릿 콜백 패턴 - 예제 04:12
템플릿 콜백 패턴 - 적용 12:42
정리 06:30
섹션 4. 프록시 패턴과 데코레이터 패턴
프로젝트 생성 03:14
예제 프로젝트 만들기 v1 15:27
예제 프로젝트 만들기 v2 05:50
예제 프로젝트 만들기 v3 04:44
요구사항 추가 03:03
프록시, 프록시 패턴, 데코레이터 패턴 - 소개 12:59
프록시 패턴 - 예제 코드1 05:21
프록시 패턴 - 예제 코드2 08:03
데코레이터 패턴 - 예제 코드1 03:46
데코레이터 패턴 - 예제 코드2 06:03
데코레이터 패턴 - 예제 코드3 05:31
프록시 패턴과 데코레이터 패턴 정리 04:37
인터페이스 기반 프록시 - 적용 24:42
구체 클래스 기반 프록시 - 예제1 03:34
구체 클래스 기반 프록시 - 예제2 08:42
구체 클래스 기반 프록시 - 적용 13:14
인터페이스 기반 프록시와 클래스 기반 프록시 05:10
정리 05:35
섹션 5. 동적 프록시 기술
리플렉션 18:45
JDK 동적 프록시 - 소개 02:57
JDK 동적 프록시 - 예제 코드 17:18
JDK 동적 프록시 - 적용1 14:17
JDK 동적 프록시 - 적용2 06:48
CGLIB - 소개 02:50
CGLIB - 예제 코드 12:16
정리 04:56
섹션 6. 스프링이 지원하는 프록시
프록시 팩토리 - 소개 07:20
프록시 팩토리 - 예제 코드1 12:41
프록시 팩토리 - 예제 코드2 07:40
포인트컷, 어드바이스, 어드바이저 - 소개 05:08
예제 코드1 - 어드바이저 05:35
예제 코드2 - 직접 만든 포인트컷 09:13
예제 코드3 - 스프링이 제공하는 포인트컷 03:04
예제 코드4 - 여러 어드바이저 함께 적용 11:01
프록시 팩토리 - 적용1 08:24
프록시 팩토리 - 적용2 03:44
정리 05:57
섹션 7. 빈 후처리기
빈 후처리기 - 소개 미리보기 03:51
빈 후처리기 - 예제 코드1 06:25
빈 후처리기 - 예제 코드2 12:03
빈 후처리기 - 적용 16:32
빈 후처리기 - 정리 04:59
스프링이 제공하는 빈 후처리기1 14:41
스프링이 제공하는 빈 후처리기2 08:27
하나의 프록시, 여러 Advisor 적용 03:22
정리 03:08
섹션 8. @Aspect AOP
@Aspect 프록시 - 적용 09:10
@Aspect 프록시 - 설명 07:35
정리 01:09
섹션 9. 스프링 AOP 개념
섹션 10. 스프링 AOP 구현
프로젝트 생성 04:42
예제 프로젝트 만들기 04:55
스프링 AOP 구현1 - 시작 08:21
스프링 AOP 구현2 - 포인트컷 분리 03:50
스프링 AOP 구현3 - 어드바이스 추가 10:00
스프링 AOP 구현4 - 포인트컷 참조 03:14
스프링 AOP 구현5 - 어드바이스 순서 05:39
스프링 AOP 구현6 - 어드바이스 종류 28:06
정리 01:58
섹션 11. 스프링 AOP - 포인트컷
포인트컷 지시자 03:15
예제 만들기 07:26
execution - 1 11:53
execution - 2 13:01
within 05:06
args 07:10
@target, @within 13:40
@annotation, @args 04:22
bean 03:34
매개변수 전달 16:00
this, target 22:40
정리 04:32
섹션 12. 스프링 AOP - 실전 예제
예제 만들기 04:35
로그 출력 AOP 04:09
재시도 AOP 12:08
정리 03:40
섹션 13. 스프링 AOP - 실무 주의사항
프록시와 내부 호출 - 문제 13:28
프록시와 내부 호출 - 대안1 자기 자신 주입 06:32
프록시와 내부 호출 - 대안2 지연 조회 04:45
프록시와 내부 호출 - 대안3 구조 변경 06:04
프록시 기술과 한계 - 타입 캐스팅 11:05
프록시 기술과 한계 - 의존관계 주입 10:48
프록시 기술과 한계 - CGLIB 04:44
프록시 기술과 한계 - 스프링의 해결책 07:29
정리 04:36
섹션 14. 다음으로
다음으로 35:50
강의 게시일 : 2021년 10월 27일 (마지막 업데이트일 : 2021년 10월 27일)
수강평 총 52개
수강생분들이 직접 작성하신 수강평입니다. 수강평을 작성 시 300잎이 적립됩니다.
5.0
52개의 수강평
5점
4점
3점
2점
1점
VIEW 좋아요 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
JongSeong Kim thumbnail
영한님의 강의는 문을 열어주는 강의가 아닌 문고리를 잡고 돌리는 법을 알려주는 강의인 것 같습니다. 항상 좋은 강의 보여주셔서 감사합니다 ㅠㅠ
2021-11-16
지식공유자김영한
JongSeong Kim님 멋진 비유 감사합니다^^!
2021-11-16
소라연 thumbnail
고급 기술을 정말 쉽게 알려주시네요. 덕분에 즐겁게 완강 했습니다. ^^
2021-11-17
지식공유자김영한
소라연님 고급편도 들으셨군요^^ 항상 열심히 공부하시고 또 수강평도 남겨주셔서 고맙습니다.
2021-11-17
Charlie T thumbnail
스프링 AOP 교육 마스터피스. 최고의 강의 드릴 수 있는 최대 별 갯수가 5개밖에 되지 않아 강사님께 죄송할 뿐입니다.. 좋은 강의 정말 감사드립니다. 사족을 달자면 강사님의 코드를 따라 실습한 뒤에 나중에 따로 SpringObjenesis, CGLIB와 JDK 동적 프록시 등의 내부 구현 로직도(ProxyFactory, ObjenesisCglibAopProxy 등) 같이 디버깅해가며 보면 훨씬 더 많은 것을 얻어가실 수 있을 것 같습니다. 개인적으로 ProxyFactory proxyFactory = ProxyFactory(인터페이스없는컴포넌트);로 초기화하는 순간을 디버깅하여 CGLIB의 Enhancer까지 타고들어가 규칙에 맞게 여러가지 절차를 거쳐 최종적으로 getProxy()의 결과값으로 프록시 객체를 생성 및 반환할 때 objenesis를 사용하는 것을 눈으로 직접 보게 되었는데, 강사님의 강의를 보기전이었다면 해당 워크플로우의 윤곽을 전혀 알지 못해 아무것도 이해하지 못했을 겁니다.. 또한 EnableAspectJAutoProxy와 관련된 AspectJAutoProxyRegistrar 클래스가 @Aspect 애너테이션이 붙은 타입들을 가져오고, 이어지는 로직에서 BeanPostProcessor를 사용해 실제 객체 대신 프록시 객체들을 스프링빈으로 등록해주는 과정도 따로 찾아보는 동안 스프링 aop에 대한 이해가 많이 향상됨을 느꼈습니다. 큰 그림을 먼저 보여주심으로써 실제 로직의 세부동작방식을 이해할 수 있도록 해주신 점 깊이 감사드립니다.
2021-11-07
지식공유자김영한
Charlie T님 열심히 들어주셔서 고맙습니다. 이런 수강평 덕분에 또 다음 강의를 준비할 힘을 얻게 되네요^^!
2021-11-07
!? thumbnail
토비의 스프링 6장 보고 멘붕와서 잠시 책을 덮었었는데 이 강의 완강하고 다시 펴러 가야겠습니다. 완강 후기) 처음에는 125강이라는 강의 규모에 압도되었는데 왜 이렇게 강의 규모가 커진지 들으면서 이해가 되었습니다. 강의 마지막에 하신 말씀처럼 더욱 많은 코드를 접하고 더욱 많은 레퍼런스들을 보면서 힘내보겠습니다. 이제 이해가 부족한 다른 디자인 패턴에 대해서 공부하러 가야겠습니다. 다음 강의때 더 나아진 모습으로 들으러 오겠습니다.^^
2021-10-28
지식공유자김영한
!?님 첫 수강평 감사합니다^^ 항상 응원합니다!
2021-10-28
김준호 thumbnail
마지막 말씀이 크게 와 닿습니다~ 꼭 인생 선배님과 술 한 잔 하며 듣는 잔소리가 아닌 몸에좋은 쓰디 쓴 약 같은 조언처럼 느껴졌습니다. 저도 항상 겸손이 중요하다 생각하면서도 가끔은 못 지킬때도 있었는데 다시금 되새기게 되는 계기가 된것 같습니다. 강의 내용 역시 완강 전의 저 보다 몇단계는 레벨업 한 느낌이 기분탓이 아닌게 확연히 느껴지는 집니다. 다음 강의도 잘 부탁드립니다~ 감사합니다~
2021-11-10
지식공유자김영한
김준호님 열심히 들어주셔서 고맙습니다^^! 기술적 겸손함을 가지고 크게 성장하시길 응원합니다!
2021-11-10
121,000원

월 24,200원

5개월 할부 시
폴더에 추가 1048 공유
지식공유자 : 김영한
총 125개 수업˙총 16시간 41분
평생 무제한 수강
수료증 발급 강의
입문 초급 중급이상 대상
수강 전 궁금한 점이 있나요?
문의하기
연관 로드맵
이 강의가 포함된 잘 짜여진 로드맵을 따라 학습해 보세요!
문의
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의를
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스