4계층 애플리케이션 아키텍처로 전환할 때입니다.
다른 많은 사람들과 마찬가지로 여러분도 기존 디지털 경험을 개선하거나 완전히 새로운 웹사이트와 애플리케이션을 구축하기 위한 프로젝트를 계획하고 있을 것입니다. 이 과정에서 명심해야 할 가장 중요한 사실은 “웹”이 더 이상 “웹 브라우저”를 의미하지 않는다는 것입니다. 전문가들은 수년 동안 애플리케이션 개발에 있어 ‘모바일 우선 접근 방식’을 지지해 왔지만, 연간 모바일 트래픽 증가율이 60%에 육박하는 상황에서 더 이상 이를 무시할 수 없습니다. 모바일 참여가 웹 성능에 점점 더 인기가 높아짐에 따라 4계층 애플리케이션 아키텍처 및 마이크로서비스를 사용하는 것이 중요합니다. 연결된 디바이스 수의 폭발적인 증가, 데스크톱에서 모바일로의 트래픽 이동, 사물 인터넷의 확산은 이제 프로젝트가 다양한 디바이스에서 제공되는 다양한 사용자 경험에 기반을 두어야 한다는 것을 의미합니다.
대부분의 기능을 포함하는 단일 통합 애플리케이션을 구축하는 데 중점을 두어 모놀리식 모델이라고 부르는 애플리케이션 아키텍처에 대한 과거의 접근 방식은 특정 디바이스, 특정 사용자 또는 사용 사례에 맞게 경험을 맞춤화해야 하는 세상에서 점점 더 무너지기 시작한다는 것이 점점 더 분명해지고 있습니다. 또한 오래된 아키텍처 패턴과 동작 방식으로는 오늘날의 애플리케이션에 요구되는 민첩성, 유연성, 확장성을 달성할 수 없습니다.
다양한 디바이스에서 고객을 효과적으로 유치하고 유지하는 앱을 구축하고 배포하려면 앱 디자인에 대한 새로운 사고방식을 받아들여야 합니다. 이 포스트에서는 모놀리식 아키텍처가 더 이상 유효하지 않은 이유를 설명하고, 오늘날의 웹뿐만 아니라 미래의 웹에 대한 과제를 해결하는 데 도움이 되는 새로운 모델을 소개합니다.
목차
1. 애플리케이션 아키텍처의 표준이 바뀌는 이유는 무엇인가요?
2. 새로운 애플리케이션 아키텍처 소개
3. 4계층 Engagement 플랫폼을 도입하려면 무엇이 필요한가요?
1. 애플리케이션 아키텍처의 표준이 바뀌는 이유는 무엇인가요?

일반적으로 사용되는 모놀리식 아키텍처에서 애플리케이션은 프론트엔드에 프레젠테이션 계층이 있고 그 뒤에 데이터 계층이 있는 3계층 설계의 중간 계층을 차지합니다. 애플리케이션은 프레젠테이션 계층에서 작동하는 웹 브라우저에 데이터를 배포하여 사용자가 애플리케이션에서 정보를 요청하고, 보고, 조작하거나 변경할 수 있는 수단을 제공합니다. 애플리케이션은 데이터베이스나 기타 저장 디바이스 또는 애플리케이션이 정보를 구성하고 유지 관리하는 데이터 계층에서 정보를 읽고 씁니다. 애플리케이션 자체는 다른 두 계층과 상호 작용하고 사용자가 요청한 대로 데이터를 변환하기 위한 로직으로 구성됩니다.
모놀리식 애플리케이션 아키텍처는 본질적으로 결함이 있는 것이 아니라 시대에 뒤떨어진 것일 뿐입니다. 애플리케이션이 프레젠테이션 계층(데스크톱에서 실행되는 웹 브라우저)에서 한 종류의 엔티티와만 상호 작용하면 되던 스마트폰과 기타 모바일 디바이스가 존재하기 전에 설계되었습니다. 단점은 레이어의 수나 레이어 간에 데이터 처리가 분산되는 방식이 아니라 애플리케이션이 하나의 통합된 코드 베이스로 작성된다는 사실에서 비롯됩니다. 이러한 모놀리식 특성으로 인해 개발자는 모바일 사용자의 기대에 부응하는 데 필요한 민첩성과 유연성으로 애플리케이션을 변경하고, 운영팀은 수요에 맞춰 애플리케이션을 확장 및 축소하기가 어렵습니다.
모놀리식 설계는 애플리케이션 개발 프로세스의 여러 단계에서 민첩성을 저해합니다. 애플리케이션 기능이 모듈 방식으로 분산되어 있더라도 모듈을 변경하려면 전체 애플리케이션을 다시 빌드하고 테스트해야 합니다. 이는 상당한 시간이 소요될 수 있으며, 1년에 몇 번만 업데이트를 배포하는 기업에서는 감내할 수 있는 수준이었을 수도 있습니다. 오늘날과 같이 빠르게 변화하는 환경에서는 1년에 몇 번만 업데이트를 푸시하는 앱은 경쟁력을 가질 수 없습니다. 더 나은 성능과 최신의 멋진 새 기능에 대한 사용자들의 갈증을 충족시키기 위해서는 점진적인 개선 사항을 신속하고 자주 배포해야 합니다. 그리고 상시 접속이 가능한 세상에서는 앱 업데이트가 많은 사용자에게 불편을 끼치지 않는 때는 결코 없습니다.

