3계층 아키텍처란 무엇인가요?

해질녘 도쿄의 조감도

3계층 아키텍처란 무엇인가요?

3티어 아키텍처는 애플리케이션을 세 가지 논리적 및 물리적 컴퓨팅 티어, 즉 프레젠테이션 티어 또는 사용자 인터페이스, 데이터가 처리되는 애플리케이션 티어, 애플리케이션 데이터가 저장 및 관리되는 데이터 티어로 구성하는 잘 정립된 소프트웨어 애플리케이션 아키텍처입니다.

3티어 아키텍처의 가장 큰 장점은 각 티어가 자체 인프라에서 실행되기 때문에 별도의 개발 팀에서 각 티어를 동시에 개발할 수 있다는 점입니다. 또한 다른 티어에 영향을 주지 않고 필요에 따라 업데이트하거나 확장할 수 있습니다.

수십 년 동안 클라이언트-서버 애플리케이션에는 3티어 아키텍처가 널리 사용되었습니다. 오늘날 대부분의 3티어 애플리케이션은 컨테이너 및 마이크로서비스와 같은 클라우드 네이티브 기술을 사용하는 현대화와 클라우드로의 마이그레이션을 위한 대상입니다.

기술 혁신을 놓치지 마세요

월간 Future Forward 뉴스레터를 통해 IBM 전문가들의 AI, 양자, 하이브리드 클라우드 등에 관한 최신 연구를 살펴보세요. IBM 개인정보 보호정책을 참조하세요.

감사합니다! 구독이 완료되었습니다.

구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.

세 가지 티어 세부 정보

프레젠테이션 티어

프레젠테이션 티어는 최종 사용자가 애플리케이션과 상호 작용하는 애플리케이션의 사용자 인터페이스 및 커뮤니케이션 티어입니다. 주요 목적은 사용자에게 정보를 표시하고 사용자로부터 정보를 수집하는 것입니다. 이 최상위 티어는 예를 들어 웹 브라우저, 데스크톱 애플리케이션 또는 그래픽 사용자 인터페이스(GUI)에서 실행될 수 있습니다. 웹 프레젠테이션 티어는 HTML, CSS, JavaScript를 사용하여 개발됩니다. 데스크톱 애플리케이션은 플랫폼에 따라 다양한 언어로 작성할 수 있습니다.

애플리케이션 티어

로직 티어 또는 미들 티어라고도 하는 애플리케이션 티어는 애플리케이션의 핵심입니다. 이 티어에서는 프레젠테이션 티어에서 수집된 정보가 특정 비즈니스 규칙을 사용하여(때로는 데이터 티어의 다른 정보와 비교하여) 처리됩니다. 애플리케이션 티어는 데이터 티어의 데이터를 추가, 삭제 또는 수정할 수도 있습니다.

애플리케이션 티어는 일반적으로 Python, Java, Perl, PHP 또는 Ruby를 사용하여 개발되며 API 호출을 사용하여 데이터 티어와 통신합니다.

데이터 티어

데이터베이스 티어, 데이터 액세스 티어 또는 백엔드라고도 하는 데이터 티어는 애플리케이션에서 처리되는 정보가 저장되고 관리되는 곳입니다. 이 티어는 PostgreSQL, MySQL, MariaDB, Oracle, Db2, Informix 또는 Microsoft SQL Server와 같은 관계형 데이터베이스 관리 시스템 또는 Cassandra, CouchDB 또는 MongoDB와 같은 NoSQL 데이터베이스 서버에 있을 수 있습니다.

3티어 애플리케이션에서는 모든 통신이 애플리케이션 티어를 통해 이루어집니다. 프레젠테이션 티어와 데이터 티어는 서로 직접 통신할 수 없습니다.

애플리케이션 개발

시작하기: 클라우드에서 기업용 애플리케이션 개발

이 영상에서 Peter Haumer 박사는 IBM Z Open Editor, IBM Wazi 및 Zowe 등 다양한 구성 요소와 사례를 시연하며 오늘날 하이브리드 클라우드에서의 최신 기업용 애플리케이션 개발이 어떤 모습인지 설명합니다. 

3티어 아키텍처의 이점

다시 말하지만, 3티어 아키텍처의 가장 큰 장점은 기능의 논리적, 물리적 분리에 있습니다. 각 티어는 기능 요구 사항에 가장 적합한 별도의 운영 체제 및 서버 플랫폼(예: 웹 서버, 애플리케이션 서버, 데이터베이스 서버)에서 실행될 수 있습니다. 또한 각 티어는 하나 이상의 전용 서버 하드웨어 또는 가상 서버에서 실행되므로 다른 티어에 영향을 주지 않고 각 티어의 서비스를 사용자 지정하고 최적화할 수 있습니다.

(단일 또는 2티어 아키텍처와 비교한) 다른 이점은 다음과 같습니다.

  • 더 빠른 개발: 각 티어는 여러 팀에서 동시에 개발할 수 있으므로 조직은 애플리케이션을 더 빠르게 출시할 수 있습니다. 또한 프로그래머는 각 티어에 맞는 최신 언어와 최고의 도구를 사용할 수 있습니다.

  • 확장성 향상: 필요에 따라 모든 티어를 다른 티어와 독립적으로 확장할 수 있습니다.

  • 안정성 향상: 한 티어의 중단이 다른 티어의 가용성이나 성능에 영향을 미칠 가능성이 적습니다.

  • 보안 향상: 프레젠테이션 티어와 데이터 티어는 직접 통신할 수 없기 때문에 잘 설계된 애플리케이션 티어는 내부 방화벽 역할을 하여 SQL 인젝션 및 기타 악의적인 공격을 방지할 수 있습니다.

