-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
findById(Long memberId)가 궁금합니다
21.11.12 01:23 작성 조회수 518
0
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
답변을 작성해보세요.
4
OMG
2021.11.12
안녕하세요. 김주형님, 공식 서포터즈 OMG입니다.
1.
STEP1 ) MemoryMemberRepository.class
findById 메서드는
데이터베이스 대신 사용하는 메모리 저장소인 store에서 파라미터로 받은 memberId로 Member객체를 가져와서 반환합니다.
STEP2) MemberServiceImpl.class
findMember 메서드는 파라미터로 받은 member의 id (memberId)를 통해 저장소에서 id로 Member를 찾아서 반환합니다.
질문주신 부분에 대해 답변을 드리면
Member의 getId는 Member객체 자체에서 id를 가져오는 반면, findById는 Member들의 저장소에서 member의 Id를 통해 member를 조회한 후, Member를 반환한다는 차이점이 있습니다.
예를 들어,
인프런에서 제 고유id는 202271입니다. 아래의 링크를 들어가보시면 제 정보가 출력되는 것을 확인하실 수 있을꺼에요.
https://inflearn.com/users/202271
member.getId()는 저라는 회원 객체의 id(202271)를 반환하는 반면,
[1]findById()는 findById(202271) 혹은
Long omgId = 202271L;
findById(omgId);
[2]
Member omg;
인프런회원데이터저장소.findById(omg.getId());
와 같이 데이터저장소에서 조회하고자하는 id를 통해서 회원데이터를 가져온다는 차이점이 있습니다.
[1]과 [2]의 경우,인프런 회원저장소에서 조회하고자 하는 id에 제 id를 인자로 넣었으니 제가 조회되겠죠?
2.
(자바와 스프링에 대한) 프로그래밍 경험이 적다면 어려울 수 있지만, 경험이 조금 있으신 분들(조금만 학습하시게 되면) 어려운 개념은 아니라고 생각합니다.
프로그래밍에 대한 학습을 꾸준히 하신다면 어느순간 생각이 트이면서 이해하시게 될거라고 생각하며 그렇게 되기까지 영한님과 서포터즈가 도움드릴테니 강의 수강하시다가 강의와 관련된 궁금한점 있으시면 언제든 질문 남겨주세요.
감사합니다.
임동근
2022.06.17
설명해주신걸 보고 이해를 하고있는 과정에서 궁금한게 생겨서 리플 남깁니다
제 id가 1이고 name이 20777이면
제가 getid라는 걸로 호출을 하면 1(20777) 이 나오는 거고 findById(1) 하면 20777이 나온다는 말씀으로 이해했습니다
그럼 저걸 조회하는 곳은 전부 store에서 조회하거나 DB에서 조회하는 건가요?
OMG
2022.06.17
자바 변수에 값을 저장하고 가져올 수도,
DB에 저장하여 DB에서 꺼내서 조회 할 수 있겠죠.
강의에서는 store라는 Map데이터(=store 변수)에 값을 저장한 것으로 보시면 됩니다.
답변 1