작성
·
301
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
스프링 MVC 1편 - 회원 관리 웹 애플리케이션 요구사항 강의를 듣다 질문이 생깁니다.
이 때 test를 하면서 MemberRepository를 싱글톤으로 유지한다 하셨는데
테스트 코드에서 바로 MemberRepository.getInstance를 사용할 수 있는 이유가 MemberRepository 클래스에서 static으로 new를 해서 맞나요??
제 이해로는 코드가 실행이 되면 모든 static 부분 코드를 읽어 실행하는데 이 때 new MemberRepository가 실행되어 객체가 생성되었다 이해했습니다. 제 이해가 맞을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요. 사용자님의 질문에 답변드리겠습니다.
스프링 MVC 1편 - 회원 관리 웹 애플리케이션 요구사항 강의에서 테스트 코드에서 MemberRepository를 싱글톤으로 유지하는 방법을 말씀드리신 부분이 궁금하신 것이 맞나요?
정답은 예입니다. MemberRepository 클래스에서 static으로 new를 사용해 객체를 생성하면, 해당 클래스의 인스턴스를 한 번만 생성하고 모든 곳에서 공유할 수 있게 됩니다. 즉, MemberRepository.getInstance()를 통해 어디서든 동일한 인스턴스에 접근할 수 있게 됩니다.
static 부분 코드는 프로그램 실행 시 한 번만 실행되는데, 그 때 MemberRepository 클래스의 static 블록에서 new MemberRepository()를 호출하여 객체를 생성합니다. 이후에는 getInstance() 메소드를 통해 생성된 인스턴스를 반환하게 됩니다.
이러한 방법으로 MemberRepository를 싱글톤으로 구현하여 객체를 공유하고, 여러 테스트 코드에서 접근하여 사용할 수 있게 됩니다.
제 답변이 도움이 되셨길 바랍니다. 추가로 궁금하신 사항이 있으시면 언제든지 물어보세요. 감사합니다.