spring

인프런 김영한님의 스프링 핵심 원리 - 기본편 강의 내용을 바탕으로 작성한 글입니다. 의존관계 주입이란, 애플리케이션 실행 시점에 외부에서 실제 구현 객체를 생성해 클라이언트에 전달하는 것이다. 이전에 제어의 역전과 함께 알아본 적이 있었다. 그렇다면 클라이언트에게 구현 객체를 어떻게 전달할까? 크게 4가지 방법이 있다. 1. 생성자 주입 말 그대로 생성자를 이용해서 의존관계를 주입하는 방법이다. 생성자를 호출할 때, @Autowired가 붙어있으면 스프링 컨테이너에서는 매개변수와 같은 타입의 빈을 찾아 생성자에 넣어준다. @Component public class OrderServiceImpl implements OrderService { private final DiscountPolicy discou..
인프런 김영한님의 스프링 핵심 원리 - 기본편 강의 내용을 바탕으로 작성한 글입니다. 1. 컴포넌트 스캔이란? @Configuration public class AppConfig { @Bean public OrderService orderService() { System.out.println("call orderService()"); return new OrderServiceImpl(discountPolicy()); } @Bean public DiscountPolicy discountPolicy() { System.out.println("call discountPolicy()"); return new FixDiscountPolicy(); } } 지금까지는 설정 정보 파일에 등록할 스프링 빈을 직접 나열해..
인프런 김영한님의 스프링 핵심 원리 - 기본편 강의 내용을 바탕으로 작성한 글입니다. 1. 싱글톤 패턴이란? 싱글톤 패턴이란 객체의 인스턴스를 딱 1개만 생성하는 것을 말한다. 생성자를 몇 번 호출하더라도 인스턴스는 딱 1개만 생성되고, 인스턴스 생성 이후에 호출되는 생성자는 이전에 생성해둔 인스턴스를 반환해야 한다. 싱글톤 패턴을 구현하는 방법은 여러가지가 있지만, 주로 아래와 같은 방법이 많이 쓰인다. class Singleton { private static final Singleton singleton = new Singleton(); public static Singleton getInstance(){ return singleton; } } singleton 필드는 static 멤버로 설정하여 ..
인프런 김영한님의 스프링 핵심 원리 - 기본편 강의 내용을 바탕으로 작성한 글입니다. 이전 글에서 AppConfig처럼 DI와 IoC를 해주는 것을 DI 컨테이너라고 부른다는 이야기를 했었다. 이번에는 스프링에서 DI와 IoC를 제공하는 스프링 컨테이너에 대해 알아보자. 1. 스프링 컨테이너란? 스프링 컨테이너는 컨테이너에 등록된 객체들의 생명 주기를 관리하고, 객체들에게 추가적인 기능을 제공한다. 스프링 빈으로 등록된 객체들의 인스턴스를 생성하고, 스프링 빈 사이에 의존관계를 주입하는 게 바로 스프링 컨테이너의 역할이다. 이전 글에서 보았던 AppConfig의 역할을 담당한다고 보면 된다. 그렇다면 기존의 AppConfig와는 뭐가 다르길래 굳이 스프링 컨테이너를 쓰는 걸까? 2. 스프링 컨테이너 설정..
인프런 김영한님의 스프링 핵심 원리 - 기본편 강의 내용을 바탕으로 작성한 글입니다. 이전 글에서 다형성만으로는 OCP, DIP를 지킬 수 없다는 것까지 알아보았다. 그렇다면 어떻게 OCP, DIP를 지킬 수 있을까? 바로 DI와 IoC를 이용하면 지킬 수 있다. 간단한 예시를 통해 알아보자. 여기 주문 서비스가 있다. 주문 서비스는 할인 정책을 받아서 할인 금액을 계산해야 한다. 할인 정책은 크게 2종류가 있는데, 고정금액 할인 정책(FixDiscountPolicy)과 고정비율 할인 정책(RateDiscountPolicy)이 있다. public class OrderServiceImpl { // private final DiscountPolicy discountPolicy = new FixDiscount..
인프런 김영한님의 스프링 핵심 원리-기본편 강의 내용을 바탕으로 작성한 글입니다. Spring이란? 스프링은 문맥에 따라 여러 가지 의미를 갖는다. 스프링 생태계 전체를 의미하기도 하지만, 스프링 DI 컨테이너나 스프링 프레임워크를 의미하는 경우도 있다. 스프링은 여러가지 기술의 모음으로, Spring Boot, Spring Framework, Spring Data 등으로 구성되어 있다. 공식 홈페이지에 가면 아래 사진보다 더 많은 기술들을 확인할 수 있다. 많은 기술들 사이에서도 대표적인 기술이 있다면, 바로 스프링 프레임워크와 스프링 부트이다. 스프링 프레임워크는 오리지널팩에 해당하는 기술로, 스프링 DI 컨테이너, AOP, JDBC 등 다양한 기능을 지원한다. 스프링 부트는 확장팩이지만 요즘에는 필..
gorapaduckoo
'spring' 태그의 글 목록 (2 Page)