목차 스프링이란? 좋은 객체 지향 프로그래밍이란? 좋은 객체 지향 설계의 다섯가지 원칙(SOLID) 객체 지향 설계와 스프링 1. 스프링이란? 1-1. 스프링 JAVA의 웹 프레임워크로 JAVA 언어를 기반으로 사용 JAVA로 다양한 어플리케이션을 만들기 위한 프로그래밍 틀 스프링의 특징 IoC 컨테이너(IOC를 구현하는 프레임워크)로서 객체를 직...
1. 비즈니스 요구사항과 설계 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원...
목차 새로운 할인 정책 개발 새로운 할인 정책 적용과 문제점 관심사의 분리 AppConfig 리팩터링 새로운 구조와 할인 정책 적용 전체 흐름 정리 좋은 객체 지향 설계의 5가지 원칙의 적용 IoC, DI, 그리고 컨테이너 스프링으로 전환하기 1. 새로운 할인 정책 개발 새로운 할인 정책을 확장해보자. 기획자: 서비스 오픈 직전에 할인 정책을 지금처럼...
5. 새로운 구조와 할인 정책 적용 처음으로 돌아가서 정액 할인 정책을 정률% 할인 정책으로 변경해보자. FixDiscountPolicy -> RateDiscountPolicy 우리는 좋은 객체 지향 설계를 위해 DIP와 OCP원칙을 지키기 위해 구성 영역(AppConfig)를 만들었다. AppConfig의 등장으로 애플리케이션이 크게 사용 영역과, ...
8. IoC, DI, 그리고 컨테이너 8-1. 제어의 역전 IoC(Inversion of Control) 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종했다. 개발자 입장에서는 자연스러운 흐름이다. 반면에 AppConfig가 등장한 이후에 ...
목록 스프링 컨테이너 생성 컨테이너에 등록된 모든 빈 조회 스프링 빈 조회 - 기본 스프링 빈 조회 - 동일한 타입이 둘 이상 스프링 빈 조회 - 상속 관계 BeanFactory와 ApplicationContext 다양한 설정 형식 지원 - 자바 코드, XML 스프링 빈 설정 메타 정보 - BeanDefinition 1. 스프링 컨테이너 생성 스프링 ...
목차 웹 애플리케이션과 싱글톤 싱글톤 패턴 싱글톤 컨테이너 싱글톤 방식의 주의점 @Configuration과 싱글톤 @Configuration과 바이트코드 조작의 마법 1. 웹 애플리케이션과 싱글톤 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션 개발도...
목차 컴포넌트 스캔과 의존관계 자동 주입 시작하기 탐색 위치와 기본 스캔 대상 필터 중복 등록과 충돌 1. 컴포넌트 스캔과 의존관계 자동 주입 시작하기 지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등록할 스프링 빈을 나열했다.(순수 자바코드로 스프링 빈 생성) 예제에서는 몇개가 안되었지만, 이...
목차 다양한 의존관계 주입 방법 생성자 주입을 선택해라! 롬복과 최신 트랜드 조회 빈이 2개 이상 - 문제 @Autowired 필드 명, @Qualifier, @Primary 애노테이션 직접 만들기 조회한 빈이 모두 필요할 때, List, Map 자동, 수동의 올바른 실무 운영 기준 1. 다양한 의존관계 주입 방법 의존관계 주입은 크게 4가지 방법이 있...
목차 빈 생명주기 콜백 시작 인터페이스 InitializingBean, DisposableBean 빈 등록 초기화, 소멸 메서드 지정 어노테이션 @PostConstruct, @PreDestroy 1. 빈 생명주기 콜백 시작 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결...
목차 빈 스코프란? 프로토타입 스코프 웹 스코프 request 스코프 예제 만들기 스코프와 Provider 스코프와 프록시 1. 빈 스코프란? 지금까지 우리는 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때 까지 유지된다고 학습했다. 이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 빈 스코프는 말 ...