본문 바로가기
개발/Spring

[스프링 입문] 스프링 회원관리 예제 - 4. 회원 서비스 개발 및 테스트

by ujin2021 2021. 6. 29.

* 인프런 김영한님의 '스프링 입문' 강의를 듣고 작성한 내용입니다! (https://inf.run/txXC)

 

서비스 : 핵심 비즈니스 로직 구현 (name은 중복이 안되고,...)

회원 서비스 개발

1. hello.hellospring/service (package생성)

2. service/MemberService.java (java 파일 생성)

[MemberService.java 소스코드]

 

 

 

 

 

  • Repository로 MemoryRepository 객체 사용
  • 회원가입시 name이 중복되면 안되므로 validateDuplicateMember 함수를 만들어준다

 

회원 서비스 테스트

  • repository 테스트 케이스 작성 시 일일히 코드를 쳤지만, test할 class에서 ctrl + shift + T 단축키로 Test를 생성할 수 있다
  • 이전에 MemberService.java 소스코드에서 회원 서비스가 회원 repository를 직접 생성했다
  • priavate final MemberRepository memberRepository = new MemmoryMemberRepository();
  • 회원 서비스 코드에서 DI(Dependency Injection) 를 가능하게 변경한다
  • private final MemberRepository memberRepository;
    
    public MemberService(MemberRepository memberRepository) {
            this.memberRepository = memberRepository;
    }

=> 왜 DI가 가능하게 만들어주는가? Test 코드를 짤 때 각 테스트마다 repository 객체를 생성하므로 서로 다른 DB가 생성되게 된다. 따라서 같은 객체를 쓰게 하기 위해 contructor로 생성해서 repository를 외부에서 넣어줄 수 있도록 한다.

 

[MemberServiceTest.java 소스코드]