3계층 구조(3 Tier Architecure)
- 3Tier-Architecture란 응용 프로그램을 3개의 논리적 및 물리적 컴퓨팅 계층으로 구성하는 방식을 말한다.
보통 프레젠테이션 계층, 어플리케이션 계층, 데이터 계층으로 나눈다.
- 이외에도 1계층구조(하나의 물리적 컴퓨터 또는 서버에 3개층이 있음). 2계층구조(프레젠테이션, 애플리케이션 계층을 하나로 묶고, 데이터계층을 별로도 구성)가 있다.
계층 설명
- 프레젠테이션 계층 (Web Server) :
- 사용자가 애플리케이션과 상호작용하는 애플리케이션의 사용자 인터페이스.
- 일반적으로 HTML, JS, CSS 등이 이 계층에 포함되며, 프론트엔드나 GUI라고 부른다.
- 사용자 인터페이스와 관계없는 데이터를 처리하는 로직은 포함하지 않는다. - 어플리케이션 계층 (Web Application Server)
- 요청되는 정보를 어떠한 규칙에 따라 처리하고, 가공한다. 미들웨어(WAS) OR 백엔드로 불린다.
- 프레젠테이션코드 (예를 들면 HTML, CSS)나 데이터 관리를 위한 코드는 포함하지 않는다.
- 주로 PHP, Java 등이 이 계층에 해당한다. - 데이터 계층 (DB)
- 데이터 베이스와 데이터 베이스에 접근하여 데이터를 CRUD하는것을 포함한다.
- 주로 DBMS (Database Management System)이 이 계층에 해당된다.
- 데이터 계층 또한 백엔드(back-end)라고도 부른다.
장점
- 각 계층이 분리되어 있어 계층별 작업을 나눌 수 있으므로 업무 분담이 가능해지고, 계층별 서로 다른 팀이 동시에 개발할 수 있으므로 업무 효율성이 증가한다.
- 서버를 계층별 독립적으로 존재하기에 확장하기 편하다.
- 한 계층에서 일어난 장애가 다른 계층의 가용성이나 성능에 큰 영향을 미치지 않는다
- 계층별 순차적인 접근으로 인해 외부에서 직접적인 접근이 불가능하므로, 보안적인 측면에서 2계층이나 1계층보다 좋다.
단점
- 1계층만 사용하는것 대비 비용과 관리포인트가 증가하고, 문제가 생겼을 경우 빠르게 대처하기 어려울 수있다.
- 서버가 많이 지기 때문에 서비스 규모 및 사용자 증가에 따른 적당한 계층 구조 및 설계가 고려되어야한다.