본문 바로가기
코드로 배우는 스프링 부트 - 인프런

회원 서비스 개발

by step 1 2022. 8. 7.
반응형

Service 패키지 생성 및 MemberService 클래스 작성

package hello.hellospring.service;

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

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

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) {
        // 같은 이름이 있는 중복 회원X
//        Optional<Member> result = memberRepository.findByName(member.getName());
//        // result가 만약 값이 있을경우(ifPresent) -> optional로 반환되기 때문에 가능
//        result.ifPresent(m -> {
//            throw new IllegalStateException("이미 존재하는 회원입니다.");
//        });

        // 위에 코드를 권장되는 코드로 바꾼 결과
        memberRepository.findByName(member.getName())
                        .ifPresent(m -> {
                            throw new IllegalStateException("이미 존재하는 회원입니다.");
                        });
    }
    
    /*
     전체 회원 조회
    */
     
    public List<Member> findMembers(){
        return memberRepository.findAll();
    }
    
//  회원 ID 조회
    public Optional<Member> findOne(Long memberId) {
        return memberRepository.findById(memberId);
    }
}

 

인텔리제이 자동 optional 반환값 생성 단축키: 해당 코드 드래그 + ctrl + alt + v

https://my-t-space.tistory.com/45

 

Intellij 단축키

참고링크 ifuwanna.tistory.com/241 alt+ins : 필요한 generate 호출 가능 alt+enter : import crtl+shift+F10 : 해당 영역 메서드 실행 shift+F10 : 이전 실행 했던 부분 실행 ctrl+alt+v : 드래그 영역 return..

my-t-space.tistory.com

 

인텔리제이에서 리팩토링 관련 단축키: 해당 코드 드래그 + ctrl + shift + alt + t

위에 단축키로 코드를 별도의 메서드로 뽑아낼 수 있다.

 

 

반응형