순서
- 3. 회원 관리 예제 - 백엔드 개발
- 3.1 비즈니스 요구사항 정리
- 3.2 회원 도메인과 리포지토리 만들기
- 3.3 회원 리포지토리 테스트 케이스 작성
- 3.4 회원 서비스 개발
- 3.5 회원 서비스 테스트
3.2 회원 도메인과 리포지토리 만들기
domain 패키지와 Member 클래스 (회원 객체) /
repository 패키지와 MemberRepository 인터페이스 (회원객체 저장을 위한것), MemoryMemberRepository 클래스를 생성하자
Member 클래스 ( 고유 id 값과 회원이름만 가지고 있는 Member Class 이다. )
MemberRepository 인터페이스
Optional은 java8에서 추가된 기능으로써, findById 나 findByName 등으로 회원의 정보를 가져왔을때, 정보가 null 일 수가 있는데, 이 null을 처리하는데 있어서 null을 그대로 반환하는대신 Optional을 이용하여 한번 감싸준 후 반환하는 방식을 많이 쓴다.
MemberRepository 인터페이스의 구현체인 MemoryMemberRepositry클래스를 작성하자
멤버 id 와 멤버 객체를 저장하는 store Map 과, id를 나타내는 sequence를 작성한다. ( 실무에서는 동시성 문제를 고려하여 더 엄격한 형태로 한다.)
save()는 회원정보를 store Map에 저장후 member를 반환한다.
findById() 는 인자로 받은 id와 일치하는 값을 store Map 에서 꺼내어 반환한다.
이 때, 결과가 없을 경우 null 값이 올 수 있는데, Optional.ofNullable()로 감싸주면, null이어도 반환하여 (클라이어단에서) 조치를 할 수 있다.
findByName() 은 filter내의 람다식을 통해, 인자로 받은 name 과 member.getName()이 일치하는지 비교 후 일치하는게 있다면 반환한다.
(루프를 돌면서 하나가 찾아지면 반환, 하나도 못찾는다면 optional에 null이 포함되어 반환된다. )
findAll() 은 store에 있는 모든 member들을 반환한다.
다음 시간에는 이 작성한 클래스가 제대로 동작하는지 확인하기 위해, 테스트 케이스를 작성해 보자!
'Java | Spring > Spring 입문' 카테고리의 다른 글
[스프링 입문] 3.4 회원 서비스 개발 (0) | 2021.10.26 |
---|---|
[스프링 입문] 3.3 회원 리포지토리 테스트 케이스 작성 (0) | 2021.10.05 |
[스프링 입문] 3.1 비즈니스 요구사항 정리 (0) | 2021.09.15 |
[스프링 입문] 2.3 API (0) | 2021.09.15 |
[스프링 입문] 2.2 MVC와 템플릿 엔진 (0) | 2021.09.14 |
댓글