애플리케이션 최신화란?

애플리케이션 최신화는 유연성이나 확장성을 높이기 위해 애플리케이션의 기반 인프라를 변경, 교체, 또는 아키텍처를 재설계하는 프로세스로, 클라우드 마이그레이션을 통해 이루어지는 경우가 많습니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • 애플리케이션 최신화 설명
  • 레거시 애플리케이션 최신화를 위한 중요한 기술 이해하기
  • 애플리케이션 최신화 단계 및 전략("5R") 설명하기

관련 콘텐츠


계속 알아보시겠어요?

인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

애플리케이션 최신화란?

애플리케이션 최신화는 오래되거나 "레거시" 애플리케이션의 아키텍처, 코드, 인프라를 업데이트하거나 교체하는 프로세스입니다. 이 용어는 애플리케이션의 인프라를 온프레미스에서 클라우드 기반으로 전환하는 것을 의미하는 경우가 많으며, 일반적으로 모놀리식 애플리케이션 아키텍처에서 마이크로서비스 또는 서버리스 아키텍처로 이전하는 포함됩니다. 그 목표는 애플리케이션의 운영 오버헤드를 줄이는 동시에 확장성, 유지 관리 가능성, 비용 효율성을 높이는 것입니다.

비즈니스 세계에서 일어난 다른 유형의 최신화(예: 인쇄된 메모에서 이메일로 전환)와 마찬가지로 애플리케이션 최신화는 프로세스를 새로운 기술에 맞게 조정하여 효율성을 개선합니다. 레거시 애플리케이션을 최신화하면 해당 애플리케이션 개발자는 클라우드 컴퓨팅의 이점을 누릴 수 있습니다. 클라우드 컴퓨팅은 이전 IT 모델보다 확장성이 뛰어나고 비용 구조가 더 유연합니다.

애플리케이션 최신화는 대규모 클라우드 마이그레이션이나 디지털 변환이라는 더 큰 작업의 일부로 진행되는 경우가 많습니다.

레거시 애플리케이션 최신화의 작동 방식은?

클라우드 컴퓨팅은 가상 머신에서 이루어집니다. 클라우드 서비스는 기본 하드웨어에서 하나 이상의 "추상화 계층"을 제거한 것입니다. 이는 애플리케이션이 특정 서버 및 명확히 정의된 네트워크 내에서 실행되는 온프레미스 인프라가 클라우드와는 다른 점입니다. 클라우드 벤더는 하드웨어를 관리하고 네트워크 연결을 통해 서비스를 제공합니다. 클라우드가 이러한 방식으로 설계되었기 때문에, 클라우드 컴퓨팅은 온프레미스 운영과 관련된 일부 비용을 제거하고 필요에 따라 확장할 수 있어 더욱 유연합니다.

온프레미스 애플리케이션은 단일 모놀리식 엔터티인 경향이 있는 반면, 클라우드 호스팅 애플리케이션 아키텍처는 일반적으로 필요에 따라 호출되는 더 작은 부분으로 나뉩니다. 애플리케이션 최신화는 이러한 형식에 맞춰 아키텍처를 조정하는 것을 포함할 수 있습니다(단, 모든 애플리케이션 최신화 전략에 해당되는 것은 아님).

최신화된 애플리케이션의 주요 개념은 다음과 같습니다.

  • 마이크로서비스: 마이크로서비스는 애플리케이션 내에서 각각 고유한 기능을 수행하는, 독립적으로 배포되는 작은 구성 요소입니다. 각각 자체 환경에서 실행되며 개별적으로 개발하고 확장할 수 있습니다.
  • 컨테이너: 컨테이너는 애플리케이션 코드와 종속성을 패키징하여 서로 다른 환경에서 일관적으로 실행되도록 합니다. 마이크로서비스 아키텍처에서 자주 사용되지만, 이에 국한되지는 않습니다.
  • 서버리스 컴퓨팅: 이 유형의 클라우드 아키텍처에서는 애플리케이션이 개별적인 이벤트 중심의 함수로 분할됩니다. 서버리스 함수는 필요할 때만 실행되는 개별 코드 단위입니다. 많은 클라우드 기반 애플리케이션에서는 서버리스, 마이크로서비스, 컨테이너가 API 게이트웨이를 통해 연결된 하나의 아키텍처로 결합됩니다.
  • API: 애플리케이션 프로그래밍 인터페이스(API)는 클라우드 기반 애플리케이션을 구성하고 서로 독립적으로 실행되는 마이크로서비스 및 함수를 연결하는 커넥터 역할을 합니다. API를 사용하면 애플리케이션에서 필요에 따라 각 서비스를 호출할 수 있습니다.
  • 오케스트레이션: 오케스트레이션은 컨테이너 관리와 관련된 작업을 자동화하는 것입니다. 컨테이너를 포함하는 애플리케이션 아키텍처에는 일반적으로 Kubernetes와 같은 오케스트레이션이 포함됩니다.
  • 클라우드 스토리지: 애플리케이션 데이터를 위한 클라우드 기반 스토리지에는 개체 스토리지, blob 스토리지, 블록 스토리지 등 여러 가지 유형이 있습니다.
  • 클라우드 네이티브 보안: 클라우드 네이티브 보안은 클라우드 기반 애플리케이션 인프라를 보호하면서 데이터 규제 준수 및 거버넌스를 지원하도록 설계되었습니다.
  • AI 통합: 최신화된 애플리케이션은 로컬이 아닌 클라우드에서 원격으로 실행되는 모델을 기반으로 구축된 생성형 AI에이전틱 AI와 더욱 원활하게 통합됩니다.

