Spring Framework
Spring 빈 스코프 ( Bean Scope )
스프링 컨테이너: 싱글톤 컨테이너 Spring Framework에서 빈(Bean)의 기본 스코프로 싱글톤(Singleton) 패턴을 따릅니다. 이는 기본적으로 스프링 컨테이너가 빈을 싱글톤으로 관리하기 때문입니다. 싱글톤 패턴은 어플리케이션 전체에서 단일 인스턴스를 공유하여 메모리 사용량을 줄이고 객체 생성 비용을 절감하는 디자인 패턴입니다. 즉, 스프링 컨테이너가 해당 빈을 생성하고 초기화한 후, 동일한 빈을 요청할 때마다 동일한 인스턴스가 반환됩니다. 이로 인해 다음과 같은 이점이 있습니다. 일관성 여러 곳에서 동시에 빈을 참조하더라도 상태 공유나 동기화 문제 없이 안전하게 사용할 수 있습니다. 여러 개의 인스턴스를 사용할 때 발생할 수 있는 데이터의 불일치 문제를 방지할 수 있습니다. 자원 절약 동..
Spring @Autowried: 의존 관계 자동 주입
@Autowired @Autowired란 스프링 컨테이너에 등록한 빈에게 의존 관계를 자동으로 주입하기 위해 사용되는 어노테이션입니다. 스프링 컨테이너에 빈들을 모두 등록한 후에, 스프링 컨테이너는 @Autowired 어노테이션이 붙은 생성자, 필드 등을 스캔하고, 해당하는 빈을 찾아 의존성을 자동으로 주입합니다. 생성자 주입 ⭐권장⭐ @Component public class ControllerClass { private final ServiceClass serviceClass; @Autowired public ControllerClass(ServiceClass serviceClass) { this.serviceClass = serviceClass; } } 객체 생성 시점에서 생성자를 통해 의존 관계를..
Spring 빈(Bean) 등록 방법 ( XML, Annotation, Java 설정 클래스 )
https://yeo-computerclass.tistory.com/268 Spring 스프링 컨테이너: IoC 컨테이너 스프링 컨테이너( IoC 컨테이너 ) 스프링 컨테이너는, 어플리케이션에서 사용되는 객체들을 생성하고 관리합니다. 객체들은 스프링 컨테이너에 의해 생성되고, 컨테이너가 객체의 생명주기를 관 yeo-computerclass.tistory.com 위 내용에서 컨테이너는 BeanDefinition을 기반으로 빈을 생성하고 구성한다 하였습니다. 즉 빈을 등록하기 위해서는 BeanDefinition이라는 메타데이터를 구성해주면 됩니다. BeanDefinition이란 객체 메타데이터를 직접 생성할 수도 있지만, Spring은 XML문서, Annotation, 프로퍼티 파일과 같은 외부 리소스로 빈..
Spring IoC 컨테이너 계층구조 및 구성(웹 어플리케이션)
IoC 컨테이너 계층 구조 스프링 어플리케이션은 최소한 하나 이상의 IoC 컨테이너는 가져야만 합니다. 모든 스프링 컨테이너는 계층 구조를 가질 수 있습니다. 즉 부모 컨테이너는 하나 이상의 자식 컨테이너를 가질 수 있습니다. 계층 구조 안에 있는 모든 컨텍스트는 각자 독립적인 설정 정보를 이용해 빈 오브젝트를 만들고 관리합니다. DI를 위해 빈을 찾을 때는 부모 어플리케이션 컨텍스트의 빈까지 모두 검색합니다. 부모 컨테이너에 등록된 빈은 자식 컨테이너에서도 사용할 수 있지만, 자식 컨테이너에 등록된 빈은 부모 컨테이너에서 사용할 수 없기 때문입니다. 먼저 자신이 관리하는 빈을 찾아보고 없다면 부모 컨텍스트에게 빈을 찾아달라고 요청하여 찾는다. 만약 부모 컨텍스트에 없으면 그 부모의 부모 컨텍스트에게 까..
Spring 스프링 컨테이너(IoC 컨테이너)와 빈(Bean)
스프링 컨테이너( IoC 컨테이너 ) 스프링 컨테이너는, 어플리케이션에서 사용되는 객체들을 생성하고 관리합니다. 스프링 컨테이너는 Bean 객체의 생성및 생명주기를 관리해주고, Bean 들을 조립하여 서로를 편리하게 상호 의존(사용)하게 해줍니다. 💁 Bean이란? 스프링 IoC컨테이너에 의해 생성되고 관리되는 객체를 Bean이라고 합니다. 이 객체는 스프링 컨테이너에 의해 관리되기 때문에 자바에서처럼 new Object();로 생성되지 않습니다. 작성한 클래스를 스프링 컨테이너에 빈(Bean)으 등록 해주면, 스프링 컨테이너가 해당 클래스를 이용해 객체를 생성하고 관리해줍니다. 스프링 컨테이너는 IoC 컨테이너라고 불립니다. 컨테이너가 객체에 대한 제어권을 갖고 있다고 해서 IoC(제어의 역전)라고 합..
Spring 스프링의 핵심 이해: IoC/DI, AOP, PSA
IoC / DI: 제어의 역전 / 의존관계 주입 스프링에서 IoC(Inversion of Control)/DI(Dependency Injection)는 객체지향 개발 방식에서 객체 간의 결합도를 낮추고 유연한 코드를 작성하기 위한 핵심적인 기술 중 하나입니다. 일반적으로 객체를 생성하고 사용하는 방식은 개발자가 코드 안에서 직접 객체를 생성하고 의존성을 설정합니다. 하지만 스프링에서는 이러한 제어권을 개발자가 아닌 스프링 컨테이너가 가져오는데, 이를 IoC(Inversion of Control, 제어의 역전)이라고 합니다. 즉, 개발자가 객체를 생성하고 의존성을 설정하는 것이 아니라, 스프링 컨테이너가 객체를 생성하고 의존성을 설정합니다. DI(Dependency Injection)는 스프링에서 IoC를..
Spring 스프링이란? ( + POJO )
스프링(Spring) 정의 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 Spring은 Java 기반의 오픈소스 애플리케이션 프레임워크입니다. Spring은 경량화되어 있어서 프레임워크 자체의 부하가 적습니다. 또한 다양한 모듈로 구성되어 있으며 각각의 모듈은 어플리케이션 개발에 필요한 다양한 기능을 제공합니다. 모듈화되어 있기 때문에 필요한 모듈만 선택해서 사용할 수 있습니다. 또한, 다양한 환경에서 사용할 수 있도록 지원하며, 다양한 개발 도구와 통합이 가능합니다. Spring은 주요 기능으로는 IoC/DI, AOP, MVC, JDBC, ORM, 트랜잭션 처리, RESTful 웹 서비스를 지원 등이 있습니다. 이러한 기능을 활용하여 개발자는 애플리케이션 개발에 집중할 ..
Spring 스프링(Spring) 설치하기 (feat. Eclipse)
📌스프링(Spring) 이클립스에 설치하기 1. [이클립스(Eclipse)] 실행 > 상단에 있는 [Help] 클릭 > [Eclipse Marketplace] 클릭 2. [sts] 검색 > 아래 빨간 네모 박스 설치 Spring Tools 3과 아래에 있는 Spring Tools 4의 차이점은 무엇일까? Spring Tools 4은 Spring Boot만 존재한다. 때문에 나는 Spring을 배우는 입장이니 Spring Tools 3을 설치하였다. 3. [Confirm]을 눌러 설치하여 동의하고 [Finish]를 누른다. 4. [Select All] 클릭 > [Trust Selected] 클릭 5. 다 설치되면 [Restart Now] 클릭 하여 Eclipse 다시 시작 📌스프링(Spring) 프로젝트 ..