2023. 11. 1. 00:09ㆍ기타
3-Tier Architecture란
3-Tier Architecture는 애플리케이션을 프레젠테이션 계층 또는 사용자 인터페이스, 데이터가 처리되는 애플리케이션 계층 그리고 애플리케이션과 관련된 데이터가 저장 및 관리되는 데이터 계층이라는 3개의 논리적이고 물리적인 컴퓨팅 계층으로 구성되는 소프트웨어 애플리케이션 아키텍처입니다.
3-Tier Architecture 상세 설명
프레젠테이션 계층
프레젠테이션 계층은 사용자가 애플리케이션과 상호작용하는 사용자 인터페이스 및 커뮤니케이션 계층입니다. 해당 계층의 목적은 정보를 표시하고 사용자로부터 정보를 수집하는 것입니다. 예를 들어 웹 브라우저, 데스크탑 애플리케이션, GUI 등에서 보여지는 화면 부분이라고 볼 수 있습니다.
애플리케이션 계층
애플리케이션 계층은 특정 비즈니스 논리를 사용하여 프레젠테이션 계층에서 수집된 정보가 처리됩니다. 또한 애플리케이션은 데이터 계층의 데이터를 추가, 삭제 또는 수정할 수도 있습니다. 3-Tier Architecture에서는 모든 통신이 애플리케이션 계층을 통과합니다. 프레젠테이션 계층과 데이터 계층은 서로 간에 직접 통신이 불가능합니다.
데이터계층
데이터 계층은 애플리케이션이 처리하는 정보가 저장 및 관리되는 곳입니다.
3-Tier Architecture 아키텍처의 장점
기능의 논리적 및 물리적 분리
각 계층은 요구 사항에 적합한 별도의 운영 체제와 서버 플랫폼에서 실행될 수 있습니다. 그리고 각 계층이 하나 이상의 전용 서버 하드웨어 또는 가상 서버에서 실행되므로, 다른 계층에 영향을 주지 않고도 각 계층의 서비스를 사용자 정의하고 최적화 할 수 있습니다.
빠른 개발
각 계층이 서로 다른 팀에서 동시에 개발될 수 있으므로 빠르게 시장에 출시될 수 있으며, 프로그래머는 각 계층에 최신 및 최상의 언어와 툴을 사용할 수 있습니다.
개선된 확장성
필요에 따라 어느 계층이든 다른 계층과 독립적으로 확장할 수 있습니다.
개선된 보안
프레젠테이션 계층과 데이터 계층이 직접 통신할 수 없으므로, SQL 인젝션 및 기타 악의적 공격을 방지할 수 있습니다.
웹 개발의 3-Tier Architecture
웹서버
프레젠테이션 계층으로 사용자 인터페이스를 제공합니다. 콘텐츠는 정적 혹은 동적일 수 있으며 일반적으로 HTML, CSS, Javascript를 사용하여 개발됩니다.
애플리케이션 서버
사용자 입력을 처리하는데 사용되는 비즈니스 노릴르 수용하는 계층에 해당됩니다.
데이터베이스 서버
데이터를 실제로 저장하고 관리하는 계층에 해당됩니다.
계층과 레이어의 차이
3-tier Arichitecture의 계층과 웹 애플리케이션에서 많이 사용되는 3-layer의 계층과 레이어는 전혀 다른 개념입니다.
레이어
레이어는 코드(로직) 수준에서의 논리적인 분리를 의미합니다. 다시말해, 관련된 기능들을 구현하는 코드들을 한 군데로 모아놓은 것입니다. 예를 들어 3-layer의 대표적인 User Interface, Business Logic, Data Access 이 세가지 레이어는 각자의 책임이 있고 논리적으로 잘 분리되어 있습니다.
참고로, 레이어는 물리적인 서버의 분리는 존재하지 않습니다.
계층
계층은 물리적인 구조로 분리되어 있습니다. 웹 개발의 3-Tier Architecture와 같이 각자의 역할을 가지고 물리적으로 분리되어 레이어를 포함하고 있습니다.
https://www.ibm.com/kr-ko/topics/three-tier-architecture
https://www.baeldung.com/cs/layers-vs-tiers