답변 1
0
안녕하세요. 이준승님, 공식 서포터즈 y2gcoder입니다.
제가 이준승님의 질문의 의도를 제대로 파악한 것인지 잘 모르겠습니다!
먼저 MemoryMemberRepository는 Member 데이터를 저장하는 저장소입니다. 또한 Member 데이터를 id를 통해 조회할 수도 있어야 하기에 List보다는 Map을 이용해서 key 값에 Member의 id 값, value에 Member 객체 자체를 넣어준 것입니다.
또한 접근제어자로 private을 사용한 이유는 MemoryMemberRepository 외부에서 함부로 해당 저장소(Map)자체를 변경하지 못하게 하기 위함이고 static으로 설정해준 이유는 여러 MemoryMemberRepository 인스턴스에서 해당 store 변수를 공유하기 위함입니다. static을 제거하면 MemoryMemberRepository 인스턴스를 새로 생성할 때마다 store도 새로 생성되기 때문에 안에 있는 값들이 서로 공유되지 않습니다. 개인적으로 MemoryMemberRepository는 DB를 가정하고 만들었기 때문에 새로 인스턴스를 생성할 때마다 기존의 데이터가 날아가면 안되고, 이전에 넣었던 데이터가 그대로 공유되어야 하기 때문에 static 키워드를 사용하신게 아닐까 생각합니다!
감사합니다.
이해되었네요 감사합니다!