애플리케이션을 모듈로 나누는 것은 오랫동안 모범 사례로 여겨져 왔습니다. 최근에는 오픈 소스 프로젝트의 성공으로 인해 많은 개발자가 특정 기능을 수행하기 위해 외부 라이브러리를 활용하는 데 더 익숙해졌습니다. 이러한 오픈 소스 패키지는 개발자의 전문 영역을 벗어난 특수 기능에 사용되거나 시간 절약과 보안 유지 관리에 대한 걱정을 덜기 위한 목적으로만 사용되는 경우가 많습니다. 이러한 방식으로 다양한 솔루션 중에서 선택할 수 있는 유연성은 일반적으로 상호 의존성이 높은 결합된 구성 요소 집합으로 솔루션을 구축하는 모놀리식 설계에서는 제공되지 않습니다.
마지막으로, 3계층 아키텍처는 확장성이 부족합니다. 사실 탄력성과 빠른 확장이라는 개념이 널리 퍼져 있지 않던 시대에 설계되었습니다. 애플리케이션의 기능적 구성 요소가 하나의 단위(모놀리스)로 패키징되어 있기 때문에 변화하는 클라이언트 수요 수준에 대응할 수 있는 유일한 방법은 전체 애플리케이션을 확장하는 것입니다. 3계층 아키텍처에서 실행되는 애플리케이션은 전체 애플리케이션이 함께 결합되어 있기 때문에 일반적으로 애플리케이션의 특정 부분을 독립적으로 확장할 수 없습니다. 이커머스 스토어, 소셜 미디어 애플리케이션, 블로그 등 어떤 애플리케이션을 사용하든 오늘날 애플리케이션의 기본 요구 사항은 필요에 따라 확장 및 축소할 수 있는 기능이며, 가능한 한 낮은 비용으로 확장하는 것이 좋습니다. 애플리케이션을 확장하거나 축소하는 프로세스는 간단하고 자동화되며 지능적이어야 합니다. 예를 들어, 최신 애플리케이션 아키텍처를 사용하면 갑작스러운 사용자 등록의 유입에 대응하기 위해 Node.js 인스턴스를 추가로 배포할 수 있습니다.
2. 새로운 애플리케이션 아키텍처 소개
지난 몇 년 동안 민첩성, 유연성, 확장성을 제공하는 새로운 아키텍처 접근 방식이 등장했습니다. 포레스터 리서치에서 ‘4계층 Engagement 플랫폼‘이라고 부르는 이 최신 웹 아키텍처 접근 방식은 모바일 시대를 위해 특별히 설계되었습니다. 4계층 모델은 뛰어난 성능과 디바이스 맞춤형 경험을 위한 기반을 구축하도록 설계되었으며, 내부 서비스 및 애플리케이션은 물론 third-party 서비스 및 API를 모두 통합할 수 있습니다. 포레스터의 4계층 Engagement 플랫폼은 client, delivery, aggregation, service 계층으로 나뉩니다.

