성장의 계절, 모든 강의 30% 할인!

Thumbnail
진짜 시작, 봄맞이 30% 할인 중(D-8)
BEST
개발 · 프로그래밍 백엔드

스프링 핵심 원리 - 기본편 대시보드

(5)
3,461개의 수강평 ∙  32,041명의 수강생

30%

61,600원

88,000원
지식공유자: 김영한
총 65개 수업 (12시간 5분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

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

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

✍️
이런 걸
배워요!
스프링 기본 기능
스프링 핵심 원리
객체 지향 설계

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

📢 수강 전 확인해주세요!

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

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

  • 객체 지향 설계와 스프링
    • 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 실무 완전 정복 
최신 실무 기술로 웹 앱을
만들며 학습하고 싶다면  실전 심화 단계 

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
스프링을 처음 접하는 개발자
개발자 취업 준비생
스프링을 코드로 쉽게 이해하고 싶은 개발자
스프링을 공부했지만 어려워서 포기했던 개발자
실무에서 스프링을 사용하지만 스프링의 핵심 원리를 제대로 이해하고 사용하고 싶은 개발자
📚
선수 지식,
필요할까요?
자바 언어

안녕하세요
김영한 입니다.
김영한의 썸네일
커리큘럼 총 65 개 ˙ 12시간 5분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 강의 소개
섹션 1. 객체 지향 설계와 스프링
1. 객체 지향 설계와 스프링 - PPT 자료 다운로드
이야기 - 자바 진영의 추운 겨울과 스프링의 탄생 미리보기 15:23 스프링이란? 미리보기 14:31 좋은 객체 지향 프로그래밍이란? 미리보기 21:22
좋은 객체 지향 설계의 5가지 원칙(SOLID) 18:15
객체 지향 설계와 스프링 06:31
섹션 2. 스프링 핵심 원리 이해1 - 예제 만들기
프로젝트 생성 08:13
비즈니스 요구사항과 설계 03:38
회원 도메인 설계 05:41
회원 도메인 개발 10:13
회원 도메인 실행과 테스트 09:11
주문과 할인 도메인 설계 08:29
주문과 할인 도메인 개발 08:52
주문과 할인 도메인 실행과 테스트 06:53
섹션 3. 스프링 핵심 원리 이해2 - 객체 지향 원리 적용
새로운 할인 정책 개발 10:43
새로운 할인 정책 적용과 문제점 09:30
관심사의 분리 28:09
AppConfig 리팩터링 04:59
새로운 구조와 할인 정책 적용 06:08
전체 흐름 정리 04:43
좋은 객체 지향 설계의 5가지 원칙의 적용 04:44
IoC, DI, 그리고 컨테이너 16:39
스프링으로 전환하기 12:49
섹션 4. 스프링 컨테이너와 스프링 빈
스프링 컨테이너 생성 11:23
컨테이너에 등록된 모든 빈 조회 06:49
스프링 빈 조회 - 기본 08:45
스프링 빈 조회 - 동일한 타입이 둘 이상 09:16
스프링 빈 조회 - 상속 관계 12:01
BeanFactory와 ApplicationContext 06:30
다양한 설정 형식 지원 - 자바 코드, XML 09:21
스프링 빈 설정 메타 정보 - BeanDefinition 15:35
섹션 5. 싱글톤 컨테이너
웹 애플리케이션과 싱글톤 08:34
싱글톤 패턴 15:02
싱글톤 컨테이너 07:30
싱글톤 방식의 주의점 14:57
@Configuration과 싱글톤 13:46
@Configuration과 바이트코드 조작의 마법 15:59
섹션 6. 컴포넌트 스캔
컴포넌트 스캔과 의존관계 자동 주입 시작하기 19:57
탐색 위치와 기본 스캔 대상 12:45
필터 09:08
중복 등록과 충돌 09:12
섹션 7. 의존관계 자동 주입
다양한 의존관계 주입 방법 29:33
옵션 처리 12:14
생성자 주입을 선택해라! 12:21
롬복과 최신 트랜드 11:30
조회 빈이 2개 이상 - 문제 04:48
@Autowired 필드 명, @Qualifier, @Primary 13:01
애노테이션 직접 만들기 05:30
조회한 빈이 모두 필요할 때, List, Map 11:36
자동, 수동의 올바른 실무 운영 기준 13:01
섹션 8. 빈 생명주기 콜백
빈 생명주기 콜백 시작 20:28
인터페이스 InitializingBean, DisposableBean 05:19
빈 등록 초기화, 소멸 메서드 05:46
애노테이션 @PostConstruct, @PreDestroy 03:41
섹션 9. 빈 스코프
빈 스코프란? 03:58
프로토타입 스코프 12:47
프로토타입 스코프 - 싱글톤 빈과 함께 사용시 문제점 19:54
프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결 20:42
웹 스코프 04:34
request 스코프 예제 만들기 21:24
스코프와 Provider 09:30
스코프와 프록시 11:40
섹션 10. 다음으로
다음으로 25:18
강의 게시일 : 2020년 09월 21일 (마지막 업데이트일 : 2023년 12월 04일)
수강평 총 3,461개
수강생분들이 직접 작성하신 수강평입니다.
5
3,461개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
임태양 thumbnail
5
말이 필요있을까요? 뛰어난 강의력, 철저한 강의 준비, 인터넷 강의 들으면서 이렇게 잘 준비된 pdf 자료나 지루하지 않은 수업을 들어본적은 없는거 같네요 ㅎㅎ. 취업하기이전 면접을 준비하던때 이 강의를 들었다면 적토마를 탄 여포가 되어 면접을 보았을텐데 ㅎㅎ.. 강의 잘 들었습니다. 후속편도 나오면 바로 들으러 가겠습니다!.
2020-09-23
지식공유자 김영한
고맙습니다. 태양님. 면접관들이 스프링 관련 질문을 많이 물어보았나보네요. ㅎㅎ 저는 그럼 다음 적토마 준비하러 가겠습니다^^!
2020-09-23
Yj Jang thumbnail
5
김영한님 어디계세요?? 앞으로 자기 전에 그 쪽으로 절하고 자려구요.. 좋은 강의 너무 감사합니다
2021-06-29
지식공유자 김영한
ㅎㅎㅎ Yj Jang님 고맙습니다. 동쪽입니다. ㅋㅋ
2021-06-30
허문회 thumbnail
5
중, 고등학생 때도 인터넷 강의를 듣는걸 선호하지 않았는데, 이번 강의는 정말 재밌게 잘 들었습니다. 원리도 모르고 쓰던 기능들을 이젠 어느정도 이해하고 쓸 수 있게 되었네요. 다음 강의도 기대하겠습니다. 하하
2020-10-28
지식공유자 김영한
고맙습니다. 현근님^^ 강의가 확실히 전달하는 입장에서도 코드를 바꾸는 과정을 쉽게 설명할 수 있어서 편한점이 많더라구요. 저도 다음강의 열심히 준비할께요.
2020-10-30
황주환 thumbnail
5
스프링을 공부한지 얼마 안된 대학생입니다. 다른 외부 사이트에서 강의를 보고 스프링 DI컨테이너에 대해 자세히 모르고 @Autowired만 막 사용했었는데 이 강의를 보고 스프링의 핵심원리에 대해 쉽게 이해할 수 있었습니다. 스프링 입문하시는 분들 이 강의 꼭 들으세요... 진짜 멱살잡고 끌고가주는 느낌입니다. 다음 스프링 웹MVC강의 기다리고 있겠습니다. 빨리 강의 출시해주세요!!
2020-10-16
지식공유자 김영한
스프링의 원리를 정말 잘 배우신 것 같아서 보람이 있습니다. 멱살잡고 끌고가주는 느낌이라니 ㅎㅎㅎ 제 열정이 거기까지 전달되었나 보아요 ㅎㅎ 고맙습니다. 주환님 저도 다음 강의 열심히 준비할께요!
2020-10-18
OMG thumbnail
5
스프링을 처음 공부했을 때 이게 왜 필요한지, 어디에-어떻게-어떨 때 쓰는지 이해가 잘 가지 않아 책이며 인터넷 강의며 많은 자료들을 찾으면서 공부하였는데요. 스프링 공부를 시작할 때 영한 님의 강의가 있었다면 제가 처음 스프링 공부할 때 겪었던 어려움과 고생이 줄지 않았을까 생각합니다. 스프링 강의가 스프링 강의 전, 객체지향으로 시작하는 구성은 처음 봤는데 영한님은 개발뿐만 아니라 가르침에도 엄청난 능력이 있으신 거 같아요. 영한님 강의 구성을 통해 무엇이 핵심이고 본질인지 파악했고, 그것을 강의 시작으로 녹여낸다는 게 정말 대단하단 말밖에 나오지 않네요. 만약 강의를 다 보고도 이해가 잘 가지 않거나, 강의가 정말 좋은가?라고 의문을 품고 계시다면 책, 인터넷 등을 활용해서 공부하시고 나서 복습하시면 시야가 넓어지면서 전에는 이해하지 못 했던 게 다시 보면 이해되고 이걸 이렇게 쉽게 설명해 주셨다고 느끼는 부분들이 있을 거예요(이 점이 인강의 장점이라 생각하고, 제가 영한님 jpa 강의 보고 느낀 경험담입니다..ㅎㅎ) 그리고 강의에서 다루는 bdd 스타일, assertj 등은 처음 보시면 낯설 텐데 키워드 던져주시는 것들 구글링해서 학습하시면 많은 도움 될 거라 생각합니다. 다음 강의도 기대하겠습니다.
2020-09-24
지식공유자 김영한
OMG님의 멋진 수강평을 들으니, 이번 강의를 준비하면서 고민했던 저의 솔직한 이야기를 남기고 싶네요. 사실 이번 강의는 정말 고민이 많았습니다. 단순히 스프링의 기능을 하나하나 풀어서 설명하는 강의는 쉽게 만들 수 있다 생각합니다. 그런데 이 강의는 제가 스프링을 통해서 느낀 스프링의 진정한 가치를 전달하고 싶었습니다. 스프링의 기능을 단순히 사용하는 것을 넘어 객체지향의 진정한 가치를 이해하고 객체지향과 스프링을 통해 애플리케이션을 디자인하고 설계하는 즐거움이 무엇인지 알려드리고 싶었습니다. 그럴려면 스프링의 기능을 하나하나 풀어서 설명하는게 아니라, 결국 객체지향 이야기 부터 시작해야 합니다. 특히 객체지향 자체의 이야기를 쉽게 풀어내고 그걸 스프링과 엮어야 하는데, 스프링에 입문 하신 분들께 객체 지향을 어떻게 하면 최대한 쉽게 풀어서 설명할지, 그리고 그걸 어떻게 스프링과 엮어서 설명할지가 정말 어려웠습니다. 결국 몇달동안 제 머리속의 퍼즐을 이렇게 맞추어보고, 저렇게 맞추어보고, 예제코드도 이렇게 만들고 저렇게 만들어보면서 기본흐름을 완성했습니다. 그리고 스프링에 입문 하신 분들이 이 내용을 이해할 수 있을까? 고민하면서 최대한 이해하기 쉽게 다듬고 또 다듬었습니다. 제가 강의를 만들 때는 노트북 앞에 앉아서 강의를 만들기도 하지만, 큰 흐름을 만들 때는 주로 산책을 하면서 생각하는게 좋더라구요. 그래서 이번 강의는 참 많이 걸어다녔어요 ㅎㅎ 덕분에 많이 건강해졌습니다. ㅋㅋㅋ OMG님께서 제가 고민한 흔적들을 알아봐주셔서 그게 참 고맙습니다.
2020-09-25