싱글톤이 뭔가요..
913
5 asked
싱글톤이 뭔가요..
Answer 2
5
1. 싱글톤 패턴(Singleton pattern)
싱글톤 패턴(Singleton pattern) 이란 생성자가 여러 차례 호출되더라도 실제로 객체를 단 하나만 생성하는 방법입니다. 즉, 처음 객체를 생성한 이후에 호출될 경우 이미 생성한 객체를 반환하여 하나의 인스턴스만을 사용하게 만드는 것을 말합니다.
2. 싱글톤 패턴 구현
2-1) 싱글톤 패턴을 사용하지 않았을 경우
@Test
void pureContatiner() {
AppConfig appConfig = new AppConfig();
//1. 호출할 때마다 다른 객체를 생성
MemberService memberService1 = appConfig.memberService();
//2. 호출할 때마다 다른 객체를 생성
MemberService memberService2 = appConfig.memberService();
Assertions.assertThat(memberService1).isNotSameAs(memberService2);
}
기본적으로 'Member member = new Member()'처럼 new 연산자를 이용해 객체를 생성하면 계속해서 객체를 만들어냅니다. 만약 많은 객체를 생성해야 하는 서비스(ex. 배민)를 만들 경우, 이방법을 사용한다면 메모리 낭비가 심해지게 됩니다.
2-2) 싱글톤 패턴을 사용할 경우
스프링 컨테이너를 예로 들면
@Test
void springContainer() {
AnnotationConfigApplicationContext appConfig = new AnnotationConfigApplicationContext (AppConfig.class);
MemberService memberService1 = appConfig.getBean(MemberService .class);
MemberService memberService2 = appConfig.getBean(MemberService .class);
System.out.println("memberService1 = " + memberService1);
System.out.println("memberService2 = " + memberService2);
Assertions.assertThat(memberService1).isSameAs(memberService2);
}

스프링 컨테이너로 Bean 객체를 호출할 경우 동일한 객체를 불러오는 것을 알 수 있습니다. (참조값 동일)
spring mvc project 안뜸...
0
171
1
Project 'ch02_pjt_01' has no explicit encoding set ch02_pjt_01 /ch02_pjt_01 No explicit project encoding
0
2071
1
xml 부분 오류가 나옵니다.
0
301
1
spring legacy project 발견되지 않아서 문의 드립니다!
0
670
1
StudentDao파일은 생성자가 없는데 왜그런가요?
0
381
1
스프링 레거시 프로젝트 생성 오류 질문드립니다.
0
388
1
application context.xml 관련 문의
0
570
2
StudentAssembler 클래스 질문드립니다.
0
340
0
sts를 설치하니까 해당 오류때문에 진도를 못나가고있습니다..
0
1053
1
qualifier 를 왜 [퀄리필러]로 발음 하시는지 ㅠㅠ 처음에 잘 못알아들엇네요
2
470
0
spring MVC project 가 보이지 않아요
0
483
1
'커넥션 풀' 등 DB와 연동하는 setup 에서의 유저정보 노출의 문제
0
321
0
memLogin 메서드에서 @RequestParam으로 받을시
0
229
0
model 파라미터가 들어온다고 하셨는데
0
274
1
import 시, pom.xml 파일 인식 못함
0
783
1
해결법 - The type org.springframework.context.ConfigurableApplicationContext cannot be resolved.
0
1379
0
12강 어노테이션에서 MainClassUseConfiguration.java 이거 돌리면 Cannot load configuration class: ems.member.configuration.MemberConfig 에러 나오는데 어떻게 해결하나요
0
1436
2
질문드립니다!
0
258
0
STS 설치와 MVC 프로젝트 생성 에러
0
334
0
처음 시작하며 compiler path 또는 version 관련 에러로 run 안될시
1
295
1
Join 과 Main으로 가는 링크 질문 (17강 13분)
0
229
0
14강 STS3 설치시 마켓플레이스에서 찾을 수 없을 때 해결방법
3
2848
0
이런 에러가 나오는데요. 왜 그런 걸까요?
0
305
1
Assembler와 DAO의 차이가 뭔가요?
0
423
2

