강의

멘토링

로드맵

BEST
Programming

/

Back-end

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) 767 reviews

19,787 learners

  • yh
네카라쿠배
시니어의 비법
Spring
Design Pattern

Reviews from Early Learners

What you will learn!

  • Core Design Patterns

  • Spring Advanced Features

  • Spring AOP

Core design patterns, thread locality, Spring AOP
Understanding Spring's Three Core Advanced Concepts

📢 Please check before taking the class!

  • This lecture is the eighth in the "Complete Java Spring Mastery" series. First, check out the Spring Mastery Roadmap from Younghan Kim, the youngest technical director at Woowa Brothers. (Go to)

Spring Core Principles - Fundamentals

  • Object-oriented design and Spring
    • SOLID - SRP, OCP, DIP
  • Spring Container and Spring Bean
    • 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 locality
  • Spring AOP
    • Concepts, operating principles, practical examples, and precautions

Kim Young-han's Advanced Spring Core Principles
Core design patterns, thread locality, 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 previously learned the basics of Spring and object-oriented development in Spring Core Principles - Fundamentals .
To deeply understand Spring and become a competent developer in the field, you need to understand three key advanced concepts, building on what you learned in the basics. In this "Spring Core Principles - Advanced" chapter, you'll learn these advanced concepts.

1. Spring Core Design Patterns
2. Thread locals to handle 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, to gain a deeper understanding of Spring, you must first understand the core design patterns it frequently employs.

Key design patterns taught in lectures

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

In this lecture, we'll explain these design patterns in a very easy-to-understand way, creating example code one by one. We'll also learn how to apply the design patterns we've learned to your own applications.

2. Thread local

Spring is primarily used for web application development. Web applications use multithreading to handle multiple requests simultaneously. Therefore, concurrency issues can arise due to competing threads.

Concurrency issues and thread locals covered in the lecture

  • web application
  • multithreading
  • concurrency issues

In this lecture, you will learn about concurrency issues that arise when using Spring, and also learn about the concept of thread locals, which 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 technology so widely used in practice that it feels almost magical. While many developers use Spring AOP, few truly understand how it works.

Beyond simply knowing and using Spring AOP's features, you need to deeply understand the operating principles of Spring AOP to be able to fundamentally resolve problems when they occur.

Spring AOP content delivered in lecture

  • Concepts and Terminology
  • Proxy - JDK dynamic proxy, CGLIB
  • How it works
  • Practical examples
  • Practical Precautions

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 provide you with advanced techniques for developing Spring containers, such as bean postprocessors, and various practical tips for developing Spring applications.

  • Extension Points in Spring Containers - Bean Postprocessors
  • Various practical tips for developing Spring applications

This lecture
Before you start

As this is an advanced course, the topics covered in this course are 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 course through to the end without giving up, you will experience a tremendous increase in your skills as a developer and be able to use Spring with more confidence than anyone else.
As this is a difficult subject, I've thoroughly prepared this lecture. I'll help you master it and make it 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
Those who want to grow more

Spring AOP
I do use it though…

How Spring AOP works
The principle is accurate
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
...

Through thread locals
Spring concurrency issues
Anyone who wants to understand


To be continued in the future
Spring Complete Conquest Series

We're preparing a series designed to help you master Spring completely. We'll focus on core Spring features used in real-world applications, boldly omitting obsolete or outdated features, and provide practical know-how.

Lecture order


Related to this lecture
Lecture Roadmap

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

Complete mastery of Spring Boot + JPA practices
Advanced Practical Training on the Latest Backend Technologies


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

559,469

Learners

36,767

Reviews

8,971

Answers

5.0

Rating

25

Courses

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

Curriculum

All

