스프링

[Spring] 컴포넌트 스캔
※ 본문은 인프런 김영한님의 스프링 강의를 바탕으로 학습한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] 컴포넌트 스캔이란? 스프링 빈은 자바 설정 클래스에서 @Bean으로, 혹은 XML에서 으로 등록할 수 있다. 하지만, 등록해야 할 스프링 빈이 수십, 수백개가 된다면 수동으로 관리하기 힘들 것이다. 그래서 스프링은 설정 정보(@Bean, 등) 없이도 자동으로 스프링 빈을 등록해주는 '컴포넌트 스캔' 기능을 제공한다. 다음은 컴포넌트 스캔을 하는 방법이다. (1) 컴포넌트 스캔을 사용하기 위해서는 스프링 설정 클래스(AppConfig.java라고 가정)에 @ComponentScan 애노테이션을 붙여준다. (2) 컴포넌트 스캔은 @Component 애노테이션이 붙은 클래스를 스캔..

[Spring] 싱글톤 컨테이너
※ 본문은 인프런 김영한님의 스프링 강의를 바탕으로 학습한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! 스프링 컨테이너가 아닌, 순수한 DI 컨테이너 AppConfig(DI를 설정한 자바 클래스라고 가정)는 클라이언트가 요청을 할 때마다 새로운 객체를 생성하여 DI를 수행한다. 즉, 초당 1000개의 요청이 있다면 1000개의 객체가 생성된 후 소멸되며, 이는 결국 메모리 낭비를 유발한다. 이를 해결하기 위해 무수히 많은 요청이 있더라도 객체를 딱 1개만 생성한 후 해당 객체를 공유하도록 설계하는 싱글톤 패턴을 활용할 수 있다. [ 1 ] 싱글톤 패턴이란? 싱글톤 패턴은 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. 즉, 자바에서는 하나의 JVM에 특정 객체의 인..