시스템 설계시 프로젝트의 목적에 따라 물리적인 계층(Tier)을 나누고 서비스를 논리적(Layer)으로 분리하게 된다. 효과적인 분업을 위해 반드시 이해가 필요한 부분이다. 1티어 / 2티어 / 3티어의 개념과 장단점을 설명한다.
Tier (계층) : 물리적인 분리단위 (서버 분리) Layer (층) : 논리적인 분리단위 (기능 분리)
1> 1Tier
장점 : 구현이 간편함, 비용이 적게듬
단점 : 확장이 힘듬, 이관시 재구성이 필요함, 분업이 어려움
2> 2Tier
장점 : 데이터관련 변경이 용이함
단점 : 3Tier에 비해 유연성이 떨어짐
3> 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 - 데이터베이스 서버 자체를 말함