4계층 참여 플랫폼은 배포를 자체 계층으로 만듭니다.
출처: Forrester Research, Inc.
최신 애플리케이션은 사용자 대면 계층을 그 아래에 있는 delivery, aggregation, service 계층을 활용하여 디바이스별 고도로 맞춤화된 경험을 제공하는 독립적인 기능 집합으로 생각해야 하기 때문에 이 새로운 모델에서 가장 큰 차이점은 client 계층입니다.
모바일 디바이스의 사용자가 미디어 웹사이트의 홈페이지를 로드하면 애플리케이션은 해당 디바이스의 성능에 최적화되고 웹사이트의 UX팀이 설계 및 개발한 사용자 경험의 맥락에서 제공되는 콘텐츠로 응답해야 합니다. 이러한 방식으로 사용자 인터페이스를 그 뒤에 있는 세 가지 계층으로부터 분리하면 프론트엔드 및 사용자 경험 디자이너와 엔지니어는 백엔드 프로세스나 엔지니어링을 중단하지 않고도 특정 사용자 컨텍스트(디바이스 유형, 위치 등)에 맞게 사용자 인터페이스를 조정하거나, third-party 콘텐츠 또는 서비스와 통합하거나, 참여와 전환을 최적화하기 위해 정기적으로 재설계하여 기억에 남는 디지털 경험을 만들 수 있는 훨씬 더 많은 제어권을 확보할 수 있습니다. 마찬가지로, 백엔드 디자이너는 클라이언트 계층에 정보를 배포하기 위한 기존 프로토콜과 인코딩이 유지되는 한 해당 계층에 가장 적합한 기술을 자유롭게 채택할 수 있습니다.

