본문 바로가기

개발/Spring36

IoC 컨테이너 IoC 컨테이너 객체를 생성하고 관리하고 책임지고 의존성을 관리해주는 컨테이너 인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해준다. 객체관리 주체가 개발자가 아닌 프레임워크이기 때문에 개발자는 로직에 집중 할 수 있다. POJO의 생성, 초기화, 서비스, 소멸에 대한 권한을 가진다. POJO : 주로 특정 자바 모델이나 기능, 프레임워크를 따르지 않는 Java Object를 지칭한다.Java Bean 객체가 대표적이다.간단하게 getter / setter를 생각하면 될 것 같다. 스프링 컨테이너 (= IoC 컨테이너)의 종류 스프링 컨테이너가 관리하는 객체를 빈(Bean)이라고 하고, 이 빈들을 관리한다는 의미로 컨테이너를 빈 팩토리(BeanFactory) 라고 부.. 2024. 2. 4.
IoC(Inversion Of Controll) IoC(Inversion Of Controll) 제어의 역전 -> 제어의 흐름을 바꾼다. 메소드나 객체의 호출 작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있게 하여 가독성 및 코드 중복, 유지 보수를 편하게 할 수 있게 한다. 객체 실행 순서 객체 생성 의존성 객체 주입 - 스스로가 만드는 것이 아니라 제어권을 스프링에게 위임하여 스프링이 만들어 놓은 객체를 주입 의존성 객체 메소드 호출 스프링이 모든 의존성 객체를 스프링이 실행될 때 만들어주고 필요한 곳에 주입 시켜주면서 Bean들은 싱글턴 패턴의 특징을 가진다. 제어의 흐름을 사용자가 컨트롤 하는 것이 아니라 스프링에게 맡겨 작업을 처리하게 된다. IoC의.. 2024. 2. 4.
DI(Dependency Injection) DI(Dependency Injection) 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입기능 객체를 직접 생성하는게 아니라 외부에서 생성한 후 주입 시켜주는 방식 모듈 간의 결합도가 낮아지고 유연성이 높아진다. A 객체에서 B,C객체를 사용(의존) 할 때, A 객체에서 직접 생성하는 것이 아니라 외부(IOC 컨테이너)에서 생성된 B,C 객체를 조립(주입)시켜 setter 혹은 생성자를 통해 사용하는 방식 스프링에서는 Bean이라는 객체를 사용하는데, 프로젝트가 실행될 때, Bean으로 관리하는 객체들의 생성과 소멸에 관련된 작업을 자동적으로 수행해 주는데, 객체가 생성되는 곳을 스프링에서는 Bean 컨테이너라고 한다. SOLID 원칙에서 O 에 해당하는 Open Closed Princi.. 2024. 2. 4.
Bean Bean이란? Spring IoC 컨테이너가 관리하는 자바 객체 Spring에서는 직접 new를 이용하여 생성한 객체가 아니라, Spring에 의하여 관리당하는 자바 객체를 사용 Spring에 의하여 생성되고 관리되는 자바 객체를 Bean이라고 한다. Spring Framework 에서는 Spring Bean 을 얻기 위하여 ApplicationContext.getBean() 와 같은 메소드를 사용하여 Spring 에서 직접 자바 객체를 얻어서 사용 Spring Bean을 Spring IoC Container에 등록하는 방법 자바 어노테이션(Java Annotation)을 사용하는 방법 Bean을 등록하기 위해서는 @Component Annotation을 사용 @Component Annotation이 등.. 2024. 2. 3.