Web 3계층

클라언트/서버 구성의 단점

인터넷을 통해 시스템을 이용하는 클라이언트/서버 구성은 2가지 문제점이 있다.

  1. 인터넷에서 직접 데이터베이스에 접속하는 것에 대한 보안 위험

  2. 불특정 다수의 사용자가 사용하는 클라이언트에서의 애플리케이션 관리비용

관리비용 문제란

원래 인터넷을 사용한 시스템의 편리성은 웹 브라우저만 된다면 어떤 클라이언트 환경에서도 동작한다는 간편함이 있다.

클라이언트/서버 구성은 개인이 이용하는 PC에 애플리케이션을 설치해 동작하였다(이런 애플리케이션을 '네이티브(Native) 애플리케이션' 이라고 부른다). 사용자가 특정 기업이나 조직 구성원일 경우에는 문제가 없지만, 인터넷을 통해 전 세계 불특정 다수의 사용자가 이용하는 애플리케이션은 각종 환경에 대응해 애플리케이션을 작성해야 하고, 각각에 대해 버전 관리나 버그 수정 버전을 배포하는 데 많은 비용이 필요하게 된다.

이 때문에, 비즈니스 로직을 실행하는 애플리케이션을 서버에서 관리해 비용을 절감하자는 요구가 나왔고, 이에 대응하기 위해 제시된 것이 'Web 3계층' 구성이다. Web 3계층은 시스템을 다음 3가지 계층의 조합으로 생각하는 모델이다.

  • 웹 서버 계층

  • 애플리케이션 계층

  • 데이터베이스 계층

웹 서버 계층과 애플리케이션 계층

Web 3계층 구성이 클라이언트/서버 구성과의 차이점은 클라이언트와 데이터베이스 계층 사이에 '웹 서버 계층'과 '애플리케이션 계층'이 존재한다는 것이다.

웹 서버는 클라이언트로부터 접속 요청(HTTP 요청)을 직접 받아서 그 처리를 뒷단의 애플리케이션 계층(애플리케이션 서버)에 넘기고 그 결과를 클라이언트에 반환한다. 즉, 애플리케이션 서버와 클라이언트 웹 브라우저와의 가교 역할을 한다. 자주 이용되는 웹 서버로는 Apache, IIS 가 있다.

따라서 사용자로부터 직접적인 접속 요청을 받는 역할을 웹 서버 계층에 한정하여 애플리케이션 계층과 데이터베이스 계층의 보안을 높일 수 있다. 동시에 애플리케이션 계층에 비즈니스 로직을 집중해서 애플리케이션 관리 비용을 낮추는 구성이 된다.

Web 3계층 구성은 현재 웹 시스템에서는 거의 표준이 되었다고 할 정도로 지위를 확립하고 있다.

Last updated