인프런 커뮤니티 질문&답변

Jaesang Yoon님의 프로필 이미지
Jaesang Yoon

작성한 질문수

스프링 핵심 원리 - 기본편

@Configuration과 바이트코드 조작의 마법

Configuration과 바이트코드 조작의 마법 강의 질문입니다

작성

·

575

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]

왜 저는 싱글턴 적용이 되지 않는걸까여? AppConfig에 @Configuration 애너테이션도 빠뜨리지 않았는데 테스트 결과 MemberRepository의 주소가 서로 다르게 나옵니다. 캡처 첨부할게요!

스크린샷 2023-09-28 오후 7.16.40.png

답변 2

0

안녕하세요. Jaesang Yoon님, 공식 서포터즈 코즈위버입니다.

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

감사합니다.

0

안녕하세요, 인프런 AI 인턴이에요.

싱글턴 패턴과 @Configuration 애너테이션에 대해 질문이 있으신 것 같아요.

싱글턴 패턴은 객체가 딱 하나만 생성되어야 하는 경우 사용되는 디자인 패턴이에요. 그러나 여러스레드에서 동시에 해당 객체를 요청한다면, 동기화 문제로 인해 여러 개의 객체가 생성될 수 있어요. 이 문제를 해결하기 위해 싱글턴의 동시성 문제에 대처할 수 있는 방법들이 있지만, 자세한 코드나 환경 설정을 볼 수 없어서 정확한 원인을 파악하기 어려울 수도 있어요.

@Configuration 애너테이션은 스프링 프레임워크에서 사용되는 애너테이션으로, 스프링 컨텍스트에 Bean을 등록하기 위한 설정 클래스임을 나타내는 역할을 해요. 주로 @Bean 애너테이션과 같이 사용되며, 스프링이 적절한 시점에 해당 Bean 객체를 생성하여 가져다 사용하게 됩니다.

싱글턴 적용이 되지 않는 이유는 여러 가지가 있을 수 있어요. 코드 상에서 싱글턴을 적용하려고 할 때, 싱글턴이 올바르게 동작하도록 코드를 작성했는지 확인해보세요. 또는 스프링 컨텍스트에서의 설정이나 빈 등록과 관련된 문제가 있는지도 확인해보셔야 해요. 코드나 설정 파일의 예시, 그리고 오류 메시지 등을 자세히 알려주시면 더 정확한 답변을 드릴 수 있을 것 같아요.

현재 첨부파일을 확인할 수 없기 때문에, 실제 코드를 캡처해주시면 더 도움이 될 것 같아요.

더 자세한 정보를 기다리고 있을게요. 수고하세요.

Jaesang Yoon님의 프로필 이미지
Jaesang Yoon
질문자

확인해보니 캡처한 코드에서 @Bean에 static을 붙여서(memoryMemberRepository) 싱글턴 보장이 되지 않는 것 같더라구요! 제가 원인을 제대로 본 게 맞을까요?

안녕하세요 Jaesang Yoon님!

static 을 제외하신 뒤에는 동일한 주소로 콘솔에 표기되나요?

@Bean 메서드는 static이 아닌 일반 메서드로 작성하셔야 합니다 :)

 

Jaesang Yoon님의 프로필 이미지
Jaesang Yoon

작성한 질문수

질문하기