Understand the core principles of Spring, Become a growing backend developer!
📢 Please check before taking the class!
This lecture is the second 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)
Concepts, operating principles, practical examples, and precautions
Kim Young-han's Spring Core Principles Fundamentals Object-oriented design, core principles and features of Spring
From Spring's principles to its core values
Simply learning and using Spring's features isn't difficult. However, truly understanding and utilizing its core values and principles presents a significant challenge. This is because understanding not only vague terms like IoC (Inversion of Control) and DI (Dependency Injection) but also principles of good object-oriented design (SOLID), such as SRP, OCP, and DIP, is crucial to truly grasping Spring's core principles.
Spring's true core value lies in object-oriented programming (OOP). And it's precisely this object-oriented nature that makes Spring so difficult to grasp. To advance to the next level as a backend developer, a deep understanding of the core values and principles Spring provides is essential .
This lecture begins by going back 20 years, before Spring even existed, and explaining why it was created. We then go back to that time and create a sample application using pure Java code, without Spring. As requirements change, problems are discovered one by one, and we solve them by applying good object-oriented principles to the code one by one. In this process, you will naturally understand good object-oriented principles (SOLID), IoC, and DI through code, and realize why the Spring container is necessary .
Rather than simply understanding the core principles of Spring theoretically, you will naturally understand them through the process of developing example applications with your own code.
Lecture Table of Contents
1. Object-oriented design and Spring
2. Understanding Spring Core Principles 1 - Creating an Example
3. Understanding Spring Core Principles 2 - Applying Object-Oriented Principles
4. Spring Container and Spring Bean
5. Singleton container
6. Component Scan
7. Automatic dependency injection
8. Empty lifecycle callbacks
9. Empty scope
The first part of the lecture (Parts 1-3) explains the core principles of object-orientation and Spring. Starting with Part 4: Spring Containers and Spring Beans, the lecture delves into the core features offered by Spring. This section focuses on why each core feature was created, why it's needed, and, most importantly, how it's used in practical applications.
So, beyond simply using Spring's features, you can properly understand and use how to best utilize them in practice .
After listening to this lecture
This lecture isn't simply a one-by-one explanation of the features found in the Spring reference documentation. Beyond the features themselves, it explains why Spring was created, why it provides these features, and the core principles behind them .
By the end of this course, you will not only be able to use Spring's basic features effectively, but also gain a profound understanding of its core principles . Understanding the fundamentals of Spring is tantamount to understanding the fundamentals of object-oriented design. Therefore, you can evolve from a developer who simply uses Spring's features to one who considers the design and architecture of object-oriented applications at all levels .
Lecture target audience
Spring first Developers in contact
Spring core principles Developers who want to understand
Object-oriented design Developers in trouble
Kim Young-han's Spring Introduction students
This course on Spring's core principles is designed for developers new to Spring, as well as those who already use Spring in their work but want to understand and apply its core principles. It's also helpful for developers struggling with object-oriented design.
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.
When I first studied Spring, I didn't really understand why it was necessary, where, how, and when to use it, so I studied by looking for books, online lectures, and many other materials. If I had Younghan's lectures when I started studying Spring, I think the difficulties and hardships I experienced when I first studied Spring would have been reduced.
It was the first time I saw a Spring lecture that started with object-oriented learning, and I think Younghan has an incredible ability not only in development but also in teaching.
I was able to figure out what the core and essence are through Younghan's lectures, and I can't help but say that it's really amazing that he incorporates that into the beginning of the lecture.
If you still don't understand the lectures after watching them all, or if you have doubts about whether the lectures are really good, study using books, the internet, etc., and then review them. As your horizons expand, you will understand things you didn't understand before when you watch them again, and you will feel that they were explained so easily (I think this is the advantage of online lectures, and this is my experience watching Younghan's jpa lectures..ㅎㅎ) Also, the bdd style, assertj, etc. covered in the lectures will seem unfamiliar at first, but if you Google the keywords that are given and study them, I think it will be very helpful.
I look forward to the next lecture.
After hearing OMG's wonderful review, I would like to share my honest thoughts about what I was worried about while preparing this lecture. In fact, I had a lot of worries about this lecture. I think it would be easy to make a lecture that simply explains the functions of Spring one by one.
However, I wanted to convey the true value of Spring that I felt through Spring. I wanted to go beyond simply using the functions of Spring and understand the true value of object-oriented design and let you know what the joy of designing and designing applications is through object-oriented design and Spring.
To do that, I had to start with the story of object-oriented design rather than explaining the functions of Spring one by one. In particular, I had to explain the story of object-oriented design itself in an easy way and connect it with Spring. It was really difficult to figure out how to explain object-oriented design as easily as possible to those who are new to Spring, and how to connect it with Spring. In the end, I spent several months trying to fit the puzzle in my head like this and like that, and creating example code like this and like that, and I completed the basic flow. And I wondered if those who are new to Spring would be able to understand this content, so I refined it again and again to make it as easy to understand as possible. When I make lectures, I sometimes sit in front of my laptop and make lectures, but when I make the big picture, I usually think while taking a walk. So I walked a lot for this lecture. Thanks to that, I became a lot healthier. ㅋㅋㅋ
I'm so grateful that OMG noticed the traces of my worries.
Do I need to say more? Excellent teaching skills, thorough lecture preparation, I don't think I've ever taken such well-prepared PDF materials or such a non-boring class while listening to an online lecture. If I had listened to this lecture when I was preparing for an interview before getting a job, I would have been like Lu Bu riding a red hare. I listened to the lecture well. I will go listen to the sequel as soon as it comes out!
I'm starting from Spring Introduction and taking the DB 2 lecture. I think I'll finish the roadmap soon. In fact, this is a review of the entire roadmap of Mr. Kim Young-han, but I wonder if it's right to leave it here in the basics, but I'll write it here anyway. Are you a junior with less than 3 years of experience? `Definitely` listen. I don't mean to look down on you, but is your company a small or medium-sized enterprise or SI? `Definitely` listen. Mr. Kim Young-han's roadmap is a masterpiece lecture that goes beyond simply providing knowledge and really levels up the mindset of a developer. Those who are developing in the field will agree. This job of a developer is actually a job where the gap in knowledge is really severe. In other words, smart developers are really, really smart. Ignorant developers, to be honest, are called coders, just copy and paste without thinking and work day after day. But the important thing here is that no one who is an ignorant developer wants to be an ignorant developer. Even though I know I am lacking, I still don't know how to study. I study by searching the Internet? Honestly, I think that is wrong. If you look at the things that come up on so-called technical blogs, there are some correct things, but there is so much incorrect information and so much fragmentary content that it is not helpful for serious study. Also, when I try to buy books and study them, they are all books that were published 2 or 3 years ago, and there are so many differences due to version updates and changes in technical specifications that I feel like I can't keep up with the trends. And in this situation, developers are also office workers and have to do their assigned work. They somehow make code that works and then move on to the next task... The daily routine repeats itself, and at some point, they become developers who just endure each day out of inertia. However, what I felt while listening to Kim Young-han's lecture was that I was deeply impressed as I realized the study method of 'how to study' to become a good developer. Also, during the lecture, you talk about practical problems and solutions, and other small tips.. I don't know how to explain this in words. It's really valuable know-how that you can't learn even if you pay money. I want to say that it's very valuable knowledge that allows you to learn how developers at top-tier IT companies, so-called Nekarakubae, think and solve problems. So, if you're preparing to get a job as a developer, you should definitely listen. I also recommend that people who are currently working listen. Sometimes, there are people who worry about the tuition.. Everyone's financial situation is different, so it's hard to say, but please listen anyway. You really won't regret it.. And lastly, Mr. Kim Young-han. Thanks to a teacher like you, even a developer like me was able to become a person. I hope you continue to do well and make many lectures..
Looking at Rammus's course review, I think I did a good job teaching.
I have also suffered a lot in bad companies and difficult SI projects, so I understand well what the gap in knowledge you mentioned means.
When I work at so-called good service companies, I see that many developers did not start out at good companies, but started at small companies or SIs and worked their way up.
What they all have in common is that they are all people who constantly think about how to develop in a better way to become good developers.
I think Rammus is someone who continuously strives to become a better developer no matter what the current situation is.
I support you. And I hope you grow greatly in 2024 :)
Even when I was in middle and high school, I didn't like taking online lectures, but this lecture was really fun and easy to listen to. I can now understand and use functions that I used to use without even knowing the principles. I'm looking forward to the next lecture. Haha
Thank you, Hyungeun^^ The lecture was very helpful because it explained the process of changing codes easily, even from the perspective of someone who was definitely learning. I will also work hard to prepare for the next lecture.