3 Layer Architecture
소프트웨어 개발에서 많이 사용되는 아키텍처 패턴 중 하나입니다. 소프트웨어 시스템을 세 개의 주요 계층으로 분리하여 구성합니다. 각 계층은 특정한 역할과 책임을 수행하며, 서로 간에는 명확한 인터페이스를 통해 상호작용합니다.
1. Controller

- 클라이언트의 요청을 받습니다.
- 요청에 대한 로직 처리는 Service에게 전담합니다.
- Request 데이터가 있다면 Service에 같이 전달합니다.
- Service에서 처리 완료된 결과를 클라이언트에게 응답합니다.
2. Service

- 사용자의 요구사항을 처리 ('비즈니스 로직') 하는 실세 중에 실세입니다.
- 따라서 현업에서는 서비스 코드가 계속 비대해지고 있습니다.
- DB 저장 및 조회가 필요할 때는 Repository에게 요청합니다.
3. Repository

- DB 관리 (연결, 해제, 자원 관리) 합니다.
- DB CRUD 작업을 처리합니다.
정리
3 Layer Architecture를 사용하면 각 계층이 독립적으로 개발, 테스트, 유지보수될 수 있도록 모듈화 되어 있습니다. 이로 인해 시스템의 유연성과 확장성이 향상되며, 계층 간의 결합도가 낮아져 변경이나 확장이 용이해집니다. 또한, 비즈니스 로직과 데이터 액세스의 분리로 인해 코드의 재사용성과 유지보수성도 향상됩니다. -> 역할 분리로 인한 장점

'Spring' 카테고리의 다른 글
| Spring Day 6 : JPA (0) | 2024.01.25 |
|---|---|
| Spring Day 5 : IoC(제어의 역전)과 DI(의존성 주입) (0) | 2024.01.24 |
| Spring Day 3 : MVC (0) | 2024.01.22 |
| Spring Day 2 : HTTP (0) | 2024.01.19 |
| Spring Day 1 : Server (0) | 2024.01.18 |