본문 바로가기
알아두면쓸데있는신기한잡학사전/고군분투흔적들

[Project] 2-tier와 3-tier

by 대범하게 2022. 8. 4.
반응형

2-tier와 3-tier

웹 아키텍처에서 3-tier가 등장하기 전에는 대부분 2-tier 구조가 활용되었다.

 

1) 2-tier

- Client - Server

- 2-tier란 ec2와 같은 웹서버가 DB에 연결되는 형태를 말한다.

(DB가 없이 웹 서버만 있다면 프론트엔드 개발만 가능하지만 DB가 있으면 백엔드도 사용이 가능해진다. 프론트엔드에 존재하는 데이터는 서버 문제로 쉽게 손실될 수 있으나 백엔드에 있는 데이터는 반영구적이며, 개인정보보호차원, 데이터활용차원에서 적합하다.)

 

- 2-tier 구조는 트래픽이 많지 않은 경우 자주 사용되는 구조이다

 

- 2-tier 기반의 클라이언트/서버 환경은 애플리케이션 개발의 가장 일반적인 방법으로 하나의 클라이언트에 서버 프로세스가 하나씩 생성되는 방식이다. 

 

- 클라이어트가 직접 서버의 DB에 접속하여 자원을 활용한다. 편리하지만 보안에 취약하고, 유지보수가 어렵다.

2-tier 아키택처의 구조도. 클라이언트가 서버의 DB에 직접 접속한다.

 

2) 3-tier

- Web Server- Application Server - DataBase Server

- 3-tier란 ec2와 같은 웹서버와 DB를 논리적으로(혹은 물리적으로) 분리한 형태를 말한다.

 

- 3-tier 구조는 DB의 접속을 서버를 통해서만 가능하도록 구성한다.

 

- Web Server

: 보통 사용자(클라이언트)가 보려고하는 GUI, 인터페이스, 웹 화면을 제공해주는 서버이다.

우리가 흔히 사용하는 HTTP 통신을 통하여 인터넷을 사용할 때 우리가 보는 브라우저 화면 및 기능 요소들을 보여주는 계층

실무에서는 보통 웹 서버라고 한다.

 

- Application Server

: 인터넷에서 우리는 단순히 화면이나 인터페이스를 보는 것 이외에 상품 주문, 결제, 검색 등의 다양한 기능을 사용한다.

Application Server은 이러한 기능들을 실질적으로 처리하는 계층

실무에서는 보통 WAS(Web Application Server) 서버라고 한다.

(* Application은 무엇을 연산하고 처리하는 의미로 받아들이면 된다.)

 

- DataBase Server

: Application Server에서 사용자의 요청을 처리할 때, 데이터 기입이나 변경 등 작업을 지원하고 사용자들의 데이터들을 보관하는 계층

흔히 Application Server에서 DB Server를 통해 데이터를 활용할 시, 질의문(쿼리)을 통하여 필요한 데이터를 확인하는데, 이 때 DB에서 사용되는 질의문을 SQL이라고 한다.

실무에서는 DB 서버라고 한다.

3-tier 아키택처의 구조도


- Client: 사용자의 PC, 웹 브라우저이다.

- Web Server: Client의 요청과 접속관리를 주관한다.

- WAS: 실질적인 애플리케이션 실행(비즈니스로직과 DB접근)을 주관한다.

- DB: 데이터베이스, 데이터가 저장된 공간

 

Application Layer에서 웹 서버(Web Server)와 WAS를 구분한 것이 핵심이다.

Web Server가 Client의 요청과 접속관리를 주관하고, WAS가 웹 애플리케이션 실행을 주관한다.

이렇게 클라이언트의 접속관리와 앱 실행을 분리함으로써 여러 클라이언트가 접근해도 비즈니스 로직 처리를 쓰레드로 할 수 있다.

WAS를 활용한 3-tier 아키택처의 구조도

위 그림의 flow를 간략히 정리하면 다음과 같다.

 

① 클라이언트의 웹 브라우저가 HTTP Request를 한다.

② 웹 서버는 WAS에 웹 애플리케이션 실행을 위임한다.

③ WAS는 해당하는 로직을 수행하다가 DB접근이 필요하면 SQL 질의를 한다.

④ 질의에 따른 응답을 보낸다.

⑤ 실행 결과를 반환한다.

⑥ WAS로 부터 받은 결과를 웹 브라우저에 HTTP로 송신한다

 

 

3) 2-tier vs 3-tier

- 서버의 역할을 나누어서 분리하면 같은 역할을 하는 서버들을 같은 tier에 있다고 말한다.

 

- tier가 늘어날수록 서버를 여러가지 분류로 나눈다는 뜻으로, 서버가 총 2대이든 20대이든 서버의 역할이 web서버, db서버 두가지이면 2-tier구조이다. 일반적으로 3- tier는 web서버-was서버-db서버를 지칭한다.

 

- 3tier구조는 백엔드 전용서버가 있어서 무거운 작업을 처리하기에 2-tier보다 성능이 좋으나, 구조가 복잡한 단점이 있다.

 

 

 

참고)

https://jocoma.tistory.com/entry/2-tier-%EC%9B%B9%EC%84%9C%EB%B2%84-DB-%EC%97%B0%EA%B2%B0%EB%90%9C-%ED%98%95%ED%83%9C?category=987938 

https://dbknowledge.tistory.com/78

https://preamtree.tistory.com/39

반응형