BEST

Spring Core Principles - Advanced

You will learn the core principles and advanced technologies of Spring in depth and be able to use Spring confidently.

(5.0) 705 reviews

19,364 students

Spring
Design Pattern

This course is prepared for Intermediate Learners.

What you will learn!

  • Core Design Patterns

  • Spring Advanced Features

  • Spring AOP

Core design patterns, thread local, Spring AOP
Understanding 3 Core Advanced Concepts of Spring

📢 Please check before taking the class!

  • This lecture is the 8th lecture in the Java Spring Complete Conquest series. Please check the Spring Complete Conquest roadmap by Younghan Kim, the youngest technical director of Woowa Brothers. (Go to)

 

Spring Core Principles - Basics

  • Object-oriented design and spring
    • SOLID - SRP, OCP, DIP
  • Spring Container and Spring Beans
    • Spring Container - IoC, DI
    • Dependency Injection
    • Empty creation cycle and scope

Spring Core Principles - Advanced Current Lecture

  • Spring Core Design Patterns
    • Template method pattern, strategy pattern, template callback pattern, proxy pattern, decorator pattern
  • Thread local
    • Concurrency issues, multithreading, thread locals
  • Spring AOP
    • Concepts, operating principles, practical examples, cautions

Kim Young-han's Spring Core Principles Advanced Edition
Core design patterns, thread local, Spring AOP

The most commonly used technique in practice
Spring Framework

To become a skilled developer, you need to have a deep understanding of the tools you frequently use in your work.
Spring is the most widely used backend technology in practice.
Therefore, it is important for backend developers to have a deep understanding of Spring.

Spring Core Principles
From basic to advanced

We learned the basics of Spring and object-oriented development in Spring Core Principles - Fundamentals .
To deeply understand Spring and become a capable developer in practice, you need to learn three key advanced concepts based on what you learned in the basics. In this Spring Core Principles - Advanced, you will learn these advanced concepts.

1. Spring Core Design Patterns
2. Thread locals to deal with concurrency issues
3. Spring AOP


Spring Core Principles
Advanced

1. Spring Core Design Patterns

Spring's internal technologies are built around several core design patterns. Therefore, in order to understand Spring in depth, you must first learn the core design patterns that Spring frequently uses.

Core design patterns taught in lectures

  • Template Method Pattern
  • Strategy Patterns
  • Template callback pattern
  • Proxy pattern
  • Decorator pattern

In this lecture, we will explain these design patterns very easily by creating example codes one by one. And we will also learn how to apply the design patterns learned in this way to applications.

2. Thread local

Spring is mainly used for developing web applications. Web applications use multi-threading to handle multiple requests at the same time. Therefore, concurrency issues can occur where multiple threads compete.

Concurrency issues and thread local content covered in the lecture

  • Web Application
  • Multithread
  • Concurrency issues

In this lecture, you will learn about concurrency issues that occur when using Spring, and also learn about the concept of thread locals that can conveniently solve concurrency issues.
Thread locals are an essential concept to understand how Spring works well in a multithreaded environment without concurrency issues.

3. Spring AOP

Spring AOP is a very useful technology that is used a lot in practice and feels like magic. Many developers use Spring AOP, but not many developers understand and use the principles of how Spring AOP works.

Beyond simply knowing and using the features of Spring AOP, you need to deeply understand the operating principles of Spring AOP to be able to solve fundamental problems when failures occur.

Spring AOP content delivered in lecture

  • Concepts, Glossary
  • Proxy - JDK dynamic proxy, CGLIB
  • How it works
  • Practical examples
  • Practical Notes

In this lecture, we will go beyond a simple summary of Spring AOP's functions and cover everything about Spring AOP, from its operating principles to practical examples and precautions that frequently arise in practice.

etc

Additionally, we will also provide you with advanced techniques for developing Spring containers, such as bean postprocessing, and various practical tips for developing Spring applications.

  • Extension points in the Spring container - empty postprocessors
  • Various practical tips for developing Spring applications

This lecture
Before you start

As this is an advanced course, the content covered in this lecture is not easy.
However , if you want to become a skilled backend developer, this is something you must study at least once .
If you follow this lecture to the end without giving up, you will experience a tremendous increase in your skills as a developer and be able to use Spring more confidently than anyone else.
Since this is a difficult subject, I have thoroughly prepared the lecture. I will help you complete this content on your own.


This lecture
I recommend this to these people

Spring deeper
I want to know…

Advanced concepts of Spring
Improve your skills by learning
Anyone who wants to grow more

Spring AOP
I do use it though…

How Spring AOP works
The principle is precise
Anyone who wants to understand

Spring to Code
I want to understand

Through design patterns
Spring's internal technology
Anyone who wants to understand

Web App with Spring
I'm thinking of making it

