본문 바로가기
Learning-log/Spring & JPA

비즈니스 요구사항 정리

by why제곱 2023. 3. 20.

- 아직 DB가 선정되지 않은 상황 : 성능이 중요한 데이터베이스를 쓸지 등등이 정해지지 않은 상황 가정

 

- 일반적인 웹 애플리케이션의 계층 구조

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

                    도메인

 

- 컨트롤러 : 웹MVC의 컨트롤러 역할, API만들거나 할 때 컨트롤러 역할

- 서비스 : 핵심 비즈니스 로직 구현

- 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장,관리

- 도메인 : 데이터베이스에 주로 저장하고 관리되는 비즈니스 도메인 객체

 

 

아직 데이터베이스가 지정되지 않은 상황으로 인해, 회원을 저장할 수 있는 리포지토리는 인터페이스로 만들고 구현체를 메모리 구현체로 만들 것. Memory에 넣었다 뺐다 할 수 있는 단순한 구현체를 만들어 추후 데이터베이스가 정해지면 이를 바꿔끼울 것. 그래서 인터페이스로 정의하는 것!!

 

요즘엔 null을 그대로 반환하는 방법 대신에 Optional로 감싸서 반환하는 기능을 선호하는 편이라고 함. Java 8