계층형 아키텍처 구조

Bam·2026년 2월 21일

CS

목록 보기
36/37
post-thumbnail

스프링 프레임워크(또는 스프링부트)를 사용하는 환경 기준으로 아키텍쳐 구조를 설명합니다.

계층형 아키텍처 구조

계층형 아키텍처 Layered Architecture 구조는 프로젝트를 구성하는 각 요소(소스 코드 등)들을 여러 계층으로 나누어 관리하는 구조입니다. 가장 일반적이고 전통적인 형태의 아키텍처 구조입니다.

계층은 개발자의 기준에 따라 나누지만 보통 3 계층(Presentation-Business-Data Access)으로 나뉜 구조가 가장 많이 채택되고, 경우에 따라 Domain 계층을 추가로 두어 4 계층구조로 사용하기도 합니다.

이미지 출처

Presentation Layer

프레젠테이션 계층은 사용자의 요청을 받고, 처리된 결과를 사용자에게 반환(응답)하는 역할을 하는 계층입니다.

스프링 환경에서는 Controller가 이 역할을 담당합니다.

Business Layer

비즈니스 계층은 Service Layer라고도 하며 프레젠테이션 계층(컨트롤러)을 통해 들어온 사용자의 요청이 실제로 처리되는 핵심 로직을 담고 있는 계층입니다. 또한 필요 시 DB(Data Access Layer)와 상호작용하여 로직을 수행합니다.

스프링 환경에서는 Service가 이 역할을 담당합니다.

비즈니스 계층이 복잡해지는 경우 Domain과 Business를 분리하여 4계층 형식으로 운용하기도 합니다.

Domain Layer

도메인 계층에서는 도메인(비즈니스 로직에서 사용되는 데이터)을 정의하고 로직을 수행합니다.

스프링에서는 DB 테이블을 자바 객체로 표현한 클래스(Entity)가 이 역할을 담당합니다.

도메인 계층을 분리하는 경우 기존 비즈니스(서비스)는 트랜잭션 관리, Repository 호출과 같은 로직의 전반적인 흐름을 관리하게 되고, 도메인(엔티티)에서는 실제 데이터와 밀접한 로직을 직접 다루게 됩니다.

Data Access Layer

데이터 접근 계층에서는 데이터 베이스와 연동해 쿼리 실행, CRUD와 같은 작업들을 수행합니다.

스프링에서는 Repository가 이 역할을 담당합니다.


계층형 아키텍처 구조를 채택하게 되는 경우 다음과 같은 프로젝트 내 자바 스프링 패키지 구조를 가지게 됩니다.

src
ㄴ controller	//프레젠테이션 레이어
ㄴ dto			//계층 간 데이터 전달
ㄴ entity		//비즈니스 레이어(또는 도메인)
ㄴ repository	//데이터 접근 레이어
ㄴ service		//비즈니스 레이어

0개의 댓글