티어와 계층 비교

3티어(3-tier) 아키텍처를 설명할 때 '프레젠테이션 계층(layer)' 또는 '비즈니스 로직 계층(layer)'처럼 계층(layer)티어(tier)와 혼용해 사용하는 경우가 많습니다.

이 두 용어는 동일하지 않습니다. '계층(layer)'은 소프트웨어의 기능적 구역을 의미하지만, '티어(tier)'는 다른 구역과 별도의 인프라에서 실행되는 소프트웨어의 기능적 구역을 의미합니다. 예를 들어 휴대폰의 연락처 앱은 3계층 애플리케이션이지만, 3개 계층 모두 휴대폰에서 실행되므로 단일 티어 애플리케이션입니다.

티어와 계층은 제공하는 이점이 다르기 때문에 이러한 차이를 이해하는 것이 중요합니다.

웹 개발의 3티어 애플리케이션

웹 개발에서 티어는 이름은 다르지만 비슷한 기능을 수행합니다.

  • 웹 서버는 프레젠테이션 티어이며 사용자 인터페이스를 제공합니다. 이는 일반적으로 사용자가 장바구니에 제품을 추가하거나, 결제 세부 정보를 추가하거나, 계정을 만드는 이커머스 사이트와 같은 웹 페이지 또는 웹 사이트입니다. 콘텐츠는 정적 또는 동적일 수 있으며 HTML, CSS 및 JavaScript를 사용하여 개발됩니다.

  • 애플리케이션 서버는 중간 티어에 해당하며, 사용자 입력을 처리하는 데 사용되는 비즈니스 로직이 포함됩니다. 이커머스 예시를 계속 이어가자면, 이 티어는 재고 데이터베이스를 쿼리하여 제품 가용성을 반환하거나 고객 프로필에 세부 정보를 추가하는 티어입니다. 이 계층은 주로 Python, Ruby 또는 PHP를 사용하여 개발되며 Django, Rails, Symphony 또는 ASP.NET과 같은 프레임워크를 실행합니다.

  • 데이터베이스 서버는 웹 애플리케이션의 데이터 또는 백엔드 티어입니다. MySQL, Oracle, DB2 또는 PostgreSQL과 같은 데이터베이스 관리 소프트웨어에서 실행됩니다.

기타 멀티티어 아키텍처

3티어 아키텍처가 가장 널리 채택되는 멀티티어 애플리케이션 아키텍처이지만, 업무나 연구에서 접할 수 있는 다른 아키텍처도 있습니다.

2티어 아키텍처

2티어 아키텍처는 프레젠테이션 티어와 데이터 티어로 구성된 최초의 클라이언트-서버 아키텍처로, 비즈니스 로직은 프레젠테이션 티어, 데이터 티어 또는 둘 다에 존재합니다. 2티어 아키텍처에서는 프레젠테이션 티어, 즉 최종 사용자가 데이터 티어에 직접 액세스할 수 있으며 비즈니스 로직이 제한되는 경우가 많습니다. 사용자가 연락처 데이터를 입력하고 검색할 수 있는 간단한 연락처 관리 애플리케이션이 2티어 애플리케이션의 예입니다.

N-티어 아키텍처

멀티티어 아키텍처라고도 하는 N-티어 아키텍처는 티어가 두 개 이상인 모든 애플리케이션 아키텍처를 나타냅니다. 그러나 티어가 3개 이상인 애플리케이션은 드뭅니다. 추가 티어는 거의 이점을 제공하지 않으며, 애플리케이션을 느리게 만들고, 관리가 어려워지며, 실행 비용이 더 많이 들 수 있기 때문입니다. 따라서 일반적으로 N-티어 아키텍처와 멀티티어 아키텍처는 3-티어 아키텍처의 동의어로 사용됩니다.

관련 솔루션
AI 기반 애플리케이션 개발

Watsonx.ai는 애플리케이션 개발 팀이 워크플로에 AI를 원활하게 통합할 수 있도록 지원합니다. 이 포괄적인 툴킷은 모델 생성에서 배포에 이르기까지 전체 AI 라이프사이클를 지원합니다.

watsonx.ai 살펴보기
IBM Z Development and Test Environment

x86 하드웨어에서 메인프레임 애플리케이션 개발, 테스트, 데모, 교육을 위한 플랫폼을 사용합니다.

Z 개발 환경 살펴보기
모바일 클라우드 컴퓨팅 솔루션

앱을 신속하게 설계하고 프로토타입을 제작하여 시장에 쉽게 출시할 수 있는 IBM의 모바일 앱 개발 플랫폼에 대해 알아보세요.

모바일 클라우드 살펴보기
다음 단계 안내

IBM Cloud Application Development Consulting Services는 클라우드 전략을 간소화하기 위한 전문가 지침과 혁신적인 솔루션을 제공합니다. IBM의 클라우드 및 개발 전문가와 협력해 애플리케이션을 현대화, 확장, 가속화하여 비즈니스에 혁신적인 결과를 제공하세요.

애플리케이션 개발 서비스 살펴보기 무료로 IBM Cloud에서 구축 시작하기