💡 회원 관리 예제 만들기
5단계에 걸쳐 회원 관리하는 예제를 만들어보자.
단계는 아래와 같다.
- 비즈니스 요구 사항 정리
- 회원 도메인과 레포지토리 만들기
- 회원 레포지토리 테스트 케이스 작성
- 회원 서비스 개발
- 회원 서비스 테스트
💡 비즈니스 요구사항 정리
이번 예제의 목표는 스프링 생태계 전반적으로 개발을 어떤식으로 진행하고, 동작하는지를 알아보는것이 목표이기에 비즈니스 요구사항도 간단하게 할 것이다.
- 데이터 : 회원 ID, 이름
- 기능 : 회원 등록(중복 이름 X), 회원 조회
- DB가 선정되지 않은 가상의 상황
💡 일반적인 웹 어플리케이션 계층 구조

일반적인 웹 어플리케이션은 컨트롤러, 서비스, 레포지토리, 도메인 객체, 데이터베이스로 구성이 된다.
- 컨트롤러 : 웹 MVC의 컨트롤러 역할을 하며, API를 만들 때 사용한다.
- 서비스 : 핵심 비즈니스 로직 구현을 하는 부분이다.
- 레포지토리 : 데이터베이스에 접근하여 도메인 객체를 DB에 저장하고 관리한다.
- 도메인 : 회원, 주문 등 처럼 데이터베이스 주로 저장하고 관리되는 비즈니스 도메인 객체이다.
💡 클래스 의존 관계

- MemberService : 회원 비즈니스 로직이 있는 회원 서비스
- MemberRepository : 아직 DB가 선정되지 않았기 때문에, 구현체를 먼저 Memory 구현체로 제작하여 단순하게 저장하는 방식을 사용한다.
이후 구체적ㅈ인 기술이 선정되면 갈아끼는 과정이 필요하기에 MemberRepository를 interface로 정의한다.