목차 LIST
3-Tier Architecture of Web Application 이란?
"3-tier 아키텍처는 다중 계층 아키텍처에서 가장 널리 사용되며
단일 프레젠테이션 계층, 로직 계층 및 데이터 계층으로 구성된다."
3-tier architecture는 모든 계층이 3개의 논리 계층으로 분할되는 아키텍처 패턴이다.
첫 번째 계층
Presentation Tier(Client) - 일반 사용자가 직접 액세스 할 수 있는 프레젠테이션 계층
콘텐츠를 HTML/JS/CSS 형식으로 브라우저에 전송하는 계층(React, ..)
모든 HTTPS 지원 클라이언트 또는 장치와 통신할 수 있으므로 프레젠테이션 계층은 다양한 형식(데스크톱 어플리케이션, 모바일 앱, 웹페이지, IoT 장치 등)을 유연하게 수행 할 수 있다.
두 번째 계층
Logic Tier(Application) - 비즈니스 로직이 실행되는 비즈니스 로직 계층
예) 어플리케이션 서버를 사용하고 어플리케이션에 대한 비즈니스 논리를 처리하는 계층(C#,Java,C++,Python,..)
세 번째 계층
Data Tier(Database) - 데이터 스토리지 계층
응용 프로그램 데이터에 대한 액세스를 제공하는 데이터베이스 관리 시스템(MySQL, Postgres,..)
* Tier : 컴포넌트들의 물리적인 분리
* Layer : 컴포넌트들의 논리적인 분리
이 아키텍처는 프론트엔드, 백엔드 그리고 각 계층에 특정 작업이 있으며 독립적으로 관리되는 데이터베이스같은 클라이언트-서버 어플리케이션을 실행하는데 사용된다.
예시
웹 어플리케이션을 사용하여 해당 지역에서 영화 시간을 찾고 있다고 가정하면
1) 프레젠테이션 계층에는 동영상을 보려는 날짜 등을 선택하는 웹 페이지 표시
2) 입력한 정보는 Application layer로 전달되고 조회 쿼리를 생성해서 Database layer로 전달
3) Database layer는 쿼리를 실행하고 결과를 Application layer 계층으로 리턴
4) Application layer는 결과를 웹 페이지에 구성
5) 페이지가 브라우저로 다시 전송되고 Presentation layer가 laptop 또는 타 장치에 페이지를 표시한다.
이점
어플리케이션을 3개의 계층으로 분리할 경우 다음과 같은 5가지 이점이 있다.
- 어플리케이션의 다른 영역에 영향을 주지 않고 한 계층의 기술 스택을 업데이트할 수 있다.
- 서로 다른 개발 팀이 각자의 전문 분야에 대해 작업할 수 있다 (한 영역에서 심층적인 역량)
- 어플리케이션을 스케일업 및 스케일아웃 할 수 있다
예) 별도의 백엔드 계층을 통해 다양한 데이터베이스에 구현할 수 있으며, 여러 웹 서버를 추가하여 확장할 수 있다 - 서비스나 서버의 신뢰성과 독립성을 높여준다.
- 프레젠테이션 코드와 비즈니스 로직을 별도로 관리하여 비즈니스 로직의 변경 등이 프레젠테이션 계층에 영향을 미치지 않는다.
같이 보면 좋은 1-tier, 2-tier, N-tier architecture
1-Tier Architecture
단일 계층 아키텍처는 동일한 tier, 즉 클라이언트 tier에 프레젠테이션 layer, 비즈니스 layer 및 데이터 layer가 있다.
이름에서 알 수 있듯이 모든 계층과 구성요소를 동일한 시스템에서 사용할 수 있다.
예로는 MP3 플레이어, MS Office 등이 있다. 데이터를 저장하기 위해(데이터 계층의 기능으로) 로컬 시스템 또는 공유 드라이버를 사용한다.
2-Tier Architecture
클라이언트 tier에서 프레젠테이션 layer와 어플리케이션 layer를 모두 처리하고 서버는 데이터베이스 layer를 처리한다.
2계층 아키텍처는 '클라이언트-서버 어플리케이션'이라고도 한다.
2계층 아키텍처에서 통신은 클라이언트와 서버 간에 이루어지는데 클라이언트 시스템은 요청을 서버 시스템으로 전송하고 서버 시스템은 요청을 처리한 후 응답을 클라이언트 시스템으로 다시 보낸다.
3-Tier Architecture
세 개의 주요 층이 모두 분리되어 있다. 프레젠테이션layer는 클라이언트tier에 있고 어플리케이션 layer는 미들웨어 역할을 하며 비즈니스 Tier에 있다. 그리고 데이터layer는 데이터tier에서 사용 할 수 있다. 매우 일반적인 아키텍처이다~
N-Tier Architecture
분산 아키텍처 또는 다중 계층 아키텍처라고도 한다. 3-tier와 유사하지만 비즈니스 로직을 분산하기 위해 어플리케이션 서버의 수가 증가하여 개별 계층으로 표시된다.
같이 보면 좋을 미들웨어
좋은 블로그 글 추천!
References
https://prinha.tistory.com/entry/WEB-3-Tier-Architecture-3%EA%B3%84%EC%B8%B5-%EA%B5%AC%EC%A1%B0
https://bkjeon1614.tistory.com/27
https://www.perfmatrix.com/software-architecture-and-its-types/
'IT 기본지식' 카테고리의 다른 글
Micro Service Architecture(MSA)의 장단점 (0) | 2022.02.15 |
---|---|
CI/CD 에 대한 간단 정리 (0) | 2022.02.14 |
[통신] TCP/UDP 가볍게 읽고 기억하기, TCP vs IP (0) | 2022.02.13 |
Virtualization(가상화)란 무엇인가? | Hypervisor(하이퍼바이저) (0) | 2022.02.13 |
NoSQL이란 무엇인가? | 이점, 단점, SQL vs NoSQL (0) | 2022.02.12 |
댓글