[Java Spring 무작정 따라하기] 회원 서비스 개발

khj·2024년 7월 27일
post-thumbnail

✨ 회원 서비스 생성

회원 서비스는 회원 리포지토리와 도메인을 활용해 만드는 핵심 비즈니스 로직이다.
핵심 비즈니스 로직이라 해도 시작부터 복잡한 기능을 만들 순 없으니 간단한 기능을 먼저 만들 것이다.

회원 가입 기능을 먼저 만들어 볼 것이다.

// hello.hello_spring/service/MemberService.java
package hello.hello_spring.service;

import hello.hello_spring.domain.Member;
import hello.hello_spring.repository.MemberRepository;
import hello.hello_spring.repository.MemoryMemberRepository;

public class MemberService {

    private final MemberRepository memberRepository = new MemoryMemberRepository();

    public Long join(Member member) {
        validateDuplicateMember(member);
        memberRepository.save(member);
        return member.getId();
    }

    private void validateDuplicateMember(Member member) {
        memberRepository.findByName(member.getName())
                .ifPresent(m -> {
                    throw new IllegalStateException("이미 존재하는 회원입니다.");
                });
    }
}

회원가입 기능 자체는 그냥 유저를 리포지토리에 저장하면 되지만 너무 단순하니 이미 존재하는 이름은 제한할 수 있도록 작성했다.
findByName을 사용해 같은 이름의 유저를 찾도록 하고 만약 존재한다면(ifPresent) IllegalStateException 를 통해 예외 처리를 했다.

// hello.hello_spring/service/MemberService.java
...
import java.util.List;
import java.util.Optional;

public List<Member> findMembers() {
    return memberRepository.findAll();
}

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

나머지 기능들도 단순한 return이지만 서비스에 추가했다.

profile
Spring, Django 개발 블로그

0개의 댓글