Spring Core Technologies

개요 Spring Framework의 핵심 기술(Core Technologies)은 프레임워크의 근간을 이루는 기술들을 다룬다. 가장 중요한 것은 IoC(Inversion of Control) 컨테이너이며, 그 다음으로 AOP(Aspect-Oriented Programming), AspectJ 통합, AOT(Ahead-of-Time) 처리가 있다. 핵심 기술 구성 IoC 컨테이너 Spring Framework의 가장 핵심적인 기술. 객체의 생성, 조립, 관리를 프레임워크가 담당하며, 의존성 주입(DI)을 통해 객체 간 결합도를 낮춘다. → 개념: Spring IoC 컨테이너와 Bean → 컨테이너: Spring IoC Container Overview → Bean: Bean Overview → DI: Dependency Injection AOP (Aspect-Oriented Programming) Spring은 자체 AOP 프레임워크를 갖고 있다. 개념적으로 이해하기 쉬우면서도 Java 엔터프라이즈 프로그래밍에서 필요한 AOP 요구사항의 80%를 충족하도록 설계되었다. ...

2026년 4월 11일 AM12:00 · 🛠 업데이트: 2026년 4월 12일 PM10:43 · PolarBear

Spring IoC 컨테이너와 Bean

정의 IoC(Inversion of Control) 는 객체가 자신의 의존성을 직접 생성하거나 찾는 대신, 외부(컨테이너)로부터 주입받는 원칙이다. DI(Dependency Injection) 는 IoC의 구체적인 구현 형태로, 객체가 의존성을 다음 방식으로만 정의한다: 생성자 인자(constructor arguments) 팩토리 메서드 인자 생성/반환 후 설정되는 프로퍼티 IoC 컨테이너가 Bean 생성 시 이 의존성들을 주입한다. 이는 Bean이 직접 클래스를 생성하거나 Service Locator 패턴을 사용하는 것과 근본적으로 반대(inverse) 되는 프로세스다. 동작 원리 BeanFactory vs ApplicationContext 구분 BeanFactory ApplicationContext 역할 설정 프레임워크 + 기본 기능 BeanFactory의 완전한 상위 집합 AOP 통합 기본적 쉬운 통합 메시지 리소스 미지원 국제화(i18n) 지원 이벤트 발행 미지원 이벤트 퍼블리케이션 지원 애플리케이션 컨텍스트 없음 WebApplicationContext 등 제공 실무에서는 ApplicationContext를 사용한다. BeanFactory는 설정 프레임워크와 기본 기능만 제공하고, ApplicationContext가 엔터프라이즈에 필요한 기능을 추가한다. ...

2026년 4월 11일 AM12:00 · 🛠 업데이트: 2026년 4월 12일 PM10:43 · PolarBear

Spring IoC Container Overview

정의 org.springframework.context.ApplicationContext 인터페이스가 Spring IoC 컨테이너를 대표한다. 컨테이너는 Bean의 인스턴스화, 설정, 조립을 담당하며, 어떤 컴포넌트를 어떻게 구성할지는 설정 메타데이터(Configuration Metadata) 를 읽어서 판단한다. 설정 메타데이터는 어노테이션 기반 컴포넌트 클래스, 팩토리 메서드가 있는 설정 클래스, 외부 XML 파일, Groovy 스크립트 등으로 표현할 수 있다. 동작 원리 컨테이너의 작동 흐름 애플리케이션 클래스(POJO)와 설정 메타데이터를 조합하여 ApplicationContext를 생성·초기화하면, 완전히 설정된 실행 가능한 시스템이 만들어진다. graph LR A[애플리케이션 클래스POJO] --> C[ApplicationContext] B[설정 메타데이터Annotation/Java/XML] --> C C --> D[완전히 설정된실행 가능한 시스템] ApplicationContext 구현체 Spring 코어에는 여러 ApplicationContext 구현체가 포함되어 있다. ...

2026년 4월 11일 AM12:00 · 🛠 업데이트: 2026년 4월 11일 AM02:31 · PolarBear

Dependency Injection

정의 의존성 주입(DI)은 객체가 자신의 의존성(함께 작업하는 다른 객체)을 생성자 인자, 팩토리 메서드 인자, 또는 생성 후 설정되는 프로퍼티를 통해서만 정의하는 프로세스다. 컨테이너가 Bean을 생성할 때 이 의존성들을 주입한다. 이 프로세스는 Bean이 직접 클래스를 생성하거나 Service Locator 패턴을 사용하여 의존성을 제어하는 것의 **역전(Inversion)**이다 — 이것이 IoC(Inversion of Control)라는 이름의 유래다. DI를 적용하면 코드가 깔끔해지고 디커플링이 효과적이다. 객체가 의존성의 위치나 클래스를 알지 못하므로, 특히 의존성이 인터페이스나 추상 클래스인 경우 스텁/모의 구현을 사용한 단위 테스트가 쉬워진다. ...

2026년 4월 12일 AM12:00 · 🛠 업데이트: 2026년 4월 12일 PM10:43 · PolarBear