본문 바로가기

강의 내용 정리/스프링 입문

회원 서비스개발

1. 서비스 : 실제 비즈니스 로직이 들어감

( 리포지토리 메서드들은 네이밍이 findByName처럼 입출력을 중심으로 짓는다. but Service는 비즈니스 로직이므로 좀더 비즈니스적인 용어 써야함 . -> 오류때 찾기편함. 서비스는 비즈니스 의존적으로 짓는다. )

 

 

- 회원가입

 

result는 Optional이르모 ifPresent같은 메서드를 사용할 수 있다. ( result가 널이 아니면 뒤에 실행 )

이름이 이미 있으면 IllegalStateException 예외 던진다.

 

이 때 memberRepository의 선언이다. 업캐스팅된 모습이다..

 

다시 join메서드로 돌아와서, save 후 member의 id를 반환하는 것으로 설계하였다.

 

하지만 더 나은 코드는

 

이렇게 수정이 가능하다. result라는 변수로 받지 않고 어차피 findByName이 리턴타입이 Optional이므로 바로 뒤에 .ifPresent 메서드를 붙힌다. -> 훨씬 간결한 코드

( 중복이 있으면 예외를 던진다. -> 예외가안터졌다=중복이 없다. -> 그 member 정상적으로 save() 한다. )

 

여기서 더 간결한 코드는

 

위의 로직을 메서드로 뽑는게 좋다. (리팩터링) -> 범위 긁고 Ctrl+Alt+M ( Extract Method )

이후 이름을 validateDuplicateMember로 바꿔 주었다.

이렇게 하면 장점이

 

아 join 메서드를 실행하면 검증하고 -> 통과하면 -> 저장하는구나!!

 

# MemberService 전체코드

 

 

 

 

나머지 서비스 두개도 만들어주자.

 

 

 

 

 

 

출처 : 인프런 김영한님의 강의를 수강 후 정리한 내용입니다.

 

 

 

 

꾸준히 다시보자.

 

1. 220712

2. 220731

Recent Posts
Popular Posts
Recent Comments