회원 관리 예제 - 비즈니스 요구사항 정리

2022. 7. 27. 09:552022/Spring

데이터 : 회원ID, 이름

기능 : 회원 등록, 조회

DB : 아직 RDB로 할지, NoSQL로 할지 데이터 저장소가 선정되지 않은 상태

 

  • 컨트롤러 : 웹 MVC의 컨트롤러 역할, API 만들때 컨트롤러 역할
  • 서비스 : 비즈니스 도메인 객체를 이용해서 핵심 비즈니스 로직 구현 ( Ex : 회원정보 중복 제거 로직 등)
  • 리포지토리 : DB 접근, 도메인 객체를 DB에 저장하고 관리
  • 도메인 : 비즈니스 도메인 객체 ( Ex : 회원, 주문, 쿠폰 등등 주로 DB에 저장하고 관리된다.)

클래스 의존관계

  • MemberService : 회원 비즈니스 로직
  • MemberRepository : 회원 저장소 (아직 데이터 저장소가 결정되지 않았기 때문에 인터페이스로 설계)
  • Memory MemberRepository : 간단한 메모리 구현체로 개발  -> 향후에 정확한 DB 종류가 결정이 되면 변경할 예정 : 그래서 회원 저장소를 인터페이스로 설계!

아직 데이터 저장소가 선정되지 않아서 인터페이스(MemberRepository)로 구현 클래스를 변경할 수 있도록 설계한다. 현재 데이터 저장소를 RDB, NoSQL, JDBC, MyBatis, JPA 등등의 다양한 저장소를 고민중인 상황으로 가정하고, 개발을 진행하기 위해 초기 개발 단게에서는 구현체로 가벼운 메모리 기반의 데이터 저장소를 사용한다.