도메인 (Domain)
개발자 대부분은 비즈니스 프로세스를 개선하거나 자동화하기 위해 일한다. 도메인은 이런 프로세스가 지원하는 활동을 의미한다.
도메인 모델(Domain Model)
유용한 특성을 포함하는 프로세스나 현상의 지도(Map)를 뜻합니다.
비즈니스를 수행할 사람이 자신의 비즈니스에 대해 마음속에 가지고 있는 지도와 같습니다.
도메인 모델링 (Domain Modeling)의 종류
1. 엔티티 (Entity)
2. 값 객체 (Value object)
3. 도메인 서비스 (Domain service)
엔티티(Entity)
엔티티(Entity)는 실제 DB 테이블과 연관되어 있는 핵심 클래스이고, 엔티티를 기준으로 테이블이 생성되고 DB 스키마가 변경됩니다.
계층형 아키텍처 패턴 (Layered Architecture Pattern)
계층을 분리해서 관리하는 아키텍처 패턴이고, 현재 가장 흔하게 사용되고 있는 아키텍처 패턴 중 하나입니다.
계층형 아키텍처 패턴의 장점
- 관심사를 분리하여 현재 구현하려하는 코드를 명확하게 인지할 수 있습니다.
- 각 계층별로 의존성이 낮아 모듈을 교체하더라도 코드 수정이 용이합니다.
- 각 계층별로 단위 테스트를 작성할 수 있어 테스트 코드를 조금 더 용이하게 구성할 수 있습니다.
3계층 아키텍처 (3-Layered Architecture)
3-Layered Architecture는 아래의 3가지의 처리과정을 이용해서 구현합니다.
1. Controller : 어플리케이션의 가장 바깥 부분, 요청/응답을 처리함.
- 클라이언트의 요청을 처리 한 후 서버에서 처리된 결과를 반환해주는 역할을 합니다.
2. Service : 어플리케이션의 중간 부분, 실제 중요한 작동이 많이 일어나는 부분
- 아키텍처의 가장 핵심적인 비즈니스 로직이 수행되는 부분입니다.
3. Repository : 어플리케이션의 가장 안쪽 부분, DB와 맞닿아 있음.
- 실제 데이터베이스의 데이터를 사용하는 계층입니다.
3-Layered Architecture에서는 아래의 플로우를 기반으로 로직이 수행됩니다.
1. 클라이언트(Client)가 요청(Request)을 보냅니다.
2. 요청(Request)을 URL에 알맞은 컨트롤러(Controller)가 수신 받습니다.
3. 컨트롤러(Controller)는 넘어온 요청을 처리하기 위해 서비스(Service)를 호출합니다.
4. 서비스(Service)는 필요한 데이터를 가져오기위해 저장소(Repository)에게 데이터를 요청합니다.
5. 서비스(Service)는 저장소(Repository)에서 가져온 데이터를 가공하여 컨트롤러(Controller)에게 데이터를 넘깁니다.
6. 컨트롤러(Controller)는 서비스(Service)의 결과물(Response)을 클라이언트(Client)에게 전달해줍니다.
1. 컨트롤러 (Controller)
컨트롤러(Controller)란 클라이언트의 요청을 처리 한 후 서버에서 처리된 결과를 반환해주는 역할을 합니다.
2. 서비스 (Service)
서비스 계층(Service Layer)이란 비즈니스 로직 계층(Business logic layer)이라고도 불리는데요 아키텍처의 가장 핵심적인 비즈니스 로직을 수행하고 실제 사용자(클라이언트)가 원하는 요구사항을 구현하는 계층입니다.
3. 저장소 (Repository)
저장소 계층(Repository Layer)이란 데이터 엑세스 계층(Data Access Layer)이라고도 불리는데요 대표적으로 Database와 관련된 작업을 수행하는 계층입니다.
'코딩캠프 > 내일배움캠프' 카테고리의 다른 글
[ WIL ] 12.26~30 7주차 (0) | 2023.01.01 |
---|---|
[ TIL ] 12.30(금) 35일차 (0) | 2022.12.30 |
[ TIL ] 12.28(수) 33일차 (0) | 2022.12.28 |
[ TIL ] 12.27(화) 32일차 (0) | 2022.12.28 |
[ TIL ] 12.26(월) 31일차 (0) | 2022.12.28 |