인프런 김영한님의 스프링 입문 강의를 듣고 정리한 내용입니다.
회원 관리 예제
- 비즈니스 요구사항 정리
- 회원 도메인과 리포지토리 만들기
- 회원 리포지토리 테스트 케이스 작성
- 회원 서비스 개발
- 회원 서비스 테스트
비즈니스 요구사항 정리
강의 목적이 기능을 배우기 위함이므로 비즈니스 요구사항은 가장 단순하게
(스프링의 특성을 더 잘설명하기 위해)
- 데이터 : 회원 ID, 이름
- 기능 : 회원 등록, 조회
- 아직 데이터 저장소가 선정되지 않음(어떤 db를 쓸지 선정되지 않았다는 가상의 시나리오)
일반적인 웹 어플리케이션 계층 구조
- 컨트롤러 : 웹 MVC의 컨트롤러 역할(URI 작성)
- 서비스 : 핵심 비즈니스 로직 구현(데이터를 다루는 메소드 구현)
- 도메인 : 비즈니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등 주로 데이터베이스에 저장하고 관리됨)
- 리포지토리 : 데이터베이스에 접근하여 도메인 객체를 db에 저장하고 관리(DB 테이블을 java 코드로 쓸수있도록 연결해주는 역할?)
클래스 의존관계
- 회원 비즈니스 로직 = MemberService
- 아직 데이터 저장소가 선정되지 않았음으로 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계(=MemberRepository)
- 개발을 진행하기 위해서 초기 개발 단계에는 가벼운 메모리 기반의 데이터 저장소 사용(=MemoryMemberRepository)
회원 도메인과 레포지토리 만들기
회원 레포지토리 테스트 케이스 작성
회원 서비스 개발
회원 서비스 테스트