반응형
3-Tier Architecture of Web Application이란?
3-Tier 아키텍처는 웹 애플리케이션 개발에서 가장 널리 사용되는 다중 계층 아키텍처 패턴입니다. 이 아키텍처는 애플리케이션을 세 개의 논리적 계층으로 분할하여 설계하며, 각각의 계층은 독립적으로 관리됩니다. 각 계층은 특정 역할을 수행하며 서로 물리적으로 분리될 수 있습니다.
구성 요소
- Presentation Tier (프레젠테이션 계층)
- 정의: 최종 사용자가 직접 상호작용하는 계층.
- 역할: 콘텐츠를 HTML, JavaScript, CSS 형식으로 브라우저 또는 클라이언트 장치에 전달.
- 기술 예시: React, Angular, Vue.js, 모바일 애플리케이션, 데스크톱 클라이언트.
- 특징:
- 모든 HTTPS 지원 클라이언트와 통신 가능.
- 다양한 장치(웹 브라우저, 모바일, IoT 등)에 유연하게 작동.
- Application Tier (애플리케이션 계층)
- 정의: 애플리케이션의 비즈니스 로직을 처리하는 계층.
- 역할: 사용자의 요청을 받아 데이터 처리 및 검증 후 결과 반환.
- 기술 예시: Java, Python, C#, C++, Node.js, Ruby.
- 특징:
- 애플리케이션 서버와 통합.
- 트랜잭션, 검증, API 호출 등 복잡한 로직 처리.
- Data Tier (데이터 계층)
- 정의: 데이터 저장 및 관리 계층.
- 역할: 데이터베이스 관리 시스템(DBMS)을 통해 데이터 저장, 검색, 업데이트.
- 기술 예시: MySQL, PostgreSQL, MongoDB, DynamoDB.
- 특징:
- 응용 프로그램 데이터에 대한 효율적이고 안전한 접근 제공.
- 데이터 백업 및 복구 관리 포함.
이점
- 빠른 개발
- 각 계층이 독립적으로 설계 및 개발될 수 있어, 여러 팀이 동시에 작업 가능.
- 최신 언어와 툴을 각 계층에 적용하여 빠른 시장 출시 가능.
- 개선된 확장성
- 특정 계층(예: 프레젠테이션 계층 또는 데이터 계층)만 필요에 따라 독립적으로 확장 가능.
- 예: 트래픽 증가 시 프레젠테이션 계층에 웹 서버를 추가하거나 데이터 계층에 클러스터링 적용.
- 개선된 신뢰성
- 계층 간 독립성으로 인해 한 계층의 장애가 다른 계층에 미치는 영향 최소화.
- 예: 데이터베이스 장애 시 프레젠테이션 계층이 오류 메시지로 사용자에게 알림.
- 개선된 보안
- 프레젠테이션 계층과 데이터 계층이 직접 통신하지 않음으로써 애플리케이션 계층이 방화벽 역할 수행.
- 효율적인 유지보수
- 코드와 로직이 분리되어 변경이 용이.
- 예: 프론트엔드(UI) 수정이 비즈니스 로직이나 데이터 계층에 영향을 주지 않음.
- 재사용성
- 하나의 계층을 다양한 애플리케이션에서 재사용 가능.
- 예: 동일한 API를 웹 앱과 모바일 앱에서 공유.
활용 사례
- 전자상거래 플랫폼: 프론트엔드는 쇼핑몰 UI, 백엔드는 주문 처리, 데이터 계층은 재고 데이터 관리.
- 클라우드 기반 웹 애플리케이션: AWS의 API Gateway, Lambda, RDS를 활용한 서버리스 3-Tier 아키텍처.
반응형