☞Project/휘핑크림

[스프링부트] 개발 전 테스트 요구사항 정리 01

jju_developer 2023. 3. 23. 13:10
728x90

안녕하세요 jju_developer입니다.

혼자 개인 프로젝트를 하다가 스프링부트에 대해서 더 공부할 필요성을 느껴서

하나씩 정리하면서 기록을 해보고자 합니다.

 

비즈니스 요구사항 정리

가장 쉬운거부터 테스트 삼아 시작해 보겠습니다.

 

데이터는 회원 ID와 이름만 넣고

기능은 회원등록과 조회 두 가지 기능만 넣어서 테스트를 해보겠습니다.

 

이번시간의 목표는 전반적인 흐름만 보는 것이기 때문에

간단하게 해 보면서 공부를 하고자 합니다.

 

추가로 가상의 시나리오로 아직 데이터 저장소가 선정되지 않았다고 가정하겠습니다.

스프링의 특성을 더 잘 설명하기 위함입니다.

 

일반적으로 웹 애플리케이션의 계층 구조는

컨트롤러-> 서비스->리포지토리-> DB

컨트롤러->도메인-<서비스, 리포지토리

이러한 형태입니다.

 

컨트롤러는 웹 MVC의 컨트롤러 역할을 하며(api 만들 때도 사용),

서비스에서 핵심 비즈니스 로직을 구현할 예정입니다.(중복가입 불가 등)

리포지토리는 데이터 베이스에 접근, 도메인 객체를 DB에 저장하고 관리하는 역할로 쓰일 겁니다.

도메인은 비즈니스 도메인 객체, 예를 들면 회원, 주문, 쿠폰 등등 주로 데이터 베이스에 저장하고 관리됩니다.

(비즈니스 도메인 객체입니다. 서비스는 이 도메인 객체를 가지고 로직을 구현합니다.)

이러한 형태가 일반적인 계층 구조입니다.

 

아직 데이터베이스가 선정되지 않았다는 가정을 위에서 했기 때문에 아래처럼

MemberRepository를 인터페이스로 설계합니다.

MemberRepository

단순한 구현체로 만들고 추후에 바꿔 끼울 것이기 때문에 인터페이스로 설계를 한 것입니다.

초기 개발 단계에는 구현체를 가벼운 메모리 기반의 데이터 저장소 사용! 이게 핵심입니다.

 

이렇게 대략적인 아이디어를 가지고 본격적으로 다음시간에는 회원 도메인과 리포지토리를 만들어 보겠습니다!

728x90