3계층 구조(3 Tier Architecture)

도니·2022년 4월 4일
1

3계층 구조(3 Tier Architecure)?

3계층 구조는 3가지의 레벨을 나눠서 논리적이나 물리적으로 시스템을 구성하는 것을 말합니다. 이 구조를 쉽게 접할 수 있는 웹서버를 기준으로 말하자면 Web Server(frontend), Web Application Server(WAS, backend), DB를 예로 들 수 있습니다.
3계층 애플리케이션은 모든 통신이 서로의 계층을 통과하면서 발생하게 됩니다. 예를 들어 프레젠테이션 계층에서 직접적으로 데이터 계층과의 통신은 금지되어있습니다.

3계층 구조
(출처 : Three-tier architecture overview - AWS Documentation)

프리젠테이션 계층 (Web Server)

프리젠테이션 계층은 주로 사용자에게 보이는 계층입니다. 그렇기 때문에 최상위 레벨인 프리젠테이션 계층은 웹 브라우저 등에서 실행될 수 있습니다. 웹 프리젠테이션은 보통 다들 익숙히 알고있는 HTML, CSS, JavaScript, Vue.JS등 다양한 언어 나 프레임워크를 이용하여 개발이 되고 있습니다.

애플리케이션 계층 (WAS)

이 계층은 애플리케이션의 핵심으로 해당 계층에서 프리젠테이션에서 보내진 데이터들이 처리가 됩니다. 흔히 비지니스 로직, 미들웨어, 백엔드라고 할 때 보통 해당 계층을 말하는 경우가 많습니다. 국내에선 이 계층에 Spring Framework를 많이 사용하고 있습니다.

데이터 계층 (DB)

데이터 계층은 데이터베이스에 접근을 해서 데이터를 읽거나 쓰는 것을 관리하는 계층입니다. 주로 DBMS(Database Management System)이 해당 계층입니다. PostgreSQL, MySQL, MariaDB, Oracle 등이 해당 계층입니다. 데이터 계층도 백엔드로 불립니다.

장점

이렇게 3계층으로 구성을 하게 되면 계층 별 업무 분담이 가능해지므로 업무 효율성이 증가 할 수 있습니다. 또한 이중화 등을 통하여 서비스의 리스크 및 업무 부하를 줄일 수가 있습니다. 마찬가지로 특정 계층의 서버에 대해서만 합리적인 스케일업을 고려할 수도 있습니다.

단점

많은 계층이 있다는 것은 그만큼 관리 포인트가 증가한다는 의미입니다.
문제가 생겼을 경우 빠르게 대처가 어려울 수 있습니다.
또한 계층에 따라 서버가 많아지기 때문에 서비스 규모 및 사용자 증가에 따른 적당한 계층 구조 및 설계가 고려되어야합니다.

그 외...

  1. 1계층 구조(1 Tier Architecture)는 하나의 물리적인 컴퓨터 또는 서버에 3가지 계층이 전부 있는 구조입니다. 보통 소규모 개발 서버나 로컬 컴퓨터에서 많이 보여지는 구조입니다. 이 구조는 만약 물리적인 장비를 바꾸게 될 경우는 모든 구성을 변경해야합니다
  2. 2계층 구조(2 Tier Architecture)는 클라이언트 계층(프리젠테이션과 애플리케이션)들을 하나로 묶고 데이터 계층을 별도로 구성하는 구조입니다. 이 구조의 경우 클라이언트 계층의 변경이나 데이터 계층의 변경시 서로 영향이 없습니다.
profile
세상만사에 호기심

0개의 댓글