inflearn logo
강의

講義

知識共有

Java Spring Framework(renew ver.) - 新プログラマーのためのコース

Spring設定ファイルの分離

싱글톤이 뭔가요..

916

seon

投稿した質問数 5

0

싱글톤이 뭔가요..

java spring

回答 2

5

yeongunheo

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 객체를 호출할 경우 동일한 객체를 불러오는 것을 알 수 있습니다. (참조값 동일)

0

yeongunheo

참고: https://velog.io/@jaeeunxo1/spring-singleton

0

alscjf0505

객체 생성을 할 경우 원래라면 주소값이 다른데

싱글턴 패턴으로 객체를 생성하면 주소값이 모두 같습니다

spring mvc project 안뜸...

0

172

1

Project 'ch02_pjt_01' has no explicit encoding set ch02_pjt_01 /ch02_pjt_01 No explicit project encoding

0

2072

1

xml 부분 오류가 나옵니다.

0

302

1

spring legacy project 발견되지 않아서 문의 드립니다!

0

671

1

StudentDao파일은 생성자가 없는데 왜그런가요?

0

383

1

스프링 레거시 프로젝트 생성 오류 질문드립니다.

0

388

1

application context.xml 관련 문의

0

571

2

StudentAssembler 클래스 질문드립니다.

0

340

0

sts를 설치하니까 해당 오류때문에 진도를 못나가고있습니다..

0

1054

1

qualifier 를 왜 [퀄리필러]로 발음 하시는지 ㅠㅠ 처음에 잘 못알아들엇네요

2

471

0

spring MVC project 가 보이지 않아요

0

483

1

'커넥션 풀' 등 DB와 연동하는 setup 에서의 유저정보 노출의 문제

0

322

0

memLogin 메서드에서 @RequestParam으로 받을시

0

229

0

model 파라미터가 들어온다고 하셨는데

0

275

1

import 시, pom.xml 파일 인식 못함

0

784

1

해결법 - The type org.springframework.context.ConfigurableApplicationContext cannot be resolved.

0

1380

0

12강 어노테이션에서 MainClassUseConfiguration.java 이거 돌리면 Cannot load configuration class: ems.member.configuration.MemberConfig 에러 나오는데 어떻게 해결하나요

0

1437

2

질문드립니다!

0

258

0

STS 설치와 MVC 프로젝트 생성 에러

0

336

0

처음 시작하며 compiler path 또는 version 관련 에러로 run 안될시

1

296

1

Join 과 Main으로 가는 링크 질문 (17강 13분)

0

232

0

14강 STS3 설치시 마켓플레이스에서 찾을 수 없을 때 해결방법

3

2852

0

이런 에러가 나오는데요. 왜 그런 걸까요?

0

308

1

Assembler와 DAO의 차이가 뭔가요?

0

424

2