해결된 질문
작성
·
187
3
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
제가 자바코드에 대한 이해가 깊지 않은 상태에서 수강 중입니다. 제 논리에 이해되지 않는 부분이 있어서 질문드립니다.
강의 중 코드 16줄에서 memberService를 새로 만들었습니다. 그럼 memberService 안에 그 만의 memberRepository 가 생긴다고 생각했습니다.
그런데, clear를 위해 17줄에서 새로운 memberRepository를 만들고 있습니다. 이 memberRepository는 memberService 안의 memberRepository와 다른 것이지 않나요?? 이 memberRepository를 clear하는 게 memberService의 memberRepository를 clear하는 행위가 아니라고 생각합니다.
제 부족함을 채워주시면 감사하겠습니다.
혹시 memberService가 static이라 모두 같은 객체를 공유하는 건가요??
답변 1
4
안녕하세요, 13selfesteem91 님! 공식 서포터즈 codesweaver 입니다.
MemoryMemberRepository 내부의 store 가 static 으로 선언되어 있는것이 중요합니다.
static 은 어떤 멤버변수 혹은 메서드가 '인스턴스'에 소속되지 않고 '클래스'에 속하게 되는데요.
간단하게 이해하면, 애플리케이션 내에서 유일하게 딱 하나만 존재하는 변수가 됩니다.
애플리케이션이 전체가 하나의 변수를 사용하는 셈이라 누가 언제 값을 변경할지 모른다는 위험도 있습니다.
강의의 예제는 store 가 static 으로 선언되어 있기에 MemberRepository를 몇 번 생성하든 같은 store를 사용하게 됩니다.
감사합니다.