[스프링 입문] 회원 서비스 개발

enxnong·2023년 4월 23일
0

Spring

목록 보기
12/26

김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 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);
    }

}

서비스 구현을 완료했으면 테스트를 통해 문제 없이 코드가 작동되는지 검증해야 된다.

profile
높은 곳을 향해서

0개의 댓글