Computer Science/Etc

[Etc] 3계층 구조 (3 Tier - Architecture)

꽁치_로그 2023. 1. 23. 17:51

3계층 구조(3 Tier - Architecture) 란?

어떠한 플랫폼을 3계층으로 나누어 별도의 논리적/물리적 장치에 구축 및 운영하는 형태

웹 서버 운영을 예로 들면, 서버 한대에 한꺼번에 모든 기능들을 구축하는 것이 아니라 데이터를 저장하고 읽는 데이터 계층(Data Tier), 데이터를 처리하는 애플리케이션 계층(Application Tier), 그리고 데이터를 표현해주는 클라이언트(프레젠테이션) 계층(Client Tier) 과 같이 각각 3계층으로 나누어 각각의 기능으로 별도의 논리적/물리적인 장치에서 운영하는 방식

 

Citent(Presentation) Tier 클라이언트(프레젠테이션) Presentation Logic
Application Tier 웹/애플리케이션 서버 Business Logic 
Data Tier 데이터베이스 서버 Data Access Logic

 


클라이언트(프레젠테이션) 계층 (Presentation Tier)

사용자가 직접 마주하게 되는 계층이다. 따라서 주로 사용자 인터페이스(인터넷 브라우저 등)를 지원하며 이 계층은 GUI 또는 프론트엔드(Fronte-end)라고 부른다. 그러므로 이 계층에서는 사용자 인터페이스와 관계없는 데이터를 처리하는 로직은 포함하지 않는다. 주로 웹 서버를 예시로 들 수 있고, HTML, Javascript, CSS 등이 이 계층에 해당 된다.

애플리케이션 계층(Application Tier)

이 계층에서는 (프레젠테이션 계층)  요청되는 정보를 어떠한 규칙을 바탕으로 처리하고 가공하는 것들을 담당한다. (동적인 데이터 제공) 비즈니스 로직 계층 or 트랙잭션 계층이라고도 한다. 첫 번째 계층(프레젠테이션)에서 이 계층을 바라볼 때에는 서버처럼 동작하고 (응답), 세 번째 계층(데이터 계층)의 프로그램에서 대해서는 마치 클라이언트처럼 동작한다. (요청)

따라서 이 계층은 미들웨어(Middelware) or 백엔드(Back-end)라고도 불린다. 이 계층에서는 프레젠테이션 코드(HTML, CSS 등)나 데이터 관리를 위한 코드는 포함되지 않는다. 주로 WAS를 예시로 들 수 있고,  PHP, Java 등이 이 계층에 해당한다.

데이터 계층(Data Tier)

데이터 계층은 데이터베이스와 데이터베이스에 접근하여 데이터를 읽거나 쓰는 것을 관리하는 것을 포함한다.

주로 DBMS가 이 계층에 해당된다. 데이터 계층 또한 백엔드(Back-end)라고도 부른다. 주로 MySQL, MongoDB 등이 이 계층에 해당된다.


1 계층 구조 (1 Tier Architecture)

1계층 구조

하나의 물리적인 컴퓨터 또는 서버에 3가지의 다른 기능으로 함께 구현한 방식이다. (웹 서버, WAS, DBMS를 한 서버)

따라서 물리적인 장비를 새로운 장비로 변경하고자 하는 경우에는 모든 구성을 함께 변경해야 한다.

2 계층 구조 (2 Tier Architecture)

2계층 구조 

클라이언트 계층과 데이터 계층의 물리적인 컴퓨터 또는 서버로 구분하여 클라이언트 계층에서의 변경이나 데이터베이스의 변경 시 서로 영향을 받지 않는다. (웹 서버, WAS를 한 서버, DBMS는 다른 서버)

3 계층 구조 (3 Tier Architecture)

3계층 구조

클라이언트 계층과 애플리케이션 계층, 데이터 계층으로 서버를 물리적으로 나누어 구성하는 방식이다.

이에 각각의 계층에서 변화가 일어나더라도 서로 영향을 받지 않고 독립적으로 운영된다.


3계층 구조의 장점 / 단점

장점

각 계층이 분리되어 있어 업무 분담이 가능해지므로 업무 효율성이 증가할 수 있다.

또한 여러 대의 서버로 나누너 각 계층이 동작하므로 서버의 부하를 줄여줄 수도 있으며, 경우에 따라 합리적인 스케일업(서버의 성능 업그레이드)이 가능하다.

단점

1계층으로만 사용하는 것 대비 관리가 더 필요하고, 장애가 발생하는 포인트가 더 늘어날 수 있다는 점을 생각해 두어야 한다.

따라서 비용이 많이 발생하게 되므로 서비스 규모 및 사용자 증가에 따라 계층 구조를 설계 및 고려해야 한다.

반응형