본문 바로가기

분류 전체보기129

[Spring] 스프링 핵심 원리(4/8) - 기본편 싱글톤 컨테이너 1월 21일 토요일 - 스프링 핵심 원리(4/8) - 기본편 싱글톤 컨테이너 1. 웹 어플리케이션과 싱글톤 2. 싱글톤 패턴 - 객체 인스턴스를 하나만 생성하여 사용한다. 3. 싱글톤 컨테이너 4. 싱글톤 방식의 주의점 - 스프링 빈은 무상태로 설계해야 한다. 공유 필드에 의해서 값이 덮어씌워짐 5. @Configuration과 싱글톤 - 스프링에서 항상 Bean등록한 개체를 싱글톤이 되도록 보장한다. 6. @Configuration과 비트코드 조작의 마법 - @Configuration을 사용하지 않는 경우 @Bean 등록을 하면 스프링 컨테이너에 등록은 되지만 싱글톤으로 관리되지 않는다. 즉 @Configuration을 붙여야 싱글톤으로 관리하게 된다. 2023. 1. 21.
스프링 핵심 원리(2~3/8) - 기본편 객체 지향 원리 적용 및 스프링 컨테이너와 스프링 빈 1월 19일 수요일 - 스프링 핵심 원리(2~3/8) - 기본편 객체 지향 원리 적용 및 스프링 컨테이너와 스프링 빈 5. 새로운 구조와 할인 정책 적용 기존에는 orderServiceImpl에서 코드를 변경했지만 이제는 AppConfig에서 코드를 변경하기만 하면 orderServiceImpl에 반영이 된다. 다시말해 클라이언트 코드를 변경할 필요없이 AppConfig만 변경하면 된다. 6. 전체 흐름 정리 7. 좋은 객체 지향 설계의 5가지 원칙의 적용 여기서 3가지 원칙이 적용되었다. SRP (Single Response Principal , 단일 책임 원칙) - 구현된 orderServiceImpl은 실행만 담당하고 , 어떤 정책을 선택할지는 AppConfig에서 정한다. (AppConfig에서만.. 2023. 1. 19.
[Spring] 김영한 스프링 핵심 원리 (2/8) 강의 정리 1월 18일 수요일 - 스프링 핵심 원리(2/8) - 기본편 객체 지향 원리 적용 - 새로운 할인 정책 개발과 테스트 - 새로운 할인 정책 요구에 따라서 DiscountPolicy라는 인터페이스를 구현한 새로운 할인 정책 클래스 RateDiscountPolicy 를 만든다. RateDiscountPolicy는 고객 등급(Enum)이 VIP인 경우(Grade.VIP) 물건 가격의 10%를 할인해준다. (테스트 코드를 작성할 때는 되는 케이스와 되지 않는 케이스 모두 작성하는 것을 권장한다.) - 새로운 할인 정책 적용과 문제점 - 새롭게 만든 할인 정책을 적용하기 위해서는 OrderServiceImpl에서 기존에 존재하던 FixDiscountPolicy를 RateDiscountPolicy로 수정해야 한다... 2023. 1. 18.
[Spring] DI(Dependency Injection)의 3가지 방법 DI(Dependency Injection : 의존성 주입)의 3가지 방법 1. 필드 주입 - 필드 주입은 객체 위에 간단하게 @autowired 어노테이션을 선언하는 것이다. 그러면 스프링 컨테이너에서 생성되어 있던 객체를 가져와서 쓸 수 있다. ( 빈 등록이 되어있다는 전제 하에 가능한 것이다 , 빈으로 등록이 되어야 스프링 컨테이너에서 만들어서 관리하고 그것을 Autowired로 주입할 수 있게 되는 것이다. ) ex ) @autowired private MemberRepository repo; 2. 생성자 주입 - 생성자 주입은 생성자를 만들때 @autowired 어노테이션을 선언하는 것이다. ex ) @autowired public MemberController(MemberService memb.. 2023. 1. 17.