스프링 프레임워크를 사용할 때, 3 Layer Architecture를 적용하면 애플리케이션의 구조가 더 명확하고 유지보수하기 쉬워진다. 이 아키텍처는 애플리케이션을 세 가지 주요 계층으로 나눈다:
- 프레젠테이션 계층 (Presentation Layer)
- 비즈니스 로직 계층 (Business Logic Layer)
- 데이터 계층 (Data Layer)
각 계층의 역할
1. 프레젠테이션 계층 (Presentation Layer)
사용자와 애플리케이션 간의 인터페이스를 담당. 스프링에서는 컨트롤러(Controller)를 통해 구현된다. 사용자 요청을 처리하고, 비즈니스 로직 계층과 상호작용하여 필요한 데이터를 모델에 담아 뷰(View)에 전달한다.
- 스프링 애너테이션: @Controller, @RestController
- 예시: 로그인 폼을 처리하고, 로그인 결과를 사용자에게 보여주는 컨트롤러
2. 비즈니스 로직 계층 (Business Logic Layer)
애플리케이션의 핵심 기능과 규칙을 처리. 스프링에서는 서비스(Service) 클래스를 통해 구현된다. 비즈니스 규칙을 적용하고, 데이터 계층에서 데이터를 가져와 가공한 후 프레젠테이션 계층에 전달한다.
- 스프링 애너테이션: @Service
- 예시: 사용자 인증 로직을 처리하여 로그인 성공 여부를 판단하는 서비스
3. 데이터 계층 (Data Layer)
데이터의 저장과 조회를 담당. 스프링에서는 리포지토리(Repository)를 통해 구현된다. 데이터베이스와 상호작용하고, 데이터의 CRUD(Create, Read, Update, Delete) 작업을 처리한다.
- 스프링 애너테이션: @Repository
- 예시: 사용자 정보를 데이터베이스에서 가져오거나 업데이트하는 리포지토리
3 Layer Architecture의 장점
- 유지보수 용이성: 각 계층이 독립적으로 설계되어 변경 시 다른 계층에 미치는 영향을 최소화할 수 있다.
- 재사용성: 서비스와 리포지토리는 여러 애플리케이션에서 재사용 가능하다.
- 확장성: 각 계층을 독립적으로 확장할 수 있어 시스템 확장이 용이하다.
- 명확한 역할 분담: 각 계층이 특정 역할을 맡아 코드의 복잡성을 줄여준다.
스프링을 활용한 예시
온라인 쇼핑몰 애플리케이션을 예로 들면:
- 프레젠테이션 계층: 상품 검색과 장바구니 기능을 제공하는 컨트롤러
- 비즈니스 로직 계층: 장바구니의 상품을 계산하여 최종 결제 금액을 결정하는 서비스
- 데이터 계층: 상품과 사용자 정보를 데이터베이스에서 저장하고 조회하는 리포지토리
이러한 구조를 활용하면 애플리케이션을 더 잘 관리하고 확장할 수 있다.
'SPRING&BOOT' 카테고리의 다른 글
Path Variable과 Request Param (0) | 2024.08.15 |
---|---|
IoC (제어의 역전) 이해하기 (0) | 2024.08.13 |
의존성 주입 (DI, Dependency Injection) 이해하기 (0) | 2024.08.13 |
MVC 디자인 패턴 (0) | 2024.08.09 |
그레이들(Gradle)이란? (0) | 2024.08.09 |