125 lectures ∙ (16hr 44min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

767 reviews

5.0

767 reviews

  • pilhwankim님의 프로필 이미지
    pilhwankim

    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年半の準備期間が終わって機会が与えられるので、ときめきもして、少し心配もあります。 コロナが終わり、私も新しい席に適応するとき、ご自身で感謝の気持ちをさせていただきます。ヨンハンありがとうございます。

    • yh
      Instructor

      私は心からおめでとうございます。 誰でも瞬間的な情熱を持つのは簡単ですが、必ファン様のようにそれを習慣にしてシステム化して持続可能につながるのは容易ではないと思います。 特にこれまでに開発した言語もJavaではなく、キャリアも多く、一般的なジュニア開発者よりも良い会社に就職する方が不利な状況だと思いました。 そんな面で必ファン様自らどれくらい努力されたのかが見え、自ら作り出した大きな成果だと思います。 そして、キャリアが多くて基本技より実際の活用がどうなるかを実務でたくさん聞いてみたはずですが、こういう部分までカバーされるように講義の内容を単に学習することを超えて体得されたのも上手くいったと思います。 現在、ほとんどの会社が開発者が不足しているので、私が必ファン様に申し上げたアドバイスのように勉強して、それに相当する実力だけを備えるようになれば誰でも良い会社に就職できると思います。 最後に私にも就職と離職で大変な日々がありましたが、必ファン様の文が就職や離職を準備する方には本当に大きな力になると思います。誠にありがとうございます。

  • find1086님의 프로필 이미지
    find1086

    Reviews 14

    Average Rating 4.6

    5

    100% enrolled

    Spring AOPトレーニングマスターピース。最高の講義 できる最大星数は5つしかありません。 講師に申し訳ありません。良い講義に感謝します。 死族をつければ講師のコードに従って練習した後、後で別々にSpringObjenesis、CGLIBやJDK動的プロキシなどの内部実装ロジック図(ProxyFactory、ObjenesisCglibAopProxyなど)のようにデバッグしていくと見ればはるかに多くを得ることができるようです。 個人的に ProxyFactory proxyFactory = ProxyFactory(インタフェースレスコンポーネント); で初期化する瞬間をデバッグして CGLIB の Enhancer まで乗り込んでルールに合うように様々な手順を経て最終的に getProxy() の結果値でプロキシオブジェクトを生成して返すとき objenesisを使うことを目で直接見るようになりましたが、講師の講義を見る前だったら、そのワークフローの輪郭を全く知らず、何も理解できなかったでしょう。 また、EnableAspectJAutoProxyに関連するAspectJAutoProxyRegistrarクラスが@Aspectアナテーション付きの型を取得し、続くロジックでBeanPostProcessorを使用して実際のオブジェクトではなくプロキシオブジェクトをSpringBinとして登録するプロセスも別々に探索しながら、Spring aopの理解が大幅に向上することを感じました。 大きな絵を先に見せてくださることで、実際のロジックの詳細動作方式を理解できるようにしてくださったことに深く感謝します。

    • yh
      Instructor

      Charlie Tさん頑張ってくれてありがとう。こういう受講評のおかげでまた次の講義を準備する力を得るようになりますね^^!

  • saintbeller96님의 프로필 이미지
    saintbeller96

    Reviews 2

    Average Rating 5.0

    5

    33% enrolled

    ヨンハン様の講義は、ドアを開いてくれる講義ではなく、ドアをつかみ回す方法を教えてくれる講義のようです。いつも良い講義を見せてくれてありがとう。

    • yh
      Instructor

      JongSeong Kimさん素敵なたとえ話ありがとうございます^^!

  • 34242344님의 프로필 이미지
    34242344

    Reviews 41

    Average Rating 4.9

    5

    100% enrolled

    トビーのスプリング6枚見てメンブン来てしばらく本を覆いましたが、この川の頑強でまた伸びに行かなければなりません。 頑強後期) 最初は125強という川の規模に圧倒されたのですが、なぜこのように川の規模が大きくなったのかを聞きながら理解になりました。 講義の終わりに言ったように、より多くのコードに触れ、より多くのリファレンスを見ながら頑張りましょう。 さて、理解が不十分な他のデザインパターンについて勉強しに行かなければなりません。 次の講義の時、もっと良くなった姿に聞きに来ます。^^

    • yh
      Instructor

      !?さん初受講評ありがとうございます^^ いつも応援します!

  • omg님의 프로필 이미지
    omg

    Reviews 205

    Average Rating 5.0

    5

    100% enrolled

    サポーターズ以来初めて講義(マニュアル)に少しでも寄与した部分があり、以前の講義より意味のある高級編講義でした。 これからも良い講義をよろしくお願いします:)

    • yh
      Instructor

      OMGさんいつも頑張って勉強して、またサポーターズ活動も頑張ってくださって誠にありがとうございます!

Limited time deal ends in 5 days

$11,016.00

24%

$93.50

yh's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!