no image
[Spring] 스프링 빈 스코프
✅ 스프링 빈 스코프 정리💡 빈 스코프란?스프링 컨테이너에서 빈이 생성되고 존재하며 소멸되는 범위(Lifecycle) 를 의미합니다.기본 스코프는 singleton 빈의 생명주기, 공유 범위, 관리 방식 조절 가능 🔹 주요 빈 스코프 종류1. 📌 Singleton (기본값)컨테이너 시작 ~ 종료까지 하나의 인스턴스 유지 모든 요청에 같은 인스턴스 반환 stateless하게 설계 권장 @Component@Scope("singleton") // 생략 가능public class MySingletonBean {}2. 📌 Prototype요청할 때마다 새로운 인스턴스 생성 초기화까지만 스프링이 관리, 소멸은 관리 안함 @PreDestroy 호출 ❌ @Component@Scope("protot..
2025.04.07
no image
[Spring] 스프링 자동 빈 등록 vs 수동 빈 등록
1. 스프링 빈 등록이란?스프링 프레임워크의 핵심은 스프링 컨테이너가 애플리케이션을 구성하는 객체, 즉 스프링 빈(Bean) 을 생성하고 관리하는 것입니다.스프링 빈으로 등록된 객체들은 컨테이너에 의해 생명주기를 관리받고, 의존 관계가 설정되어 애플리케이션의 기능을 수행하게 됩니다.빈 등록은 이러한 객체들을 스프링 컨테이너가 알 수 있도록 설정하는 과정을 의미합니다.2. 자동 빈 등록✅ 개념자동 빈 등록은 별도의 설정 파일 없이, 스프링이 특정 어노테이션이 붙은 클래스를 자동으로 스캔하여 빈으로 등록하는 방식입니다.✅ 작동 방식@ComponentScan @ComponentScan 어노테이션을 사용하여 특정 패키지를 기준으로 컴포넌트를 스캔합니다. 보통 스프링 부트의 @SpringBootApplicat..
2025.04.05
no image
[Spring] 의존관계 주입 (Dependency Injection)
의존관계 주입 (Dependency Injection)의존관계 주입(Dependency Injection, DI)은 객체가 필요로 하는 의존성(다른 객체)을 직접 생성하지 않고 외부에서 주입받는 객체지향 디자인 패턴입니다.전통적인 방식에서는 객체가 다른 객체를 new 키워드를 이용해 직접 생성했지만, DI는 객체 외부에서 의존 객체를 생성하고 주입해주는 방식으로 설계됩니다. 이러한 역할을 수행하는 것이 바로 스프링의 IoC(Inversion of Control) 컨테이너, 또는 DI 컨테이너입니다.✅ DI의 핵심 원칙 및 이점의존성 분리 (Decoupling)객체 간 의존성을 외부로 분리해 느슨한 결합(loose coupling)을 실현합니다.코드 재사용성 향상주입받는 의존성을 변경하기만 하면 여러 환경..
2025.04.02
no image
[Spring] 싱글톤 패턴과 스프링 컨테이너
🧩 싱글톤 패턴 정리싱글톤 패턴은 특정 클래스의 인스턴스가 오직 하나만 생성되는 것을 보장하는 디자인 패턴입니다.객체를 여러 개 생성하여 발생하는 메모리 낭비를 방지하고, 자원을 효율적으로 공유할 수 있습니다.🔧 싱글톤 패턴 구현 방식private 생성자를 통해 외부 인스턴스 생성을 제한 클래스 로딩 시점에 static으로 유일한 인스턴스를 생성 public static getInstance() 메서드를 통해 외부에서 접근 가능public class Singleton { private static final Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance()..
2025.04.02