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

13selfesteem91님의 프로필 이미지
13selfesteem91

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 서비스 테스트

회원서비스테스트 12분 58초 질문

해결된 질문

작성

·

187

3

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

[질문 내용]

제가 자바코드에 대한 이해가 깊지 않은 상태에서 수강 중입니다. 제 논리에 이해되지 않는 부분이 있어서 질문드립니다.

강의 중 코드 16줄에서 memberService를 새로 만들었습니다. 그럼 memberService 안에 그 만의 memberRepository 가 생긴다고 생각했습니다.

그런데, clear를 위해 17줄에서 새로운 memberRepository를 만들고 있습니다. 이 memberRepository는 memberService 안의 memberRepository와 다른 것이지 않나요?? 이 memberRepository를 clear하는 게 memberServicememberRepository를 clear하는 행위가 아니라고 생각합니다.

제 부족함을 채워주시면 감사하겠습니다.

 

혹시 memberService가 static이라 모두 같은 객체를 공유하는 건가요??

답변 1

4

안녕하세요, 13selfesteem91 님! 공식 서포터즈 codesweaver 입니다.

MemoryMemberRepository 내부의 store 가 static 으로 선언되어 있는것이 중요합니다.

static 은 어떤 멤버변수 혹은 메서드가 '인스턴스'에 소속되지 않고 '클래스'에 속하게 되는데요.

 

간단하게 이해하면, 애플리케이션 내에서 유일하게 딱 하나만 존재하는 변수가 됩니다.

애플리케이션이 전체가 하나의 변수를 사용하는 셈이라 누가 언제 값을 변경할지 모른다는 위험도 있습니다.

 

강의의 예제는 store 가 static 으로 선언되어 있기에 MemberRepository를 몇 번 생성하든 같은 store를 사용하게 됩니다.

감사합니다.

13selfesteem91님의 프로필 이미지
13selfesteem91

작성한 질문수

질문하기