Spring/Core(7)
-
7. 빈 스코프
1. 빈 스코프란?빈 스코프란 빈이 존재할 수 있는 범위를 뜻한다. 스프링은 다음와 같은 다양한 빈 스코프를 지원한다. 싱글톤: 디폴트 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프프로토타입: 스프링 컨테이너가 빈의 생성과 의존관계 주입, 초기화까지만 관여하고 더는 관리하지 않는 짧은 범위의 스코프웹 관련 스코프request: 웹 요청이 들어오고 나갈 때까지 유지되는 스코프session: 웹 세션이 생성되고 종료될 때까지 유지되는 스코프application: 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 빈 스코프 별 용도 singleton대부분의 서비스, 리포지토리 등재사용 + 메모리 효율 좋음prototype매번 새로운 객체가 필요할 때 예: 사용자 요청마다 새로운..
2025.04.15 -
6. 빈 생명주기 콜백
1. 스프링 빈 생명주기 흐름 1. 스프링 컨테이너 생성2. 컴포넌트 스캔 및 BeanDefinition 등록3. 객체 생성 및 의존성 주입4. 초기화 콜백5. 빈 사용6. 스프링 컨테이너 종료 시, 소멸 콜백7. 빈 소멸, 스프링 컨테이너 종료1) 스프링 컨테이너 생성new AnnotationConfigApplicationContext(설정정보.class) 2) 컴포넌트 스캔 및 빈 등록(BeanDefinition 등록)설정정보 클래스에 @ComponentScan이 붙어 있으면, 스프링이 클래스패스를 뒤져서 @Component, @Service, @Repository, @Controller 등 스캔 대상이 되는 클래스들을 찾아냄.찾은 클래스들은 BeanDefinition이라는 이름표(설계도) 형태로 스..
2025.04.14 -
5. 컴포넌트 스캔과 의존관계 자동 주입
컴포넌트 스캔과 의존관계 자동 주입1. 지금까지의 스프링 빈 등록 및 객체 생성, 의존관계 주입의 과정//스프링 컨테이너 생성, 매개변수에 설정정보 파일 전달 ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); @Configuration //설정정보 클래스임을 알리는 애노테이션, 싱글톤 보장public class AppConfig { @Bean //자바코드 메서드와 @Bean 애노테이션을 통해 스프링 컨테이너에 빈 수동 등록 public MemberService memberService() { return new MemberServiceImpl(memberRepository()); ..
2025.04.14 -
4. 싱글톤 컨테이너
1. 웹 애플리케이션과 싱글톤 패턴1) 싱글톤 패턴의 필요성웹 어플리케이션은 보통 동시에 여러 클라이언트로부터 요청이 들어온다. 이때, 만약 이전에 우리가 직접 구현한 AppConfig.class를 DI 컨테이너로 사용하면 모든 memberService 요청시마다 새로운 객체를 생성해서 사용한다. 이렇게 매 요청마다 객체를 새로 생성하는 것은 메모리 낭비가 심해 효율적인 설계라 할 수 없다. 해결방안은 하나의 클래스마다 객체를 1개만 생성하도록 하고 요청마다 해당 객체를 공유하도록 설계하면 된다. → 이것이 싱글톤 패턴2) 싱글톤 패턴 구현하기 public class SingletonService { // 1. 클래스가 만들어질 때 객체도 static하게 만들어 놓는다 // 그리고 해당 클래스..
2025.04.10 -
3. 스프링 컨테이너와 스프링 빈
1. 스프링 컨테이너와 스프링 빈1) IoC ContainerIoC: Inversion of Control, 제어의 역전 프로그래밍 제어의 흐름을 개발자가 아닌 프레임워크에서 처리하는 것구현 객체를 생성하고, 연결하고, 실행하는 것은 프레임 워크에 맡기고 개발자는 로직을 구현하는 것에 집중IoC ContainerIoC를 구현한 구체적인 프레임워크 IoC Container는 객체의 생성, 초기화, 의존성 처리 등을 자동으로 수행해준다. 의존관계 주입에 초점을 맞추어 최근에는 주로 DI 컨테이너라 한다. 또는 어샘블러, 오브젝트 팩토리 등으로 불리기도 한다. 대표적인 IoC Container로는 Spring Framework의 ApplicationContext 가 있다.2) Bean, BeanFactory..
2025.04.04 -
2. 스프링 핵심 원리 이해
스프링 핵심 원리 - 기본편 강의 | 김영한 - 인프런김영한 | , 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 수강 전 확인해주세요! 본 강의는 자바 스프링 완전 정복 시리즈의 두 번째 강의입니다. 우아한형제들 최연www.inflearn.com 해당 강의를 듣고 요약 정리한 포스팅입니다.[강의 흐름] STEP1. 예제 만들기 (순수 Java 코드) ↓STEP2. 객체 지향 원리 적용하기 ↓STEP3. 적용한 객체 지향 원리 정리 ↓STEP4. 스프링으로 전환하기 STEP1. 예제 만들기 (순수 Java 코드) 1. 회원 도메인1) 회원 도메인 요구사항회원을 가입하고 조회할 수 있다.회원은 일반과 VIP 두 가지 등급이 있다.회원 데이터는 자체 DB를 구..
2025.03.31