목록DI (5)
개발 무지렁이
🌱 Spring의 설계 철학 : 개발자가 Spring Framework에 종속되지 않고 POJO 객체를 사용하여 애플리케이션을 개발할 수 있게 하는 것 🍩 POJO를 이용한 가볍고, 비침투적인 개발 🍩 DI와 인터페이스 지향을 통한 느슨한 결합도 (다른 구현체로 교체하기 쉽다.) 🍩 Aspect와 공통규약을 통한 선언적 프로그래밍 🍩 Aspect와 템플릿을 통한 상투적인 코드 축소 ❓선언적 프로그래밍 : 무엇을 달성해야 하는지에 대해 명시적 설명 어떻게 달성하는지에 대한 세부사항은 숨겨져 있다. 𐂂 POJO (Plain-Old Java Object) 특별한 제약이나 규칙을 따르지 않는 평범한 자바객체를 가리킨다. Spring Framework는 Spring에 특화된 클래스를 요구하지 않으며, 기본은 PO..
𐂂 의존관계 하나의 클래스 내에서 다른 객체를 포함하고 있을 때, '이 클래스가 해당 객체에 의존한다'라고 표현할 수 있다. 𐁍 Dependency Injection(의존성 주입, DI) 이란 의존관계를 만들어 주기위해, 외부에서 객체를 생성해서 클래스 내에 주입하는 것을 의미한다. 즉, 외부(🪺Spring Container)에서 싱글톤으로(하나만 등록해서 공유) 객체를 생성해서 주입해주는 것을 말한다. WHY 싱글톤으로 객체를 생성하는 이유 Controller, Service, Repository에 있는 메서드를 호출하는 것이 목적이기 때문에, 굳이 여러개 만들 필요가 없다. 하나만 생성해서 공용으로 쓰면된다. 🪺Spring Container에 등록하면 딱 하나만 등록된다. ⚠️ 같은 Spring Be..
제어의 역행 (Inversion of Control) 흐름이 뒤바뀌다. 내부에서 객체를 생성(new)하는 것이 아니라, 외부의 Spring Container(IoC 컨테이너)가 객체를 생성해서 안으로 주입해준다. (DI) DI 유형 (의존성 주입) 📌. 객체의 의존관계를 파악해서 객체의 LifeCycle을 관리 - Construction Injection ('생성자를 통한 주입') - Setter Injection ('Setter를 통한 주입') - value 키워드 - ref 키워드 ⚠️ 생성 및 주입은 Spring Container가 주관. => 이를 위해 configuration meta 정보를 입력하자 [beans.xml] [MainApp.java] public cla..
🚀 프레임워크(framework)란? (1) 다양한 디자인 패턴과 다양한 라이브러리의 집합체 (2) 이미 만들어져 있는 뼈대(비기능적 요구사항, 눈에 보이지 않는 서비스들, 공통점을 찾아 하부구조 제공) 어떤 프로젝트간에 공통의 컴포넌트들, 모듈들이 있다. => 반제품 Spring Container(스프링 컨테이너), BeanFactory WebApplicationContext(컨테이너 기능확장)
IoC 컨테이너(Inversion of Control Container) Spring Framework로 객체를 생성하고, 의존성까지 관리하는 컨테이너를 말한다. ⭐. 객체의 생명주기를 관리 ❓ 의존성 주입 (Dependency Injection) :외부에서 생성된 객체를 주입받는 것을 의존성 주입이라 한다. (객체 내부에서 다른 객체를 생성하는 것은 강한 결합을 만드는 구조이다.) :IoC 원칙하에 객체간 결합도를 낮추고, 유지보수가 좋은 코드를 만들어준다. 1. 생성자 주입 ** (생성자에 @Autowired를 붙여 객체를 주입) - 간결한 코드 작성 가능 - final 변수의 생성자를 대신 만들어주는 @RequiredArgsConstructor - 생성자가 하나일때 @Autowired를 생략 가능 ..