김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 보면서 공부한 내용입니다.
핵심 비즈니스 로직 구현
service패키지 안에 MemberService
클래스를 만들어 비즈니스 로직을 설계한다.
회원 가입, 회원 조회 기능을 구현할 것이다.
public class MemberService {
/*
회원 서비스란?
회원 리포지토리랑 도메인을 활용해서 실제 비즈니스 로직을 작성하는 곳
*/
private final MemberRepository memberRepository = new MemoryMemberRepository();
/**
* 회원 가입
*/
public Long join(Member member) {
// 조건 : 같은 이름이 있는 회원은 중복 가입x
validateDuplicateMember(member); // 중복 회원 검증
memberRepository.save(member); // 중복 아닌 경우 저장
return member.getId(); // 아이디 반환
}
private void validateDuplicateMember(Member member) {
memberRepository.findByName(member.getName())
.ifPresent(m -> { // ifPresent:값이 존재하면(널이 아니면)
throw new IllegalStateException("이미 존재하는 회원입니다.");
});
}
/**
* 전체 회원 조회
*/
public List<Member> findMembers(){
return memberRepository.findAll();
}
/**
* 개별 회원 조회
*/
public Optional<Member> findOne(Long memberId){
return memberRepository.findById(memberId);
}
}
서비스 구현을 완료했으면 테스트를 통해 문제 없이 코드가 작동되는지 검증해야 된다.