Spring

[Spring] 3 Layer Architecture, 역할 분리하기

박졔삐 2024. 10. 4. 18:03

 

 

 

1. 프레젠테이션 계층 (Presentation Layer, Controller) : 

 

프레젠테이션 계층은 컨트롤러로 구성되어 있다

 

역할 : 사용자 요청을 수신하고, 적절한 [서비스 계층에 요청을 전달]하는 역할을 한다. 

요청에 대한 응답을 생성하여 사용자에게 반환한다.

 

책임 : URL 매핑을 처리하고, HTTP 요청 및 응답을 관리하며, 뷰를 반환하거나 REST API의 JSON 응답을 생성한다.
웹 페이지, REST API 등이 이 계층에 포함된다.

 


2. 비즈니스 계층 (Business Layer, Service):


비즈니스 계층은 서비스로 구성되어 있다. 

이 계층에서는 비즈니스 로직을 구현하고, 다양한 데이터 조작 및 처리를 수행한다.

역할 : 애플리케이션의 비즈니스 로직을 구현한다. 사용자 요청을 처리하고, 필요한 데이터 처리 및 계산을 수행한다.

기술 : 스프링의 서비스, 트랜잭션 관리, AOP(관점 지향 프로그래밍) 등이 사용된다.

책임 : 프레젠테이션 계층으로부터 요청을 받고, 데이터 액세스 계층에 요청을 전달한다. 비즈니스 규칙을 적용하고, 필요시 여러 데이터 소스와 상호작용한다.

 

 

 

3. 데이터 액세스 계층 (Data Access Layer, Repository)

 

데이터 액세스 계층은 레포지토리로 구성되어 있으며, 데이터베이스와의 CRUD 작업을 처리한다.


역할 : 데이터베이스와의 상호작용을 담당한다. CRUD(Create, Read, Update, Delete) 작업을 수행하며, 데이터의 영속성을 보장한다.
기술 : 스프링 Data JPA, MyBatis, Hibernate 등이 사용된다.

책임 : 비즈니스 계층에서 요청한 데이터에 대한 CRUD 작업을 수행하고, 결과를 비즈니스 계층에 반환한다.

 


4. 이점

 

유지보수성 : 각 계층이 명확하게 분리되어 있어, 특정 계층을 변경해도 다른 계층에 미치는 영향을 최소화할 수 있다.
테스트 용이성 : 각 계층을 독립적으로 테스트할 수 있어, 단위 테스트 및 통합 테스트가 용이하다.
재사용성 : 특정 기능을 여러 프로젝트에서 재사용할 수 있다.

 

 


결론

스프링의 '3 Layer Architecture'는 애플리케이션의 구조를 명확하게 나누어, 관리와 개발을 보다 효율적으로 할 수 있게 도우며 각 계층이 독립적으로 개발되고 테스트될 수 있도록 한다. 이를 통해 확장성과 유연성을 갖춘 애플리케이션을 개발할 수 있다.

728x90
반응형