3 계층 구조 (3 Tier-Architecture)는 어떠한 플랫폼을 논리적/물리적인 3 단계의 구조로 나누어 구축하고 운영하는 소프트웨어 개발 방법이다.
Presentation Tier Application Tier Data Tier
각 Tier의 특징에 대해 살펴보자
프리젠테이션 계층은 애플리케이션을 이용하는 일반 사용자와 직접적으로 소통하는 공간이다
최상위 계층으로 웹 브라우저, 응용 프로그램 등과 같이 우리가 평소 흔하게 사용하는 UI/GUI 환경에서 실행이 가능하다. 우리는 이를 FrontEnd 라 부른다
사용자로부터 입력 값을 받고 사용자가 요청하는 데이터를 표기하는 역할을 한다
주로 HTML CSS JavaScript 를 활용하여 구현한다
애플리케이션 계층은 애플리케이션의 핵심 계층으로 프리젠테이션 계층에서 수집된 정보를 처리하는 역할을 하는 공간이다
논리 계층 혹은 중간 계층이라 불리며, 이 계층에서는 사전에 어떻게 정보가 처리될지 알고리즘이 구현되어 있고 정해진 알고리즘에 따라 입력된 정보를 처리한다
사용자에 대한 정보는 프리젠테이션 계층에서 수행하므로 정적인 페이지 처리는 담당하지 않는다
첫 번째 계층에 대해서는 요청에 응답하고 다음 계층인 데이터 계층에게는 직접 요청을 하는 중간 역할을 한다고 하여 미들웨어 또는 BackEnd라 부른다
주로 Java Python 등의 언어를 활용하여 구현한다
데이터 계층은 애플리케이션이 처리하는 정보를 저장하고 관리하는 역할을 하는 계층이다
데이터베이스와 데이터베이스에 접근하여 데이터를 읽고 쓰는 것을 관리하기도 한다
DBMS가 이 계층에 해당하고 데이터 계층 또한 뒷단에 위치하여 BackEnd라 부른다
주로 MySQL Oracle DB 등을 활용하여 구현한다
3 계층 구조는 핵심 기능이 논리적,물리적으로 구분되어 있다는 것이 가장 큰 장점이다
각 계층은 기능적 요구 사항에 대해 서버 플랫폼인
Web Server Web Application Server DB 에서 적절하게 활용이 가능하다
또한 각 계층이 적절히 구분되어 있기 때문에 업무 분담에 유리하고, 서버 부하를 줄일 수 있으며 필요에 따라 독립적으로 다른 계층과 확장을 진행할 수 있다는 장점이 있다
그러나 Tier가 3 단계기 때문에 관리할 포인트가 많고 그 만큼 오류도 많이 생성될 수 있으니 주의할 필요가 있다
웹 개발에서 계층은 서로 다른 이름을 갖지만 구조적으로 유사한 기능을 수행한다
Web Server Web Application Server DB
프리젠테이션 계층이며 사용자 인터페이스를 제공한다
주로 HTML CSS JS 로 구현된다
일반 사용자와 직접 상호작용하고 콘텐츠는 정적,동적일 수 있다
사용자의 입력을 정해지 규칙에 따라 처리하는 중간 계층에 해당한다
요청한 정보에 대해 응답하고 DB에 관련 데이터를 요청하는 역할을 한다
주로 Node.js Django 등을 활용하여 구현한다
WAS가 요청한 데이터를 저장하고 관리하는 역할을 한다
주로 MySQL Oracle DB 를 활용하여 데이터를 처리하고 관리한다