비즈니스 요구사항 정리

Sunny·2022년 11월 2일
0

✨ 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술


🔅 목차


✅회원 관리 예제 - 백엔드 개발

#1 비즈니스 요구사항 정리
#2 회원 도메인과 리포지토리 만들기
#3 회원 리포지토리 테스트 케이스 작성
#4 회원 서비스 개발
#5 회원 서비스 테스트


🔅 비즈니스 요구사항 정리

회원 관리 예제 백엔드 개발을 간단하게 해보는 것이 스프링 입문 강의 목표이다. 만들고자 하는 비즈니스 요구사항은 다음과 같다.

  • 데이터 : 회원ID, 이름
  • 기능 : 회원 등록, 조회
  • 아직 데이터 저장소가 선정되지 않음 (가상의 시나리오)

🔅 일반적인 웹 어플리케이션 계층 구조

  • 컨트롤러(Controller) : 웹 MVC의 컨트롤러 역할. 주로 사용자의 요청을 처리한 후 지정된 뷰에 모델 객체를 넘겨주는 역할을 함.

  • 서비스(Service) : 비즈니스 도메인 객체를 가지고 핵심 비즈니스 로직 구현. (ex. 회원은 중복 가입이 안된다)
    서비스를 이해하기 위해 큰 틀을 보자.

    1. Client가 Request를 보낸다.
    2. Request URL 에 알맞은 Controller가 수신을 받는다.
    3. Controller는 넘어온 요청을 처리하기 위해 Service를 호출한다.
    4. Service는 알맞은 정보를 가공하여 Controller에게 데이터를 넘긴다.
    5. Controller는 Service의 결과물을 Client에게 전달해준다.

    서비스가 알맞은 정보를 가공하는 과정을 '비즈니스 로직을 수행한다'라고 함.

  • 리포지토리(Repository) : 데이터베이스에 접근. 도메인 객체를 DB에 저장하고 관리

  • 도메인(Domain) : 비즈니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등 주로 DB에 저장하고 관리됨)


🔅 클래스 의존관계

  • MemberService: 회원 비즈니스 로직이 있는 회원 서비스
  • MemberRepository: 회원 저장은 Interface로 설계.
    아직 데이터 저장소가 선정되지 않았기 때문에 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계.
  • MemoryMemberRepository: 구현체.
  • 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정
  • 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용.
profile
개발에 재미를 붙여보기 :)

0개의 댓글