-
3 Tier-Architecture개발상식(어렵다어려붜) 2024. 3. 6. 23:31
3 Tier-Architecture 란?
3-tier 아키텍처는 다중 계층 아키텍처에서 가장 널리 사용되며 단일 프레젠테이션 계층, 로직 계층 및 데이터 계층으로 구성된다."
첫 번째 계층
- Presentation Tire
일반 사용자가 직접 액세스 할 수 있는 계층
콘텐츠를 HTML/JS/CSS 형식으로 브라우저에 전송 하는 계층
* 보여지는 GUI 라고 생각하면 쉽다.
모든 HTTPS 자원 클라이언트 또는 장치와 통신 할 수 있으므로 프레젠테이션 계층은 다양한 형식 (데스크톱 애플리케이션, 모바일 앱, 웹페이지, loT 장치 등) 을 유연하게 수행 할 수 있다.
두 번째 계층
- Logic Tier
비즈니스 로직이 실행되는 계층
어플리케이션 서버를 사용하고 어플리케이션에 대한 비즈니스 논리를 처리하는 계층 ( C#,Java,Pytho,C++...)
세 번째 계층
- Data Tier
데이터 스토리지 계층
응용 프로그램 데이터에 대한 엑세스를 제공하는 데이터베이스 관리 시스템 (MySQL, Postgres...)
종종 데이터베이스 계층, 데이터 액세스 계층 또는 백엔드라고도 불리는 데이터 계층은 애플리케이션이 처리하는 정보가 저장 및 관리되는 곳입니다.
Tire / Layer 차이
Tier : 컴포넌트들의 물리적인 분리
Layer : 컴포넌트들의 논리적인 분리
이들은 동일하지 않습니다.
'레이어'는 소프트웨어의 기능적 분할을 의미하지만,
'계층'은 다른 분할과 구분된 인프라에서 실행되는 소프트웨어의 기능적 분할을 의미합니다.
예를 들어, 전화기의 연락처 앱은 3개 레이어의 애플리케이션이지만 단일 계층 애플리케이션입니다.
세 개의 레이어가 모두 전화기에서 실행되기 때문입니다.
레이어가 계층과 동일한 이점을 제공할 수 없으므로, 이 차이점은 중요합니다.
이러한 아키텍쳐는 프론트엔드와 백엔드 그리고 각 계층에 특정 작업이 있으며 독립적으로 관리되는 데이터베이스 같은 클라이언트-서버 어플리케이션을 실행하는데 사용된다
장점
주요 장점은 기능의 논리적 및 물리적 분리입니다.
각 계층은 기능적 요구 사항에 가장 적합한 별도의 운영 체제와 서버 플랫폼(예: 웹 서버, 애플리케이션 서버, 데이터베이스 서버)에서 실행될 수 있습니다.
그리고 각 계층이 하나 이상의 전용 서버 하드웨어 또는 가상 서버에서 실행되므로,
다른 계층에 영향을 주지 않고도 각 계층의 서비스를 사용자 정의하고 최적화할 수 있습니다.
<기타 장점(단일 또는 2계층 아키텍처와 비교할 경우)에는 다음이 포함됩니다.>
- 빠른 개발: 각 계층이 서로 다른 팀에서 동시에 개발될 수 있으므로, 기업은 애플리케이션을 보다 빠르게 시장에 출시할 수 있으며 프로그래머는 각 계층에 최신 및 최상의 언어와 툴을 사용할 수 있습니다.
- 개선된 확장성: 필요에 따라 어느 계층이든 다른 계층과 독립적으로 확장할 수 있습니다.
- 개선된 신뢰성: 한 계층의 가동 중단은 다른 계층의 가용성 또는 성능에 별로 영향을 미치지 않습니다.
- 개선된 보안: 프레젠테이션 계층과 데이터 계층이 직접 통신할 수 없으므로, 잘 설계된 애플리케이션 계층은 내부 방화벽의 일종으로 작동하여 SQL 인젝션 및 기타 악의적 공격을 방지할 수 있습니다.
웹 개발의 3계층 어플리케이션
- 웹 서버는 프레젠테이션 계층이며 사용자 인터페이스를 제공합니다. 이는 일반적으로 사용자가 장바구니에 상품을 추가하거나 지불 정보를 추가하거나 계정을 작성하는 전자상거래 사이트와 같은 웹 페이지 또는 웹 사이트입니다. 콘텐츠는 정적 또는 동적일 수 있으며, 이는 일반적으로 HTML, CSS 및 Javascript를 사용하여 개발됩니다. (Web Server)
- 애플리케이션 서버 는 사용자 입력을 처리하는 데 사용되는 비즈니스 논리를 수용하는 중간 계층에 해당합니다. 전자상거래 사례를 계속하자면, 이는 인벤토리 데이터베이스를 조회하여 제품 가용성을 리턴하거나 고객 프로파일에 세부사항을 추가하는 계층입니다. 이 레이어는 종종 Python, Ruby 또는 PHP를 사용하여 개발되며, 예를 들어 e Django, Rails, Symphony 또는 ASP.NET 등의 프레임워크를 실행합니다. (WAS)
- 데이터베이스 서버 는 웹 애플리케이션의 데이터 또는 백엔드 계층입니다. 실무에선 DB라 한다
'개발상식(어렵다어려붜)' 카테고리의 다른 글
[개발상식] URL URI 차이 (1) 2023.11.02 [ 개발상식 ] CRUD 란? (0) 2023.11.02 - 빠른 개발: 각 계층이 서로 다른 팀에서 동시에 개발될 수 있으므로, 기업은 애플리케이션을 보다 빠르게 시장에 출시할 수 있으며 프로그래머는 각 계층에 최신 및 최상의 언어와 툴을 사용할 수 있습니다.