주요 애플리케이션 최신화 전략은?

가장 일반적인 애플리케이션 최신화 전략은 모두 영어로 "R"로 시작하는 이름으로 유명합니다. 따라서 일부는 이러한 전략들을 "5R" 또는 "7R"이라고 부르기도 합니다.

Gartner가 2010년에 정의한 "5R" 전략은 다음과 같습니다.

  • 리호스팅: '리프트 앤 시프트'라고도 하는 이 애플리케이션 최신화 전략은 가장 빠르게 실행되는 경우가 많습니다. 모놀리식 온프레미스 애플리케이션을 클라우드로 이전하여, 자체 관리형 인프라 대신 서비스형 인프라(IaaS) 공급자를 통해 호스팅하는 방식입니다. 리호스팅은 집을 통째로 옮겨 길 건너편의 다른 부지에 설치하는 것과 비슷합니다.
  • 리팩터링(Refactor): 리팩터링은 리호스팅과 유사하지만, 애플리케이션은 IaaS가 아닌 서비스형 플랫폼(PaaS)을 통해 호스팅됩니다. 이는 더 적은 오버헤드와 더 많은 유연성을 제공하지만, 애플리케이션을 클라우드 공급자의 플랫폼에 맞게 약간 조정해야 할 수도 있습니다. 이는 원래보다 길고 좁은 부지로 집을 옮긴 후, 공간을 더 잘 활용하기 위해 2층을 증축하는 것에 비유할 수 있습니다.
  • 수정(Revise): "수정" 전략에는 애플리케이션 코드베이스를 부분적으로 다시 작성하는 것이 포함됩니다. 기존의 집을 해체하고 더 효율적인 평면도에 따라 다시 짓는 것과 유사합니다.
  • 리빌드(Rebuild): 이 애플리케이션 최신화 전략은 PaaS 공급자를 통해 배포할 수 있도록 애플리케이션을 다시 작성합니다. 기존의 집을 철거하고 처음부터 새로 짓는 것과 같습니다.
  • 대체(Replace): 레거시 애플리케이션을 완전히 폐기하고, 유사한 기능을 제공하는 최신화된 또는 클라우드 기반 애플리케이션으로 교체하는 전략입니다. 이는 완전히 새 집을 구매하는 것과 비슷합니다.

기타 애플리케이션 최신화 전략(또는 "R")은 다음과 같습니다.

  • 플랫폼 변경: 이 전략은 코드 일부를 수정하여 애플리케이션이 클라우드 플랫폼에서 원활히 작동하도록 조정하지만, 리팩터링만큼 많은 수정이 필요하지 않습니다.
  • 아키텍처 재설계(Rearchitect): 플리케이션 백엔드를 클라우드에서 더 잘 작동하도록 재설계하고 부분적으로 다시 작성합니다.
  • 재구매(Repurchase): "교체" 전략과 유사하며, 이전에 애플리케이션에 사용했던 벤더가 아닌 다른 벤더로부터 교체 애플리케이션을 구매하는 것입니다.

조직이 사용해야 할 애플리케이션 최신화 전략은?

정확히 말하면 대부분의 조직은 두 개 이상의 전략을 사용하므로, 올바른 전략은 조직의 목표와 가용 예산에 따라 달라집니다. 최소한의 노력과 비용으로 더 빠른 마이그레이션을 하려면 처음에는 리호스팅이 적합한 전략일 수 있습니다. 하지만 장기적인 확장성이나 지속적 통합 및 지속적 배포(CI/CD)와 같은 최신 개발 방식 지원을 위해서는 더 광범위한 변화가 필요할 수 있습니다. 이러한 경우 애플리케이션을 재설계하거나, 리팩터링하거나, 리빌딩하면 조직이 향후 수요에 더 잘 대비할 수 있습니다.

