강의를 들으면서 다시 리뷰하며 참고할 내용을 두서없이 적음.
강의와 정리에 투자하는 시간이 주객전도가 되지 않기위해 공유가 아닌 복습의 목적으로 흐름을 간단히 적는다.
📌 IntelliJ 단축키
자동완성 : cm + s + Enter
extract introduve variable : command option v
코드 내 오류난곳으로 이동 : f2
test생성 : cm + s + t
최근파일 : cm + e
extract method : cm + op + m
검색 : shift shift
📌 11. 회원 도메인 설계
📌 12. 회원 도메인 개발
📌 13. 회원 도메인 실행과 테스트
📌 14. 주문할인과 도메인 설계
📌 15. 주문할인과 도메인 개발
📌 16. 주문할인과 도메인 실행과 테스트
📌 17. 새로운 할인 정책 개발
📌 18. 새로운 할인적용 정책과 문제점
📌 19. 관심사의 분리
📌 20. AppConfig 리팩토링
📌 21. 새로운 구조와 할인정책 적용
📌 22. 전체 흐름 정리
📌 23. 좋은 객체지향 설계의 5가지 원칙의 적용
📌 24. IoC, DI 그리고 컨테이너
📌 25. 스프링 전환하기
📌 26. 스프링 컨테이너 생성
📌 27. 스프링 컨테이너 생성
📌 28. 스프링 빈 조회 - 기본
📌 28. 스프링 빈 조회 - 동일한 타입이 둘 이상
📌 29. BeanFactory와 ApplicationContext
📌 30. 다양한 설정형식 지원 - 자바코드, XML 등
📌 31. 스프링 빈 설정 메타정보 - BeanDefinition
📌 32. 웹 애플리케이션과 싱글톤
📌 33. 싱글톤 패턴
//3. 생성자를 private으로 선언해서 외부에서 new 키워드를 사용한 객체 생성을 못하게 막는다.
private SingletonService() {
}
📌 34. 싱글톤 컨테이너
📌 35. 싱글톤 방식의 문제점
📌 36. Configuration과 싱글톤
📌 37. @Configuration과 바이트코드조작의 마법
@Configuration을 붙이면 바이트코드조작 라이브러리를 사용하여 Appconfig를 상속받은 임의의 클래스를 생성하여 스프링빈으로 등록한것.
따라서 @Configurationd을 붙이면, 싱글톤을 보장.
바이트코드조작 라이브러리
if(있으면) 리턴
없으면 생성
📌 38. 컴포넌트스캔과 의존관계자동주입 시작하기
18:23:54.530 [main] DEBUG org.springframework.context.annotation.ClassPathBeanDefinitionScanner - Identified candidate component class: file [/Users/psy/Documents/lecture/springboot/spring2/core/out/production/classes/hello/core/discount/RateDiscountPolicy.class]
18:23:54.530 [main] DEBUG org.springframework.context.annotation.ClassPathBeanDefinitionScanner - Identified candidate component class: file [/Users/psy/Documents/lecture/springboot/spring2/core/out/production/classes/hello/core/member/MemberServiceImpl.class]
18:23:54.531 [main] DEBUG org.springframework.context.annotation.ClassPathBeanDefinitionScanner - Identified candidate component class: file [/Users/psy/Documents/lecture/springboot/spring2/core/out/production/classes/hello/core/member/MemoryMemberRepository.class]
18:23:54.531 [main] DEBUG org.springframework.context.annotation.ClassPathBeanDefinitionScanner - Identified candidate component class: file [/Users/psy/Documents/lecture/springboot/spring2/core/out/production/classes/hello/core/oder/OderServiceImpl.class]
18:23:54.588 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'autoAppConfig'
18:23:54.590 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'rateDiscountPolicy'
18:23:54.591 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'memberServiceImpl'
18:23:54.599 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'memoryMemberRepository'
18:23:54.600 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'memberServiceImpl' via constructor to bean named 'memoryMemberRepository'
18:23:54.601 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'oderServiceImpl'
18:23:54.601 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'oderServiceImpl' via constructor to bean named 'memoryMemberRepository'
18:23:54.601 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Autowiring by type from bean name 'oderServiceImpl' via constructor to bean named 'rateDiscountPolicy'
📌 39. 탐색 위치와 기본 스캔 대상
📌 40. 필터
📌 41. 중복등록과 충돌
📌 42. 다양한 의존관계 주입방법
📌 43. 옵션처리
📌 44. 생성자주입을 선택해라
📌 45. 롬복과 최신트렌드.
📌 46. 조회빈이 2개이상 - 문제
📌 47. @Autowired 필드명, @Qualifier, @Primary
📌 48. 애노테이션 직접 만들기
📌 49. 조회한 빈이 모두 필요할 때 List, Map
📌 50. 빈 생명주기콜백 시작