이제 회원 서비스를 개발해보자.
main -> java -> com.example.hellospringboot 로 가서 service라는 Package를 하나 만들어주고, 그 안에 MemberService라는 Class를 하나 만들어주자.
이 클래스 안에 위와 같은 코드를 작성해 주었다.
먼저 이전에 작성해 주었던 MemberRepository 타입을 가지는 memberRepository 객체를 상수로 선언해준다.
일단 가입하려는 이름과 같은 이름이 이미 store에 저장되어 있으면 그 회원은 가입이 불가하도록 하는 로직을 구현해보았다.
join함수는 ValidateDuplicateMember 함수를 실행하고 Member객체를 매개변수로 받는다.
ValidateDuplicateMember 함수는 이전에 Repository에서 정의해 준 findByName을 활용하여 Optional<Member> 타입의 결과를 반환해주고, 반환 값이 존재하는지 확인하는 ifPresent문을 실행하여 만약 아무것도 반환해주지 않았다면 IllegalStateException을 이용해 "이미 존재하는 회원입니다." 라는 메시지를 띄우게 해주었다.
존재한다면 매개변수로 받은 member을 store에 저장해준 뒤, 이 member의 id를 return 해준다.
이제 전체 회원을 조회하는 로직을 구현해보자.
findMembers함수 역시 이전에 Repository에서 정의해 준 findAll 함수를 활용하여 store에 저장되어있는 Member 객체들을 List 형식으로 반환하여준다.
마지막으로 id를 통해 특정 회원을 찾는 로직을 구현해보자.
findOne함수는 memberId를 매개변수로 갖고, 역시 마찬가지로 이전에 Repository에서 정의해 준 findById에 memberId를 넘겨서 특정 Member객체를 Optional<Member> 타입으로 반환해준다.
'BackEnd > Spring Boot' 카테고리의 다른 글
컴포넌트 스캔 & Autowired 통한 스프링 빈 등록 (2) | 2022.10.13 |
---|---|
회원 Service 테스트하기 (2) | 2022.10.13 |
회원 Repository 테스트 케이스 작성하기 (2) | 2022.10.08 |
회원 Domain과 Repository 만들기 (0) | 2022.10.07 |
API 란? (4) | 2022.10.03 |