DevKim

[01] 회원 관리 예제 - 회원 service 개발 & Test Code 작성 본문

Spring Boot

[01] 회원 관리 예제 - 회원 service 개발 & Test Code 작성

on_doing 2021. 5. 6. 16:54
728x90

[ 비즈니스 로직 ]

: 같은 회원이 있으면 안된다! 라고 가정


[ 회원 service 부분 ]

 

< 회원 가입 - 수정 전>

이때, 중복 회원 검토하는 ispresent ~~ 하면서 쭉 logic이 나오는 경우엔 메서드로 뽑아주는게 좋다고한다

단축키 : ctrl+alt+shift+T 누르면 리팩토링 관련된 여러가지가 나오는데, 여기에서 extract method 클릭


< 회원 가입 - 수정 후>

 

1. logic이 들어간 부분을 별도의 메서드로 뽑아주었다.

 

2. 기존에는 회원 service가 memorymemberrepository를 직접 생성하게 했다면,

수정 후엔,

memberRepository의 코드가 회원 service 코드를 DI 가능하게 변경했다.

=> MemberService의 입장에서, 내가 직접 new 하지않고

memberRepository를 외부에서 넣어주었다

= Dependency injection ( DI )

 

Lombok의 @RequiredArgsConstructor를 대신 넣어주어도 될 것 같다.

*isPresent = NULL이 아닌 값이 있다면


<전체 회원, id로 회원 한명만 조회>


*** 실무자의 Tip ***

repository는 단순히 저장소에 넣었다가 뺐다하는 느낌이 듦

Service는 join,findMembers 와 같이 비즈니스에 가깝게 네이밍을 해주는 것이 좋다!!

그래야 기획자와 개발자 사이의 매핑이 된다.

 

*repository의 roll : 단순히 기계적으로 data를 넣었다 빼는

* service의 roll : 비즈니스를 처리하는 것

 

즉, 각자의 roll에 맞게 네이밍을 하는 것이 좋다!


[ 회원 Service 테스트 ]

@BeforeEach

: 각 테스트 실행 전에 호출된다.

테스트가 서로 영향이 없도록 항상 새로운 객체를 생성하고,

의존관계도 새로 맺어줌


<회원 가입 테스트>

테스트 할 때는 한글로도 많이 적는다고한다.


<중복 회원 테스트>

try,catch 문으로 돌리는 방법도 있지만,

위의 방법을 더 선호하신다고한다.

 


+) Try,Catch 문으로 예외처리 확인하는 법

 

*자료 출처*

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 (김영한)

728x90
Comments