조직에서는 전략을 결정하기 전에 최신화 프로세스의 목표, 타임라인, 예산을 결정해야 합니다.

애플리케이션 최신화의 주요 단계는?

구체적인 단계는 전략과 조직에 따라 다르지만, 일반적으로 애플리케이션 최신화 활동의 주요 단계는 다음과 같습니다.

  • 준비: 이 단계는 최신화 후보인 각 애플리케이션을 평가하고, 그 구성 요소를 식별하며, 관련 데이터를 모두 파악한 뒤, 최신화 이후 해당 애플리케이션의 목표(예: API를 통한 노출 여부, 기존과 동일하거나 확장된 기능 제공 여부 등)을 정의하는 것으로 시작합니다. 조직에서는 구현하는 동안 예기치 않은 상황에 대응하여 계획을 조정해야 할 수도 있으므로 계획을 유연하게 수립해야 합니다.
  • 최신화: 이 단계에서 조직은 준비 단계에서 정의된 계획을 실행하며, 필요에 따라 애플리케이션 백엔드를 변환하고 데이터를 마이그레이션합니다.
  • 전환: 기존 애플리케이션을 폐기하고 최신화된 애플리케이션이 그 기능을 대신합니다. 이 단계는 비즈니스 프로세스에 영향을 미치지 않도록, 이상적으로는 최신화와 동시에 또는 이후에 진행됩니다.
  • 지속적인 운영: 조직은 최신화된 애플리케이션을 지속적으로 테스트하고, 업데이트하며, 유지 관리 및 보안을 강화하고, 개선하며, 필요에 따라 더 많은 클라우드 리소스를 프로비저닝합니다.

애플리케이션 최신화의 도전 과제는?

애플리케이션 최신화에는 시간, 비용, 리소스 측면에서 조직에 부담이 됩니다. 개발자, DevOps, 보안, 규제 준수 팀에서는 최신화된 애플리케이션의 이동, 아키텍처, 보안 조치에 시간을 투자해야 합니다. 내부 팀에서는 네트워크 트래픽을 리디렉션하고, 하드웨어를 폐기하며, 새로운 보안 조치를 구현해야 할 수도 있습니다. 이러한 노력은 단기적으로는 부담일 수 있지만, 이상적으로는 조직의 효율성이 장기적으로 높아지게 됩니다.

애플리케이션 최신화의 이점은?

조직은 단순히 "현대적"이거나 클라우드를 사용하기 위해 애플리케이션을 최신화하는 것이 아니라 다음과 같은 결과로부터 이익을 얻기 위해 노력합니다.

  • 더 빠른 개발 속도: 클라우드는 오버헤드와 인프라 관리를 추상화하므로, 조직은 새로운 기능을 훨씬 빠르게 출시할 수 있습니다.
  • API를 통한 애플리케이션 제공: API를 통해 애플리케이션을 다른 애플리케이션과 통합함으로써, 개발 효율성을 높이고 자동화 프로세스를 실현할 수 있습니다.
  • 미래를 위한 규모 확장: 조직이 자체 인프라를 구매할 때는 구매한 용량에 따라 제한을 받습니다. 하지만 클라우드는 사실상 무한한 확장성을 제공합니다 (인공 지능으로 인해 기존 데이터 센터의 용량이 시험에 들고 있는 상황입니다).
  • 애플리케이션 성능 개선: 클라우드 기반 애플리케이션은 로컬 데이터 센터를 통해 실행함으로써 네트워크 트래픽 속도를 저하하는 "트롬본 효과" 없이 다양한 위치에서 액세스할 수 있습니다.
  • 미래 경쟁력 확보: 애플리케이션 최신화 전략이 제공하는 유연성 덕분에 조직은 변화하는 요구 사항에 따라 최신 기술과 효율성을 활용할 수 있습니다.
  • 기술 부채 감소: 오래된 언어, 투박한 구현, 노후화된 하드웨어 등은 최신화 프로세스에서 교체할 수 있습니다.
  • 보안 강화: 애플리케이션을 클라우드 로 이전하면 클라우드에 자체적인 보안 문제가 발생하기는 하지만, 온프레미스 모놀리식 애플리케이션과 관련된 많은 보안 문제를 없앨 수 있습니다.

Cloudflare는 조직이 이러한 이점을 최대한 활용할 수 있도록 지원합니다. Cloudflare의 클라우드 연결성은 네트워크 액세스, 보안, 위협 인텔리전스 및 여러 벤더가 제공하는 기타 서비스를 단일 플랫폼으로 통합하며, Cloudflare의 개발자 서비스는 애플리케이션 최신화에 필요한 도구를 제공합니다. Cloudflare가 애플리케이션 최신화 노력을 개선하는 방법을 알아보세요.