분류 전체보기

Cloud-DevLog
[Spring] 스프링 빈 스코프(Bean Scope)
·Spring
빈 스코프(Bean Scope)란?스프링 빈(Spring Bean)이 스프링 컨테이너에 시작과 동시에 만들어지고, 컨테이너가 종료될 때까지 유지된다고 지금까지 배웠으며, 이는 스프링 빈이 기본적으로 싱글톤 스코프(Singleton Scope)로 생성되기 때문이였다. 즉, 빈 스코프(Bean Scope)는 빈이 존재할 수 있는 범위를 말한다. 하지만, 요구사항과 여러 구현할 기능에 의해 싱글톤이 아닌 스코프도 필요한 경우가 많다. 이를 명시적으로 구분하려고 Scope라는 키워드가 존재한다. 빈 스코프 종류싱글톤 스코프스프링 프레임워크의 기본 스코프이며, 스프링 컨테이너 시작과 종료 사이에 유지되는 가장 넓은 범위의 스코프이다. 프로토타입 스코프프로토타입 빈의 생성과 의존 관계 주입까지만 관여하고 그 외에는..
[Spring] 빈 생명주기 콜백(Bean LifeCycle Callback)
·Spring
빈 생명주기 콜백(Bean LifeCycle Callback)이 필요한 이유?스프링 컨테이너가 객체를 관리한다는 것은 객체가 생성하고 소멸하는 생명주기 LifeCycle를 관리한다는 것이다. 여기서 콜백 함수란, 특정 이벤트나 조건이 발생했을 때 호출되는 함수이다. Spring 프로젝트 시작 시, DB 연결, 소켓 연결 등 시간이 걸려 미리 연결을 하고, 애플리케이션 종료 시점에 연결을 종료해야 하는 경우가 있다. 이 경우에는 객체를 초기화하고 종료하는 작업을 해줘야 한다. 예 : Connection Pool의 Connect, Disconnect 스프링 빈도 초기화와 종료 작업이 진행된다. 객체 생성, 의존 관계 주입의 생명주기를 가지고 있다. 결국, Spring Bean은 객체 생성과 의존 관계 주입이..
[Spring] 컴포넌트 스캔(Component Scan)
·Spring
컴포넌트 스캔@Component를 가진 모든 대상을 가져와 Bean에 등록하기 위해 찾는 과정을 말한다. 즉, 빈 설정 파일과 @Bean을 통해 빈을 일일이 지정할 필요가 없다. 즉, 명시적인 등록과 달리, 자동으로 빈을 등록하는 방법이다. 1. xml 파일에 설정하기 2. Java 파일 안에서 설정하기 (*실무에서 많이 쓰는 방법)@Configuration @ComponentScan(basePackages = "com.dx") public class AppConfig { } 컴포넌트 스캔 대상@Component : 컴포넌트 스캔에서 사용한다.@Controller : Spring MVC Controller에서 사용한다.@Service : Spring Business 로직에서 사용한다.@Repository..
[Spring] 스프링 싱글톤 컨테이너(Singleton Container)
·Spring
싱글톤이 등장한 배경스프링은 엔터프라이즈 웹 애플리케이션 기술을 지원하는 프레임워크이다. 주로 여러 클라이언트가 동시에 요청을 한다. 요청이 들어올 때마다 새로운 객체를 생성하는 것은 비효율적이다. 싱글톤 패턴싱글톤 패턴 포스팅 링크 [디자인 패턴] 싱글톤 패턴(Singleton Pattern)싱글톤 패턴(Singleton Pattern)이란?싱글톤 패턴은 디자인 패턴(Design Pattern) 중 생성 패턴(Creational Pattern)이다.생성 패턴 : 객체의 생성과 관련된 패턴이며, 객체의 생성 절차를 추상화하는 패턴객체cloud-grace.tistory.com싱글톤 패턴에 대한 자세한 내용은 위 포스팅을 참고하자. 싱글톤 예제 코드구현 방법은 여러 가지이지만, 객체를 미리 생성해두는 가장 ..
[Spring] POJO(Plain Old Java Object)란?
·Spring
POJO(Plain Old Java Object)란? 이전 포스팅에서 스프링의 삼각형으로 이루어진 스프링의 3대 요소 IoC/DI, AOP, PSA에 대해 알아보았다. 그럼 중앙에 있는 POJO는 무엇일까? 위 그림처럼 POJO는 3대 요소를 통해 POJO를 달성할 수 있다는 의미이다. POJO는 Plain Old Java Object의 약자이며, 말 그대로 오래된 방식의 간단한 자바 객체이다. 즉, 자바로 만드는 순수한 객체를 말한다. 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발하여 사용되었으며, 2009년 9월, 마틴 파울러 등이 사용하기 시작하였고, 아래와 같이 기원을 밝히고 있다.  우리는 사람들이 자기네 시스템에 보통의 객체를 사용하는 것을..
[Spring] 스프링의 삼각형(IoC/DI, AOP, PSA)
·Spring
스프링의 삼각형, 3대 요소(Spring Triangle)스프링의 삼각형(Spring Triangle), 즉, 스프링의 핵심 3요소가 있다. 1. IoC/DIIoC란 제어의 역전으로 스프링 컨테이너가 객체에 대한 제어권을 가지고 있는 것이며, DI는 의존 관계 주입으로 의존 관계를 외부에서 결정하는 것을 의미한다. IoC/DI 예제 코드 및 의존성 주입 3가지 방법 등에 대한 자세한 내용은 아래 포스팅에서 작성했다.IoC/DI 포스팅 링크 [Spring] IoC(Inversion of Control 제어의 역전), DI(Dependency Injection 의존성 주입), 의존성 주입 3가지 방법IoC(Inversion of Control, 제어의 역전)객체 생성 및 의존성 주입 등의 제어를 개발자가 아..
[Spring] 스프링 컨테이너(Spring Container), 스프링 빈(Bean), 빈 설정 방법(XML, Java 기반, Annotation 기반)
·Spring
스프링 빈(Spring Bean)스프링 빈(Spring Bean)은 스프링 컨테이너에 등록하여 관리하는 자바 객체이다.스프링의 IoC는 제어의 역전에서 객체 생성과 제어권을 스프링에게 넘겨주는 것이다. 여기서 사용자가 new 연산으로 객체를 생성하는 것이 아닌, 스프링에 의해 관리되는 자바 객체를 사용하며, 이를 빈(Bean)이라고 한다.또한, 자바 어플리케이션 동작을 책임지는 객체들은 독립적이지 않고 상호작용하여 동작한다. 서로 상호작용하는 객체들은 서로 의존 관계를 가진다. 따라서 스프링 컨테이너에 생성된 빈들에게 의존성 주입(Dependency Injection)을 해주는 역할도 가지고 있다. 스프링 컨테이너(Spring Container) 스프링에서 빈(객체)들을 관리하는 공간이며, 빈의 생성부터..
[디자인 패턴] 전략 패턴(Strategy Pattern)
전략 패턴(Strategy Pattern)이란?전략 패턴은 디자인 패턴(Design Pattern)중 행위 패턴(Behavioral Pattern)이다. 행위 패턴 : 클래스나 객체들이 서로 상호작용하는 방법이나 어떤 알고리즘, 작업을 어떤 객체에 할당하는 것이 좋을지 정의하는 패턴이다. 즉, 객체나 클래스의 교류 방법에 대해 정의하는 것이다. 하나의 객체만으로 수행할 수 없는 작업을 여러 객체로 나누면서 결합도를 최소화하게 해준다. 행위 클래스 패턴은 상속을 통해 알고리즘, 제어 흐름을 기술하고, 행위 객체 해턴은 하나의 작업을 수행하기 위해 객체 집합이 어떻게 협력하는지를 기술한다. GoF 디자인 패턴에 의하면 전략 패턴은 동일 계열의 알고리즘군을 정의하고 캡슐화하여 상호 교환이 가능하도록 한다. 전..
cloud-grace
'분류 전체보기' 카테고리의 글 목록 (2 Page)