Clould/Amazon Web Service
[AWS] 3-Tier 란?
WoongIT
2022. 7. 27. 13:24
반응형
SMALL
3-Tier란?
- 플랫폼을 3계층으로 나누어 별도의 논리적/물리적인 장치에 구축 및 운영하는 형태를 말합니다.
💡 예를 들어, 웹 서버를 운영하는 경우 서버 한 대에 한꺼번에 모든 기능들을 구축하지 않고 데이터를 저장하고 읽는 데이터 계층 데이터를 처리하는 애플리케이션 계층 데이터를 표현해주는 프레젠테이션 계층과 같이 3계층으로 나누어 각 계층 별로 역할 분담을 하여 일을 효율적으로 할 수 있습니다. |
3-Tier의 구조는 어떻게 생겼을까?
프레젠테이션 계층, 애플리케이션 계층, 데이터 계층으로 나누는 구조입니다.
각 계층 별로 수행하는 역할
프레젠테이션 계층(Presentation Tier) - Web Server
- 사용자가 보려고 하는 화면 등을 제공해주는 서버이며 흔히 사용하는 HTTP 통신을 통하여 인터넷을 사용할 때 우리가 보는 브라우저 화면 및 기능 요소들을 보여주는 계층
- 주로 사용자 인터페이스를 지원하며, 이 계층은 Front-End라고 부릅니다.
- 이 계층에서는 사용자 인터페이스와 관계 없는 데이터를 처리하는 로직 등은 포함하지 않음.
💡 HTML, Javascript, CSS, 사진 자료 등이 해당 됩니다. |
애플리케이션 계층(Application Tier) - WAS Server
- 요청되는 정보를 어떠한 규칙을 바탕으로 처리하고 가공하는 것들을 담당
- 첫 번째 계층 또는 클라이언트 계층에서 이 계층을 바라 보기에는 서버처럼 동작(응답)
- 세 번째 계층의 프로그램에 대해서는 마치 클라이언트처럼 행동 (요청)
- 이 계층은 미들웨어 또는 Back-end 라고도 불립니다.
- 이 계층에서는 프레젠테이션 코드나 데이터 관리를 위한 코드는 포함하지 않음
💡 PHP, Java 등이 해당됩니다. |
데이터 계층(Data Tier) - DataBase Server
- 데이터베이스와 데이터베이스에 접근하여 데이터를 읽거나 쓰는 것을 관리하는 것
- 주로 DBMS가 이 계층에 해당됩니다. 데이터 계층 또한 Back-end라고 부릅니다.
- 작업을 지원하고 사용자들의 데이터들을 보관하는 계층이다.
- 흔히 데이터를 활용할 시, 질의문(SQL)을 통하여 필요한 데이터를 확인
💡 MySQL, MongoDB등이 해당됩니다. |
2-Tier와의 차이점은 무엇일까?
2-Tier | 3-Tier | |
개발 편의성 측면 | 프로그래밍 개발에 용이함 | 프레젠테이션 로직과 비즈니스/데이터 접근 로직을 별도로 작성하므로 2-Tier에 비해 개발이 불편함 |
재사용성 측면 | 모든 로직이 클라이언트에 존재하므로 내용 변경 시에 모든 로직을 재개발 재사용성 측면에 좋지 않다. | 동일한 비즈니스 로직을 필요로 하는 프레젠테이션 로직 을 다양하게 구현, 비즈니스 로직을 모듈화하여 클라이언트 / 서버 환경과 웹 환경에서 동시에 사용 가능 |
성능 측면 | 사용자 수가 증가함에 따라 성능이 급격하게 저하 된다. | 동시 사용자 수가 증가해도 일정한 응답 속도와 처리량 을 보장한다 |
자원 활용 측면 | H/W 자원(CPU, 메모리 등)과 데이터베이스 자원을 비효율적으로 사용한다. | 미들웨어에서 부하 분산, 큐잉 메커니즘을 통해 효율적 으로 자원을 활용한다. |
시스템 관리 측면 | H/W 자원(CPU, 메모리 등)과 데이터베이스 자원을 비효율적으로 사용한다. |
미들웨어에서 부하 분산, 큐잉 메커니즘을 통해 효율적 으로 자원을 활용한다. |
💡 2Tier 방식에서는 보다 간편한 아키텍처로 인해 프로그램은 편해질지 몰라도 실행 파일 내부에 admin 계정에 대한 정보가 고스란히 존재하여 보안에 아주 치명적인 단점 3Tier 방식은 DB 연결에 대한 어떤 정보도 클라이언트가 보관할 필요가 없기 때문에 보안 측면에서 훨씬 좋다 |
반응형
LIST