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-티어 아키텍처의 동의어로 사용됩니다.

관련 솔루션
IBM Bob

안전한 의도 인식 개발을 지원하는 AI 파트너인 Bob으로 소프트웨어 제공을 가속화하세요.

IBM Bob 살펴보기
AI 코딩 솔루션

코드 작성, 디버깅, 코드 리팩토링 또는 코드 완성에 소요되는 시간을 최소화하고, 더 많은 시간을 혁신에 집중할 수 있도록 지원하는 신뢰할 수 있는 AI 기반 도구로 소프트웨어 개발 노력을 최적화하세요.

AI 코딩 솔루션 살펴보기
AI 컨설팅 및 서비스

AI로 핵심 워크플로와 운영을 새롭게 혁신해 경험과 실시간 의사 결정, 비즈니스 가치를 극대화하세요.

AI 컨설팅 서비스 살펴보기
다음 단계 안내

생성형 AI와 고급 자동화를 활용하여 기업 환경에 최적화된 코드를 더 빠르게 생성하세요. Bob 모델은 개발자의 역량을 보완하여 개발 및 현대화 작업을 간소화하고 자동화합니다.

  1. IBM Bob 알아보기
  2. AI 코딩 솔루션 살펴보기