Hỏi & Đáp
싱글톤이 뭔가요..
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 객체를 호출할 경우 동일한 객체를 불러오는 것을 알 수 있습니다. (참조값 동일)
- Lượt thích
- 0
- Số bình luận
- 2
- Lượt xem
- 927

