Spring/Spring Core Basic

회원 서비스 개발 (회원 가입, 회원 조회)

JWonK 2022. 1. 5. 15:51
728x90
반응형

앞서 Repository 인터페이스 및 구현체 -> testCase 작성을 통해 Repository 저장소 구현은 완료했습니다.

이제 간단한 회원 가입과 회원 조회 서비스를 구현해볼텐데

 

회원 가입 조건은 같은 이름이 존재하는 회원은 회원 가입 할 수 없도록 만들거고 같은 이름을 가진 회원이 존재하는지 확인하는 메소드를 따로 만듭니다.

 

회원 조회 서비스는 모든 회원을 조회하는 것과 회원 아이디를 통해 한 명의 회원만 조회하는 서비스를 만듭니다.

package Hello.HelloBus.service;

import Hello.HelloBus.domain.Member;
import Hello.HelloBus.repository.MemberRepository;
import Hello.HelloBus.repository.MemoryMemberRepository;

import java.util.List;
import java.util.Optional;

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->{
                    throw new IllegalStateException("이미 존재하는 회원입니다.");
                });
    }

    /* 회원 조회 서비스 */
    public List<Member> findMembers(){
        return memberRepository.findAll();
    }

    public Optional<Member> findOne(Long memberId){
        return memberRepository.findById(memberId);
    }
}

정말 간단하게 가장 먼저 repository 객체를 생성해줍니다. 

회원 가입 서비스는 member 객체의 name을 repository안 회원과의 비교를 통해 이미 존재하는 회원인 경우만 확인해줍니다. 만약 이미 존재하는 회원 이름일 경우 throw를 통해 오류구문을 출력해주고, 존재하지 않을 경우 repository에 저장해줍니다.

 

회원 조회 서비스는 repository객체의 method를 통해 간단하게 구현해줍니다.

 

 

728x90
반응형