N계층 (N-tier) 아키텍처란?
소프트웨어를 구성하는 물리적/논리적 구조를 의미함.

구성 요소
1.프레젠테이션 계층
사용자와 시스템 사이의 접점 역할을 수행하는 최상위 계층.
- 역할 : UI를 제공하고 사용자의 입력을 받아 하위 계층으로 전달하며, 처리 결과를 시각적으로 보여줌
- 주요 구성 요소
- 웹 브라우저
- 모바일 앱 UI
- SPA 프론트엔드 (React,Vue)
- 서버가 렌더링한 HTML을 받아서 실행, 표시하는 환경
HTTP Request가 만들어지는 지점까지가 Client 계층
2.애플리케이션 계층
시스템의 핵심 로직이 실행되는 중간 계층으로, ‘비즈니스 로직 계층’ 이라고도 불림.
- 역할 : 클라이언트 계층으로부터 전달받은 요청을 처리함. 데이터 계층과 통신하며 데이터를 읽거나 쓰며 산술적인 계산과 판단을 수행함.
- 주요 구성 요소
- 애플리케이션 서버 (Django, SpringBoot, Node.js)
- API 서버
- SSR 로직 (Django Template, Thymeleaf)
요청을 처음 받아서 비즈니스 로직이 실행되는 순간부터 Application 계층
3.데이터 계층
데이터를 저장하고 관리하며, 요청에 따라 데이터를 제공하는 계층.
- 역할 : 비즈니스 로직에서 생성되거나 필요한 데이터를 영구적으로 저장하고 검색함.
- 주요 구성 요소
- RDBMS
- NoSQL
- Cache
- Object Storage (S3)
1계층 아키텍처
개념
모든 구성 요소 ( client, app, data )가 하나의 컴퓨터 안에 통합된 구조.
장점
- 구조가 단순하여 구현이 쉽다
- 네트워크 통신이 없어 성능 오버헤드가 적다
- 배포 및 운영 비용이 낮다
- 환경 차이로 인한 호환성 문제나 컨텍스트 전환 비용이 없다
단점
- 원격 또는 분산 데이터 접근이 불가능하다
- 코드가 모놀리식으로 구성되어 유지보수가 어렵다
- 확장성이 거의 없다
- 중앙 시스템 의존도가 높아 장애 시 전체 서비스가 영향을 받는다
2계층 아키텍처
시스템을 클라이언트와 서버 두 부분으로 분리한 구조.
클라이언트와 서버로 구성되며, 비즈니스 로직과 데이터베이스가 동일한 서버 계층에 위치하는 구조.
Client / Server (Application + DB)
장점
- 구조가 비교적 단순하여 개발이 용이하다
- 데이터베이스와 로직이 가까워 초기 성능이 좋다
- 소규모·동질적인 환경에 적합하다
- 빠른 프로토타이핑이 가능하다
단점
- 클라이언트가 많은 로직을 보유하게 되어 버전 관리가 어렵다
- 클라이언트 수 증가 시 확장성이 급격히 저하된다
- 각 클라이언트가 DB에 직접 연결하면서 보안 관리가 복잡해진다
- 데이터베이스 성능이 비즈니스 로직 부하까지 함께 받는다
- 로직 재사용성이 낮고 변경 시 전체 클라이언트 배포가 필요하다
- DB 구조 변경 시 애플리케이션 전체에 영향이 크다
3계층 아키텍처
개념
모든 계층이 명확히 분리된 구조
장점
- 애플리케이션 서버를 수평 확장할 수 있어 확장성이 뛰어나다
- 비즈니스 로직을 중앙에서 관리하여 재사용성이 높다
- 클라이언트가 DB에 직접 접근하지 않아 보안이 강화된다
- 데이터 무결성을 애플리케이션 계층에서 통제할 수 있다
- 애플리케이션 서버와 DB 서버를 분리하여 장애 대응이 용이하다
- 데이터베이스 구조 변경이 클라이언트에 직접 노출되지 않는다
단점
- 계층 간 통신이 늘어나 구조와 구현이 복잡해진다
- 초기 설계 및 인프라 비용이 2계층보다 높다
- 성능 최적화를 위해 추가적인 설계가 필요하다
3tier를 왜, 언제 사용하나요?
왜
- 확장성 애플리케이션 계층을 수평 확장하여 트래픽 증가에 대응 가능
- 유지보수성 비즈니스 로직을 중앙에서 관리해 변경 시 영향 범위 축소
- 보안성 클라이언트가 데이터베이스에 직접 접근하지 않아서 접근 제어가 명확함
- 연결성 계층 분리로 장애 격리가 가능하고, 부분 장애가 전체 서비스로 확장되지 않음
언제
- 사용자 수 증가가 예상되는 서비스 (확장)
- 트래픽 변동이 있는 서비스 (확장)
- 장기간 운영이 전제된 시스템
- 보안과 데이터 무결성이 중요한 서비스
- 기능 변경,확장이 잦은 서비스
3tier를 왜 배우나요?
- 현대 웹 서비스의 기본 구조이기 때문 대부분의 웹/모바일 서비스는 형태는 달라도 Client - Application - Data 구조를 기반으로 동작함. 3-Tier를 이해해야 실제 서비스 아키텍처를 읽을 수 있고, 구조 선택의 이유를 설명할 수 있음
- 확장/보안/운영 문제를 구조적으로 이해할 수 있기 때문 3-Tier는 단순한 배치 구조가 아니라,
- 왜 로드밸런서가 필요한지
- 왜 DB를 직접 노출하면 안 되는지를 구조적으로 설명해줌.
'Infra&Cloud > Infra' 카테고리의 다른 글
| API Gateway Solution ( Feat. Kong, Apache, Spring Cloud Gateway) (0) | 2025.10.21 |
|---|---|
| API Gateway 정리 (0) | 2025.10.21 |