Via thread locals
Spring concurrency issues
Anyone who wants to understand


To be continued in the future
Spring Complete Conquest Series

We are preparing a series that will allow you to completely master Spring. We will teach you practical know-how, focusing on core Spring functions used in actual practice, boldly omitting functions that are not used in practice or are outdated.

Lecture order


Related to this lecture
Lecture Roadmap

Kim Young-han's Spring Complete Conquest Series
Spring Core Principles~Practical Applications This lecture includes

Complete mastery of Spring Boot + JPA practices
The latest practical backend technology with internal strength


Recommended for
these people!

Who is this course right for?

  • Developers who want to understand Spring in depth

  • Developers who want to easily understand Spring through code

  • Developer job seeker

  • A developer who studied Spring but gave up because it was difficult

  • Developers who use Spring in practice but want to properly understand and use the core principles of Spring

Need to know before starting?

  • Java language

  • Spring Core Principles - Basics

Hello
This is yh

531,149

Students

32,919

Reviews

8,844

Answers

5.0

Rating

22

Courses

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

More

Curriculum

All

125 lectures ∙ (16hr 44min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

705 reviews

5.0

705 reviews

  • 김필환

    Reviews 19

    Average Rating 5.0

    5

    100% enrolled

    이번에는 정말 길었네요. 드디어 스프링의 3대 기술중 하나인 AOP를 이해를 할 수 있어서 너무 기뻤습니다. 마치 C언어의 포인터 처럼 저한테는 난공불락(?) 의 기술 같았거든요. 이번에도 차근차근 설명해주시는 것이 너무 좋았습니다. 이정도로 AOP 를 쉽게 가르쳐 주는 강의나 책은 아마 없을거 같습니다. 스프링을 본격적으로 알고 싶으신 분은 꼭 보셔야 합니다. 그리고 영한님께 감사 인사로 저의 스프링 개발자 도전기를 쓰려고 합니다. ============== 무언가 새로운 시도를 할 때는 처음에 정말 많은 에너지가 필요합니다. ...(중략)... 우선 공부하는 습관을 만드는게 정말 중요합니다. 그리고 개발 공부는 특히 모든 것을 실행해보고, 코딩해봐야 합니다. 책만 읽고 강의만 듣기만 해서는 절대 자기것이 안됩니다. 공부는 평일 3~4시간, 주말 8시간씩 꾸준하게 하시는 것을 추천드립니다. ============== 2020년 10월. 지금까지 python 개발자로 지내면서 제 커리어에 한계상황임을 인정하고 Spring 백엔드 쪽으로 커리어를 틀고 싶다고 영한님께 조언을 구하는 메일을 보냈습니다. 그 때 영한님께 위와 같은 답변을 받았습니다. 조금은 충격이었고, 많은 각오가 필요하겠구나 라고 느꼈습니다. 연차로 보면 이미 시니어 레벨로 접어든 상황이고, 어중간하게 java 에 대해 알고 있던 터라 도전은 정말 쉽지 않았습니다. 번번히 면접에서 낙방을 거듭했습니다. 작년 초 우아한 형제들의 면접에서 떨어졌을 땐 거의 1달 반 공부가 잘 안되었던 걸로 기억나네요. 영한님이 말한대로 3~4시간은 현실적으로는 어려웠지만 그 중 절반정도라도 하려고 했던거 같습니다. 사실 면접 중에서 여기 강의 내용이 자주 나온 건 아니었지만 영한님이 다루시는 강의 내용 덕에 더 깊게 백엔드 기술을 보는 눈이 길러진 것이 제일 도움이 되었던 것 같습니다. 그리고 훨씬 높은 기준으로 공부해야 한다는 사실도 말이죠. (강의에서 파생되는 것을 자기 것으로 만들려고 노력했던 거 같습니다.) 저의 노력이 통했는지... 올해 3월 말에 네카라쿠배 중 한 곳으로 가게 되었습니다. 아직 저 자신은 부족하다고 느끼지만 정말 길었던 1년 반의 준비기간이 끝나고 기회가 주어지니 설레기도 하고, 조금 걱정도 됩니다. 코로나가 끝나고 저도 새로운 자리에 적응될때 쯤 직접 감사인사 드리러 가겠습니다. 영한님 감사드립니다.

    • 김영한
      Instructor

      필환님 진심으로 축하드려요. 누구나 순간적인 열정을 가지기는 쉽지만, 필환님 처럼 그것을 습관으로 만들고 시스템화해서 지속가능하게 이어가는 것은 쉽지 않다 생각합니다. 특히 지금까지 개발한 언어도 자바가 아니고, 경력도 많으셔서 일반적인 주니어 개발자보다 좋은 회사에 취업하는 것이 더 불리한 상황이라 생각했습니다. 그런면에서 필환님 스스로 얼마나 노력하셨는지가 보이고, 스스로 만들어낸 큰 성과라 생각합니다. 그리고 경력이 많으셔서 기본기 보다는 실제 활용이 어떻게 되는지를 실무에서 많이 물어보았을 것인데, 이런 부분들까지 커버되도록 강의 내용을 단순히 학습하는 것을 넘어서 체득하신 것도 잘 하신 것이라 생각합니다. 현재 대부분의 회사들이 개발자가 부족하기 때문에 제가 필환님께 드린 조언처럼 공부해서 그에 상응하는 실력만 갖추게 된다면 누구나 좋은 회사에 취업할 수 있다 생각합니다. 마지막으로 저에게도 취업과 이직에서 힘든 나날들이 있었는데, 필환님의 글이 취업이나 이직을 준비하는 분들께는 정말 큰 힘이 될 것이라 생각합니다. 진심으로 고맙습니다.

  • Charlie

    Reviews 13

    Average Rating 4.6

    5

    100% enrolled

    스프링 AOP 교육 마스터피스. 최고의 강의 드릴 수 있는 최대 별 갯수가 5개밖에 되지 않아 강사님께 죄송할 뿐입니다.. 좋은 강의 정말 감사드립니다. 사족을 달자면 강사님의 코드를 따라 실습한 뒤에 나중에 따로 SpringObjenesis, CGLIB와 JDK 동적 프록시 등의 내부 구현 로직도(ProxyFactory, ObjenesisCglibAopProxy 등) 같이 디버깅해가며 보면 훨씬 더 많은 것을 얻어가실 수 있을 것 같습니다. 개인적으로 ProxyFactory proxyFactory = ProxyFactory(인터페이스없는컴포넌트);로 초기화하는 순간을 디버깅하여 CGLIB의 Enhancer까지 타고들어가 규칙에 맞게 여러가지 절차를 거쳐 최종적으로 getProxy()의 결과값으로 프록시 객체를 생성 및 반환할 때 objenesis를 사용하는 것을 눈으로 직접 보게 되었는데, 강사님의 강의를 보기전이었다면 해당 워크플로우의 윤곽을 전혀 알지 못해 아무것도 이해하지 못했을 겁니다.. 또한 EnableAspectJAutoProxy와 관련된 AspectJAutoProxyRegistrar 클래스가 @Aspect 애너테이션이 붙은 타입들을 가져오고, 이어지는 로직에서 BeanPostProcessor를 사용해 실제 객체 대신 프록시 객체들을 스프링빈으로 등록해주는 과정도 따로 찾아보는 동안 스프링 aop에 대한 이해가 많이 향상됨을 느꼈습니다. 큰 그림을 먼저 보여주심으로써 실제 로직의 세부동작방식을 이해할 수 있도록 해주신 점 깊이 감사드립니다.

    • 김영한
      Instructor

      Charlie T님 열심히 들어주셔서 고맙습니다. 이런 수강평 덕분에 또 다음 강의를 준비할 힘을 얻게 되네요^^!

  • JongSeong Kim

    Reviews 2

    Average Rating 5.0

    5

    33% enrolled

    영한님의 강의는 문을 열어주는 강의가 아닌 문고리를 잡고 돌리는 법을 알려주는 강의인 것 같습니다. 항상 좋은 강의 보여주셔서 감사합니다 ㅠㅠ

    • 김영한
      Instructor

      JongSeong Kim님 멋진 비유 감사합니다^^!

  • !?

    Reviews 41

    Average Rating 4.9

    5

    100% enrolled

    토비의 스프링 6장 보고 멘붕와서 잠시 책을 덮었었는데 이 강의 완강하고 다시 펴러 가야겠습니다. 완강 후기) 처음에는 125강이라는 강의 규모에 압도되었는데 왜 이렇게 강의 규모가 커진지 들으면서 이해가 되었습니다. 강의 마지막에 하신 말씀처럼 더욱 많은 코드를 접하고 더욱 많은 레퍼런스들을 보면서 힘내보겠습니다. 이제 이해가 부족한 다른 디자인 패턴에 대해서 공부하러 가야겠습니다. 다음 강의때 더 나아진 모습으로 들으러 오겠습니다.^^

    • 김영한
      Instructor

      !?님 첫 수강평 감사합니다^^ 항상 응원합니다!

  • OMG

    Reviews 205

    Average Rating 5.0

    5

    100% enrolled

    서포터즈 이후 처음으로 강의(메뉴얼)에 조금이나마 기여한 부분이 있어 이전의 강의보다 의미있는 고급편 강의였습니다. 앞으로도 좋은 강의 잘 부탁드립니다 :)

    • 김영한
      Instructor

      OMG님 항상 열심히 공부하시고, 또 서포터즈 활동도 열심히 해주셔서 진심으로 고맙습니다!

yh's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!

$93.50