3계층 구조

Yeon Jeffrey Seo·2021년 11월 19일
0

개발 상식

목록 보기
2/4

https://www.stevenjlee.net/2020/05/08/%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-3%EA%B3%84%EC%B8%B5-%EA%B5%AC%EC%A1%B0-3-tier-architecture/

3계층 구조는 어떤 플랫폼을 3계층으로 나누어 논리적/물리적으로 분리된 곳에 구축하고 운영하는 형태이다.
이 계층을 n개의 계층으로 나누어 운영할 수 있으며 이 경우 다층구조(Multi-tire architecture or n-tier architecture)라 표현한다.

표현 계층(Presentation Tier)

표현 계층 혹은 프레젠테이션 계층은 사용자가 직접 마주치는 계층이다. 사용자 인터페이스, GUI, 혹은 프론트엔드라 부른다. 이 계층에서 사용자 인터페이스와 관계 없는 데이터를 처리하는 로직은 포함하지 않는다. HTML, FE JavaScript, CSS, 등이 이 계층에 해당된다.

응용 계층(Application Tier)

이 계층에서는 표현계층에서 요청하는 정보를 특정 규칙과 논리를 바탕으로 처리하고 가공하는 과정을 담당한다. Business Logic Tier, Transaction Tier, Middleware, Back-End 등 다양하게 불린다. 표현계층에서 바라본 어플리케이션 계층은 서버처럼 동작하고, 데이터 계층에 대해서는 클라이언트처럼 동작한다. PHP, Java, node.js 등으로 만든 웹 서버가 이에 해당한다.

데이터 계층(Data Tier)

데이터 계층은 데이터베이스와 데이터베이스에 접근하여 CRUD를 수행하는 계층이다. 주로 DBMS(Database Management System)이 이 계층에 해당한다. 데이터 계층 또한 백엔드(Back-End)라 부른다. MySQL, MongoDB 등이 이 계층에 해당한다.

1 계층 구조
하나의 물리적인 공간에 3계층을 함께 구현한 방식이다. 따라서 물리적인 장비를 새로운 장비로 변경하고자 하는 경우 모든 구성을 함께 변경해야 한다.

2 계층 구조
표현 계층과 응용 계층을 하나의 계층 구조에 함께 구현한다. 데이터 계층은 분리된 논리적/물리적으로 분리된 곳에 구현한다.

3 계층 구조
클라이언트 계층, 어플리케이션 계층, 데이터 계층을 각자 물리적, 논리적으로 분리하여 구성한다. 각 계층에서 변화가 일어나도 서로 영향을 받지 않고 독립적으로 운용 가능하다.

구조 세분화에 따른 장단점

장점

  • 물리적, 논리적으로 계층을 구분함으로서, 사고 발생시 리스크를 감소시킬 수 있다.
  • 서버 부하가 감소한다.
  • 특정 계층에 대해서 합리적 스케일 업(Scale Up : 성능 업그레이드)이 가능하다.

단점

  • 관리 포인트가 늘어난다.(= 장애 포인트가 늘어난다)
  • 시스템 구축 비용 증가
profile
The best time to plant a tree was twenty years ago. The second best time is now.

0개의 댓글