delivery 계층은 클라이언트 계층에서 받은 인텔리전스를 사용하여 사용자에게 디지털 경험을 최적화하여 전송하는 역할을 담당합니다. 전송 계층은 콘텐츠 전송 네트워크(CDN)와 같은 인텔리전스 기반 솔루션과 대역폭을 줄이기 위해 이미지를 압축하는 데 사용되는 것과 같은 즉각적인 최적화 도구를 사용하여 미들 마일과 라스트 마일 문제를 잘 처리하여 사용자 위치나 네트워크 연결 품질에 관계없이 최상의 최종 사용자 경험을 보장하도록 설계되어 있습니다. 또한 데이터 계층은 정교한 캐싱 알고리즘과 툴을 활용하여 DevOps가 애플리케이션 성능과 전송 문제를 실시간으로 모니터링하고 해결할 수 있도록 지원합니다.
aggregation 계층은 실시간 양방향 통신을 사용하여 내부 및 외부 서비스를 통합하는 허브 역할을 하는 API 계층입니다. 데이터 스토리지 및 third-party 서비스와 같은 기본 서비스를 구성하는 애플리케이션 프레임워크의 이 계층은 클라이언트에 배포하기 위해 데이터와 콘텐츠를 컴파일하고 구성합니다. 집계 계층은 애플리케이션 로직의 중심 역할을 하며, SOAP에서 JSON 인코딩으로 변환하거나 third-party 및 사내 알고리즘을 결합하여 복잡한 계산을 수행하는 등의 작업을 수행합니다. 이를 통해 개발자는 비즈니스 인텔리전스, 분석 및 역할 기반 권한을 사용하여 복잡한 애플리케이션을 쉽게 구축할 수 있습니다.
참여 플랫폼의 마지막 계층은 service 계층으로, 다른 계층에 필요한 데이터와 기능을 제공합니다. 서비스 계층은 개방적이고 플러그 가능한 마이크로서비스 접근 방식을 위해 설계되었으며, 기업이 이미 구축한 기존 서비스와 새로운 오픈 소스 라이브러리를 통합하고 구성하는 데 중점을 둡니다. 데이터가 MySQL과 같은 관계형 데이터베이스에 저장되어 있든 RethinkDB와 같은 문서 저장소 데이터베이스에 저장되어 있든, 서비스 계층은 애플리케이션 요청과 워크로드를 처리할 수 있는 인프라를 제공합니다. 이를 통해 개발자는 내부 데이터 구성과 third-party 애플리케이션과의 통합 시 선택의 폭이 매우 유연해집니다.
이 4계층 아키텍처는 이미 넷플릭스, Uber 등 업계를 선도하는 애플리케이션과 서비스의 핵심 기반이 되고 있습니다. 사용자는 빠르고 반응성이 뛰어나며 각자의 고유한 요구사항에 맞춘 경험을 원하고, 기업은 변화하는 시장 상황과 확장 요구사항에 빠르게 적응해야 한다는 것을 모두 알고 있습니다. 개발자, 엔지니어 또는 아키텍트는 이 새로운 아키텍처를 통해 이러한 두 가지 목표를 모두 충족할 수 있다는 것을 알고 있습니다. 하지만 이제 궁금한 점이 생깁니다: “이러한 약속을 이행할 수 있는 올바른 도구를 사용할 수 있나요?”
3. 4계층 Engagement 플랫폼을 도입하려면 무엇이 필요한가요?
Forrester Research의 설명에 따르면 애플리케이션 전송의 새로운 표준은 사용자만큼이나 개발자의 경험에 초점을 맞춘다는 점에서 이전 아키텍처와 다릅니다. 4계층 참여 플랫폼을 도입하려면 각 계층을 서로 연결하여 커뮤니케이션, 확장 및 배포할 수 있는 도구가 필요합니다. 상위 10,000개 웹사이트 및 애플리케이션의 40% 이상을 구동하고 있으며, W3Tech에서 5년 연속 가장 빠르게 성장하는 웹 서버로 인정받은 NGINX 는 최신 애플리케이션 아키텍처를 하나로 묶는 패브릭입니다.
NGINX 는 가장 까다로운 애플리케이션의 요구 사항을 충족하도록 설계된 소프트웨어 기반 솔루션으로, 모든 계층의 참여 플랫폼을 지원합니다.
- 예를 들어, NGINX 는 고급 미디어 스트리밍 및 디바이스 사용자 지정 기능으로 client 계층을 지원합니다.
- 또한 확장성이 뛰어난 부하 분산 기능과 고급 캐싱 메커니즘을 통해 delivery 계층을 강화합니다. 초당 수천, 때로는 수백만 건의 요청을 처리할 수 있는 NGINX 는 일반적으로 CDN을 구동하는 데 사용되며 Level3 및 MaxCDN과 같은 상용 공급업체에서도 사용합니다.
- aggregation 계층에서 NGINX는 다양한 서비스에서 데이터를 요청하고 캐싱하는 리버스 프록시 또는 자체 API를 위한 플랫폼으로서 중요한 역할을 수행하여 쉽게 관리하고 보호할 수 있도록 합니다.
- 마지막으로 service 계층은 NGINX 를 사용하여 매우 안정적이고 독립적인 구성 요소로 구성된 다양한 실행 중인 마이크로서비스를 지원하고 조정합니다. NGINX 는 성능과 확장성을 결합하여 최신 웹 및 모바일 애플리케이션의 과제와 복잡성을 해결할 수 있는 솔루션을 제공합니다.
이제 다음 웹사이트 또는 애플리케이션 프로젝트 또는 업그레이드를 위한 계획을 마무리할 때입니다. 4계층 애플리케이션 아키텍처에 대해 자세히 읽어보시기 바랍니다. 훌륭한 개발자를 다른 개발자와 차별화하는 요소, 더 나아가 승자와 패자를 구분하는 요소는 경쟁사보다 빠르게 혁신하고 적응하며 탁월한 신제품과 경험을 구축할 수 있는 능력입니다. 지금 바로 시작하여 다른 기업들과 함께 최신 애플리케이션 아키텍처로 전환하세요.
새로운 애플리케이션 구축 및 배포 방식으로 전환하는 데 NGINX가 어떤 도움을 줄 수 있는지 자세히 알아보려면 당사에 문의하세요. 또한 4계층 아키텍처는 애플리케이션을 작고 민첩하며 독립적인 구성 요소로 분할하는 접근 방식인 마이크로서비스로의 전환과 함께 구현하는 것이 가장 좋습니다.
NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 논의하십시오.
NGINX에 대한 최신 정보들을 빠르게 전달받고 싶으시다면, 아래의 뉴스레터를 구독하세요.
댓글을 달려면 로그인해야 합니다.