3계층 아키텍처는 애플리케이션을 프레젠테이션 계층 또는 사용자 인터페이스, 데이터가 처리되는 애플리케이션 계층 그리고 애플리케이션과 관련된 데이터가 저장 및 관리되는 데이터 계층이라는 3개의 논리적이고 물리적인 컴퓨팅 계층으로 구성하는 확립된 소프트웨어 애플리케이션 아키텍처입니다.
3계층 아키텍처의 주요 장점은 각 계층이 자체 인프라에서 실행되기 때문에 각 계층이 별도의 개발 팀에 의해 동시에 개발될 수 있으며 다른 계층에 영향을 주지 않고 필요에 따라 업데이트되거나 확장될 수 있다는 점입니다.
수십 년 동안 3계층 아키텍처는 클라이언트-서버 애플리케이션의 지배적인 아키텍처였습니다. 현재 대부분의 3계층 애플리케이션은 현대화 대상이며 현대화에는 클라우드 네이티브 기술(예: 컨테이너 및 마이크로서비스)이 사용됩니다. 또한 이러한 3계층 애플리케이션은 클라우드로의 마이그레이션 대상이기도 합니다.
프레젠테이션 계층은 일반 사용자가 애플리케이션과 상호작용하는 애플리케이션의 사용자 인터페이스 및 커뮤니케이션 계층입니다. 주요 목적은 정보를 표시하고 사용자로부터 정보를 수집하는 것입니다. 이 최상위 레벨 계층은 예를 들어 웹 브라우저, 데스크탑 애플리케이션 또는 그래픽 사용자 인터페이스(GUI)에서 실행될 수 있습니다. 웹 프리젠테이션 계층은 일반적으로 HTML, CSS 및 JavaScript를 사용하여 개발됩니다. 데스크탑 애플리케이션은 플랫폼에 따라 다양한 언어로 작성될 수 있습니다.
논리 계층 또는 중간 계층이라고도 하는 애플리케이션 계층은 애플리케이션의 핵심입니다. 이 계층에서는 특정 비즈니스 규칙 세트인 비즈니스 논리를 사용하여 프레젠테이션 계층에서 수집된 정보가 처리됩니다(경우에 따라 데이터 계층의 다른 정보와 관련하여 처리됨). 또한 애플리케이션 계층은 데이터 계층의 데이터를 추가, 삭제 또는 수정할 수도 있습니다.
애플리케이션 계층은 일반적으로 Python, Java, Perl, PHP 또는 Ruby를 사용하여 개발되며, API 호출을 사용하여 데이터 계층과 통신합니다.
종종 데이터베이스 계층, 데이터 액세스 계층 또는 백엔드라고도 불리는 데이터 계층은 애플리케이션이 처리하는 정보가 저장 및 관리되는 곳입니다. 이는 관계형 데이터베이스 관리 시스템 (예: PostgreSQL, MySQL, MariaDB, Oracle, DB2, Informix 또는 Microsoft SQL Server) 또는 NoSQL 데이터베이스 서버(예: Cassandra, CouchDB 또는 MongoDB)일 수 있습니다.
3계층 애플리케이션에서는 모든 통신이 애플리케이션 계층을 통과합니다. 프레젠테이션 계층과 데이터 계층은 서로 간에 직접 통신할 수 없습니다.
3계층 아키텍처에 대한 논의에서, 레이어 는 종종 계층과 혼동되어 잘못 사용됩니다(예: 프레젠테이션 레이어' 또는 '비즈니스 논리 레이어') .
이들은 동일하지 않습니다. '레이어'는 소프트웨어의 기능적 분할을 의미하지만, '계층'은 다른 분할과 구분된 인프라에서 실행되는 소프트웨어의 기능적 분할을 의미합니다. 예를 들어, 전화기의 연락처 앱은 3개 레이어의 애플리케이션이지만 단일 계층 애플리케이션입니다. 세 개의 레이어가 모두 전화기에서 실행되기 때문입니다.
레이어가 계층과 동일한 이점을 제공할 수 없으므로, 이 차이점은 중요합니다.
다시 말하지만, 3계층 아키텍처의 주요 장점은 기능의 논리적 및 물리적 분리입니다. 각 계층은 기능적 요구 사항에 가장 적합한 별도의 운영 체제와 서버 플랫폼(예: 웹 서버, 애플리케이션 서버, 데이터베이스 서버)에서 실행될 수 있습니다. 그리고 각 계층이 하나 이상의 전용 서버 하드웨어 또는 가상 서버에서 실행되므로, 다른 계층에 영향을 주지 않고도 각 계층의 서비스를 사용자 정의하고 최적화할 수 있습니다.
기타 장점(단일 또는 2계층 아키텍처와 비교할 경우)에는 다음이 포함됩니다.
웹 개발에서 계층은 서로 다른 이름을 갖지만 유사한 기능을 수행합니다.
3계층 아키텍처는 쉽게 가장 널리 채택되는 다중 계층 애플리케이션 아키텍처이지만, 작업 또는 연구에서 접할 수 있는 다른 아키텍처도 있습니다.
2계층 아키텍처는 프레젠테이션 계층과 데이터 계층으로 구성되는 원래의 클라이언트-서버 아키텍처입니다. 비즈니스 논리는 프레젠테이션 계층, 데이터 계층 또는 둘 다에 상주합니다. 2계층 아키텍처에서 프레젠테이션 계층 그리고 그에 따라 일반 사용자도 데이터 계층에 직접적으로 액세스할 수 있으며, 비즈니스 논리는 제한되는 경우가 많습니다. 사용자가 연락처 데이터를 입력하고 검색할 수 있는 간단한 연락처 관리 애플리케이션이 2계층 애플리케이션의 한 예입니다.
다중 계층 아키텍처라고도 불리는 N계층 아키텍처는 둘 이상의 계층을 갖는 모든 애플리케이션 아키텍처를 의미합니다. 그러나 4개 이상의 계층을 둔 애플리케이션은 거의 없습니다. 추가 계층은 별로 이득이 없으며 애플리케이션 속도를 늦추고 관리와 실행에 더 많은 비용이 들 수 있기 때문입니다. 따라서, n계층 아키텍처 및 다중 계층 아키텍처는 일반적으로 3계층 아키텍처를 의미합니다.
IBM에서 인증한 통합된 개방형의 컨테이너화된 솔루션인 Red Hat OpenShift 소프트웨어에서 실행되는 IBM® Cloud Pak 솔루션을 사용하여 보다 빠르게 클라우드로 이동합니다.
IBM® Cloud를 사용하여 VMware 워크로드와 애플리케이션을 원활하게 현대화합니다.
앱을 현대화하고 신규 앱을 구축하며 비용을 절감하고 ROI를 극대화합니다.