> 작성일 : 2021-02-22
> 수정일 : 2025-01-02
시스템 설계시 프로젝트의 목적에 따라 물리적인 계층(Tier)을 나누고 서비스를 논리적(Layer)으로 분리하게 된다.
효과적인 분업을 위해 반드시 이해가 필요한 부분이다.
# Tier (계층) : 물리적인 분리단위 (서버 분리)
# Layer (층) : 논리적인 분리단위 (기능 분리)
# 장점 : 구현이 간편함, 비용이 적게듬
# 단점 : 확장이 힘듬, 이관시 재구성이 필요함, 분업이 어려움
# 장점 : 데이터관련 변경이 용이함
# 단점 : 3Tier에 비해 유연성이 떨어짐
# 장점 : 다른계층에 의존하지 않으므로 분업시 효율적임
# 단점 : 구현시 고려사항이 많아 비용이 증가함
1) Client(Presentation) Tier : HTML, Javascript, CSS, Image
- 사용자 인터페이스를 지원함
- Frontend or GUI 라고도 불림
- 보안상의 이점을 위해 Frontend서버를 두기도함
(이때 Frontend서버는 단순한 것이므로 구현이 쉽고 가벼운 것을 이용)
2) Application Tier : Java, NodeJS, Python, PHP
- 정보를 처리하는 로직이 포함되어 있음
- Backend 라고도 불림
3) Data Tier : Oracle DB, Maria DB, Postgresql
- 데이터베이스 서버 자체를 말함
Tags : 1tier, 2tier, 3tier, 3티어, application layer, application tier, client tier, data layer, presentation layer, 기능분리, 논리계층, 서버계층, 서버분리