
스프링이란??스프링 생태계하나씩 배워보고 싶은데 양이 많다... ㅜㅡㅜ스프링 frameWork핵심 기술 : 스프링 DI Container, AOP, EventWeb 기술 : Spring MVC, Spring WebFluxData 접근 기술 : 트랜잭션, JDBC, OR

비즈니스 요구사항과 설계회원회원을 가입하고 조회할 수 있다.회원은 일반과 VIP 두 가지 등급이 있다.회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정)주문과 할인 정책회원은 상품을 주문할 수 있다.회원 등급에 따라 할인 정책을 적용

새로운 헐안 정책 개발 새로운 할인 정책 확장 고정 할인이 아니라 좀 더 합리적 주문 -> 금액당 할인하는 정률할인 변경 RateDiscountPolicy 추가 \-> interface로 설정 Test Code 왜 값이 저장이 안될까... 이러니 0원이 들어가지...

기존 Code들을 살펴보면 정책이 변경될 때마다 구체 클래스를 수정했어야 했다. 관심사 분리 AppConfig을 개발을 해서 외부에서 따로 구성하고 연결하는 책임을 갖는다. 새로운 정책 적용 AppConfig를 설정하므로 인하여, 사용 여역과 객체를 생성하고 구성하는

Spring Container 생성 ApplicationContext를 스프링 컨테이너라 한다. 그리고 이는 인터페이스이다. AppConfig를 사용했던 방식은 에노테이션 기반의 자바 클래스로 스프링 컨테이너를 만든것 참고) BeanFactory, Application

웹 애플리케이션과 싱글톤 웹 애플리케이션은 보통 여러 고객이 동시 요청 Spring X DI Container SpringX 순수한 DI Container인 AppConfig는 요청이 올때마다 새로운 객체를 생성한다.고객 traffic이 초당 100이 나오면 객체가 생

ComponentScan과 의존관계 자동 주입 시작 스프링 빈을 등록할때 자바의 코드 @Bean이나 XML bean 등을 통해서 설정 정보에 직접 등록 해서 스프링 나열의존관계 자동 주입해주는 @Autowired라는 기능 제공 참고)ComponentScan을 사용하면
다양한 의존관계 주입 방법 1\. 생성자 주입 2\. 수정자 주입 3\. 필드 주입 4\. 일반 메서드 주입 생성자 주입 이름 그대로 생성자를 통해서 의존 관계를 주입 받는 방법 특징 \-> 생성자 호출시점에 딱 1번만 호출되는 것이 보장 \-> 불변 필수 의존관계에
빈 생명주기 콜백 시작 데이터페이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리, 애플리케이션 종료 시점에 연결ㅇ을 모두 종료하는 작업 진행, 객체 초기화 종료 작업 필요 ex) 외부 네트워크에 미리 연결하는 객체하나를 생성한다고 가정

빈 스코프란??싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입 : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여, 더는 관여 X 웹 관련 스코프 request: 웹 요청이 들어오고 나갈때 유지