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

성호님의 프로필 이미지

작성한 질문수

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

컴포넌트 스캔과 자동 의존관계 설정

findByName메서드 질문

22.05.25 14:30 작성

·

201

0

MemoryMemberRepository라는게 DB CRUD의 역할을 하는거라고 생각하고 DTO의 역할을 한다고 생각하면 되는게 맞는지요? 그리고 @Override public Optional<Member> findById(Long id) { return Optional.ofNullable(store.get(id)); }
이렇게 썼는데 왜 findByName은 위에 와 다른게 찾는것일까요? 같은 찾기 메서드인데 말이죠
@Override public Optional findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); }
name은 위와 같은 코드이더라고요 store.values().stream() .filter(member -> member.getName().equals(name)) .findAny();이런 메서드들은 무슨의미인지도 궁금합니다.

답변 1

0

David님의 프로필 이미지

2022. 05. 25. 14:55

안녕하세요. 성호님, 공식 서포터즈 David입니다.

1. Repository는 DTO가 아닙니다.

2. 동일한 데이터를 조회하는 메서드라도 조회 조건에 따라 내부 구현이 다를 수 있습니다. store 변수의 타입인 Map에 대해 학습하시면 좋을 것 같습니다.

3. 해당 코드는 java 8에서 추가된 스트림을 사용한 코드입니다. 이 부분은 자바 스트림 이란 키워드로 검색하셔서 학습해주세요.

본 강의는 자바 기본 문법을 알고 있다는 가정 하에 진행되는 강의임을 참고 부탁드립니다.

감사합니다.

성호님의 프로필 이미지

작성한 질문수

질문하기