채널톡 아이콘
BEST

스프링 핵심 원리 - 기본편

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다.

초급자를 위해 준비한
[백엔드, 웹 개발] 강의입니다.

이런 걸 배울 수 있어요

  • 스프링 기본 기능

  • 스프링 핵심 원리

  • 객체 지향 설계

스프링 핵심 원리를 이해하고, 
성장하는 백엔드 개발자가 되어보세요!

📢 수강 전 확인해주세요!

  • 본 강의는 자바 스프링 완전 정복 시리즈의 두 번째 강의입니다. 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 로드맵을 먼저 확인해주세요. (바로가기)

스프링 핵심 원리 - 기본편 현재 강의

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

스프링 핵심 원리 - 고급편

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

김영한의 스프링 핵심 원리 기본편
객체 지향 설계, 스프링의 핵심 원리 및 기능

 

스프링의 원리부터 핵심 가치까지

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

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

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

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

강의 목차

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

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

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

이 강의를 듣고 나면

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

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

강의 대상

 

 

스프링을 처음
접하는 개발자

스프링 핵심 원리
이해하고픈 개발자

객체지향 설계
고민인 개발자

김영한 스프링 입문
수강생

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

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

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

강의 순서


관련 로드맵

스프링 완전 정복 시리즈 
스프링 똑똑하게 시작하기,
핵심 원리부터 실전 활용   이 강의 포함 

 

스프링 부트 + JPA 실무 완전 정복 
최신 실무 기술로 웹 앱을
만들며 학습하고 싶다면  실전 심화 단계 

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 스프링을 처음 접하는 개발자

  • 개발자 취업 준비생

  • 스프링을 코드로 쉽게 이해하고 싶은 개발자

  • 스프링을 공부했지만 어려워서 포기했던 개발자

  • 실무에서 스프링을 사용하지만 스프링의 핵심 원리를 제대로 이해하고 사용하고 싶은 개발자

선수 지식,
필요할까요?

  • 자바 언어

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

532,270

수강생

33,354

수강평

8,859

답변

5.0

강의 평점

22

강의

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

더보기

커리큘럼

전체

65개 ∙ (12시간 5분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

4,250개

5.0

4,250개의 수강평

  • giraffelim님의 프로필 이미지
    giraffelim

    수강평 2

    평균 평점 5.0

    5

    100% 수강 후 작성

    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!

    • yh
      지식공유자

      Thank you, Sun. It looks like the interviewers asked a lot of spring-related questions. Haha. Then I will go prepare for the next Jeokto-ma^^!

  • jangy1000496님의 프로필 이미지
    jangy1000496

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    Where are you, Mr. Kim Young-han?? From now on, I will bow to you before I go to bed.. Thank you so much for the great lecture.

    • yh
      지식공유자

      Hahaha thank you Yj Jang. It's the east. Haha

  • 7942dyddlfsla1681님의 프로필 이미지
    7942dyddlfsla1681

    수강평 2

    평균 평점 5.0

    5

    100% 수강 후 작성

    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..

    • yh
      지식공유자

      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 :)

  • bogeun님의 프로필 이미지
    bogeun

    수강평 9

    평균 평점 5.0

    5

    100% 수강 후 작성

    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

    • yh
      지식공유자

      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.

  • omg님의 프로필 이미지
    omg

    수강평 205

    평균 평점 5.0

    5

    100% 수강 후 작성

    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.

    • yh
      지식공유자

      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.

김영한님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

₩88,000