스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했기에, 대부분 스프링 애플리케이션은 웹 애플리케이션이다. (웹이 아닌 애플리케이션 개발도 가능)
웹 애플리케이션은 보통 여러 고객이 동시에 요청한다.

1. 스프링 없는 순수한 DI 컨테이너 테스트
- src/test/java/hello/core/singleton/SingletonTest.java
package hello.core.singleton;
import hello.core.AppConfig;
import hello.core.member.MemberService;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.*;
public class SingletonTest {
@Test
@DisplayName("스프링 없는 순수한 DI 컨테이너")
void pureContainer() {
AppConfig appConfig = new AppConfig();
// 1. 조회: 호출할 때마다 객체 생성
MemberService memberService1 = appConfig.memberService();
// 2. 조회: 호출할 때마다 객체 생성
MemberService memberService2 = appConfig.memberService();
// 참조값이 다른 것을 확인
System.out.println("memberService1 = " + memberService1);
System.out.println("memberService2 = " + memberService2);
// memberService1 != memberService2
assertThat(memberService1).isNotSameAs(memberService2);
}
}
스프링 없는 순수한 DI 컨테이너 AppConfig 는 요청할 때마다 객체를 새로 생성한다.
고객 트래픽이 초당 100건이 나오면, 초당 100개의 객체가 생성되고 소멸되어 메모리 낭비가 심하다.
따라서 해당 객체가 딱 1개만 생성되고, 공유하도록 설계한다.
-> 싱글톤 패턴
참고링크 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8?cid=325969
스프링 핵심 원리 - 기본편| 김영한 - 인프런 강의
현재 평점 5.0점 수강생 49,545명인 강의를 만나보세요. 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 스프링 기본 기능, 스프
www.inflearn.com
'강의 실습 > 스프링 핵심 원리 - 기본편' 카테고리의 다른 글
| 싱글톤 컨테이너 (0) | 2026.04.15 |
|---|---|
| 싱글톤 패턴 (0) | 2026.04.14 |
| 스프링 빈 설정 메타 정보 - BeanDefinition (0) | 2026.04.12 |
| 다양한 설정 형식 지원 - 자바 코드, XML (1) | 2026.04.11 |
| BeanFactory와 ApplicationContext (0) | 2026.04.11 |
댓글