Resources

메타넷티플랫폼의 다양한 클라우드 인프라 기술 역량을 소개하고, 고객과 함께 공유하며 동반 성장해 나가고자 합니다.

KR EN
상담 상단으로

애플리케이션 현대화(App Modernization) 개념과 정의

  • 날짜
    2021-12-10 14:24:44
  • 조회수
    3211


[Highlights]

▶ 애플리케이션 현대화는 “비즈니스에 최신 기능을 제공하기 위해 레거시 애플리케이션을 새 애플리케이션이나 플랫폼으로 마이그레이션하는 문제에 대응”하는 작업 

▶ 애플리케이션 현대화 단계는 1)리호스팅, 2)리플랫폼, 3)리팩터링 등으로 구분할 수 있으며 궁극적으로는 “클라우드 네이티브”를 지향

▶ 기업 CMP (Cloud Management Platform) 구축 시에 사전 고려 필요



애플리케이션 현대화의 배경

기업들은 신규 비즈니스 모델 도입 혹은 기존 비즈니스의 필요나 특정 이슈 해결을 위해 수시로 IT 솔루션과 도구를 도입하는 작업을 거치고 있습니다. 그 과정에서 마치 동전의 양면처럼 문제 해결과 동시에 시스템 복잡도가 증가하고 효율성이 저하되는 현상이 일어날 수 있습니다. 기업 이력, 규모, 사업 구조에 따라 많은 시스템으로 인한 복잡성과 비효율성이 커질 가능성이 높습니다. 이 이슈들은 평소에는 잘 드러나지 않다가 위기 상황에서 표면화되어 비즈니스 수행에 심각한 영향을 주기도 합니다.


코로나 팬데믹은 많은 기업이 기존 애플리케이션의 문제점을 자각하게 된 계기이기도 합니다. 많은 기업이 선호하는 온프레미스 방식의 완전 외주, 자체 개발 및 커스터마이징 개발 작업은 위기 상황 대응이 휠씬 어렵습니다. 예를 들면, 중요한 고객 서비스용 웹 애플리케이션 핵심 개발자가 코로나 확진으로 격리치료를 받아야 하는 상황에서 시스템 장애가 생긴다면 어떻게 될까요? 


이렇듯 현대 기업의 IT는 늘 많은 과제와 문제에 직면합니다. 예로 들은 문제 외에도 현재 운영 중인 IT에 대해 다음의 질문을 던져야 하는 시점입니다:


● 반복적인 운영 작업의 효율성 개선이 필요한가 (자동화?)


● 애플리케이션, 시스템 개발 및 배포 작업의 속도를 더 높여야 하는가?


● IT 시스템 규모 대비 사용률이 저조할 때, 이를 최적화하는 방법은?


● 운영 중인 애플리케이션 성능을 향상시키는 방법은?


● 자체 역량으로 시스템, 애플리케이션 운영, 수정과 개발을 쉽게 하는 방법은?


● 기존 애플리케이션에 모바일, AI, 빅데이터 분석 등 신기술을 적용하는 방법은?


● 회사 밖에서도 쉽게 업무를 할 수 있는 방법은 없을까?









이 같은 질문과 이슈를 해결하는 방향성은 몇 가지로 요약할 수 있습니다:


● 기능성: 비즈니스에 필요한 기능이 충실히 구현되고 내외부 시스템 연동이 원활한가?


● 신뢰성: 장애 발생 시 대응 및 복구가 쉽고 신속한 지원이 가능한가?


● 사용성: 제공되는 기능의 활용에 적합한 사용자 및 관리자 경험을 제공하는가?


● 유지보수성: 오류, 장애 발생 시 원인 파악을 위한 진단 기능이 제공되며 패치 등 업데이트도 용이한가?


● 효율성: 다양한 부하에 대해 빠른 응답 시간을 보장하고 자원 사용이 효율적인가?


● 이식성: 오류와 중단 없이 새 인프라나 플랫폼으로 쉽게 전환할 수 있는가?


이와 같은 이유로 많은 기업이 IT 현대화에 큰 관심을 기울이고 있습니다. VMWare가 전문 기관에 의뢰한 보고서에 의하면, 아시아태평양 기업들의 퍼블릭 클라우드 애플리케이션 배포 비중은 빠르게 높아지고 자체 데이터센터 배포 계획은 현저하게 줄어들고 있습니다. 





[출처: The State of Application Modernization and Hybrid Cloud Computing]


 



다른 이유도 많지만 팬데믹 시대의 비즈니스 대응에 있어 기존 IT 인프라와 애플리케이션이 가진 한계를 깨닫게 된 것이 주요 배경으로 꼽히고 있습니다.


IT 현대화는 인프라 그리고 애플리케이션 현대화 두 축으로 나눌 수 있습니다. 인프라와 애플리케이션은 상호 작용하며 인프라 현대화는 애플리케이션 현대화의 전제 조건으로 작용합니다. 애플리케이션 현대화는 애플리케이션의 자체 속성과 기능을 혁신하는 것을 의미하며, 인프라 현대화는 애플리케이션의 효과적 지원을 위해 인프라의 장애물을 제거하는 것을 의미합니다. 



App Modernization(애플리케이션 현대화) 

기업에는 오래 사용해 온 ERP 같은 비즈니스 애플리케이션이 있을 겁니다. 시간이 지날수록 사업 성장, 인수합병 및 사업 모델 변경 등으로 애플리케이션의 한계가 드러납니다. 너무 단순해 도움이 안 되는 검색 기능, 제한적 외부 시스템 연계나 및 성능 부족 등을 예로 들 수 있습니다. 경우에 따라서는 ERP가 너무 구식이라 단순한 기능 변경조차 불가능할 수 있습니다. 이런 애플리케이션을 최신 기술로 재구성하는 작업을 ‘현대화’라고 합니다. 과거 메인프레임에서 클라이언트-서버 구조로, 그리고 웹 기반으로 또 서비스 기반 클라우드 네이티브로 바뀌듯 ‘현대화’란 단어는 같지만 내용은 계속 변하고 있습니다. 그럼 2021년 현재의 “애플리케이션 현대화”는 무엇일까요?


공신력을 가진 가트너 컨설팅의 말을 빌려보겠습니다. 가트너는 “비즈니스에 최신 기능을 제공하기 위해 신규 기능의 통합을 포함해 레거시를 새 애플리케이션 혹은 플랫폼으로 마이그레이션하는 문제에 대응하는 서비스”로 정의합니다(참고: Gartner Application Modernization Services). 가트너는 현대화 방법 및 범위에 리플랫폼, 리호스팅, 아키텍쳐 재설계, 리엔지니어링, 상호운용성, 교체 및 폐기와 애플리케이션 아키텍처 변경 등이 포함된다고 이야기합니다.


결론적으로 현재의 비즈니스 필요를 가장 잘 지원하는 기술과 방법으로 구형 애플리케이션을 재구성하는 작업 즉, “Cloud Native Application”로 바꾸는 것을 의미합니다.



애플리케이션 현대화의 흐름

애플리케이션 현대화의 흐름도 주목할 필요가 있습니다. 팬데믹 이전에 애플리케이션 현대화를 추진한 기업 대부분은 비용 절감에 중점을 두었지만, 여러 이슈로 인해 리호스팅 같은 기존 수준의 현대화가 주를 이루었습니다. 하지만, 팬데믹을 지나면서 애플리케이션 현대화가 비용 절감을 넘어 생존의 문제라는 점을 인식한 기업들이 전면적 현대화를 추진하는 것이 최근 추세입니다.




애플리케이션 현대화 방법 및 수준

소극적으로 현대화를 추진한다면 클라우드에 가상머신을 만들고 그 위에서 기존 애플리케이션을 돌리는 것으로 끝낼 수도 있습니다. 이 방식은 IaaS 플랫폼의 장점은 얻지만 클라우드의 모든 이점을 누릴 수는 없는 제약이 있습니다. 반면 클라우드 네이티브 애플리케이션으로 클라우드와 신기술 이점을 모두 누리는 방법도 있습니다. 가트너가 정의한 애플리케이션 현대화의 3가지 방법입니다:


​● Cloud Deployed: Rehosted 또는 Lift & Shift라는 방법입니다. 애플리케이션을 클라우드로 마이그레이션해서 자원 활용의 효율성을 먼저 경험한 다음 대규모로 클라우드 마이그레이션을 신속히 진행하고자 할 때 적합한 방법입니다. 기존 애플리케이션 구조 변경을 최소화하면서 클라우드로 전환하는 방법입니다.


● Cloud Aware: 이 방법은 플랫폼 이전으로 정의할 수 있습니다. PaaS (Platform as a Service) 플랫폼을 활용한 마이그레이션으로, PaaS가 제공하는 개발 및 운영 환경을 활용하여 애플리케이션을 최적화하는 방법입니다. 애플리케이션 레이아웃의 일부 및 데이터베이스 변경이 필요한 경우가 많습니다.


● Cloud Native: 이 방법은 Refactoring으로 정의됩니다. 기존 애플리케이션으로 비즈니스 목적 및 환경 변화에 대응하기 어려운 경우에 애플리케이션 기능 추가, 확장 또는 성능 개선을 위한 방법으로 Refactoring이 이용됩니다. Refactoring은 애플리케이션 코드의 일부 수정부터 마이크로서비스로의 전면적 전환 등 기업이 선택한 현대화 전략에 따라 Refactoring Spectrum에서 필요 부분만 선택해 적용할 수 있습니다. 소프트웨어의 SaaS(Software as a Service) 구현을 위한 목적으로 많이 이용합니다.




애플리케이션 현대화가 필요한 이유?

기업에게 애플리케이션 현대화가 필요한 이유를 정리해 보겠습니다.


● 신규 비즈니스 대응 어려움: 기업의 업무용 애플리케이션은 특정 비즈니스 프로세스 처리를 위해 도입됩니다. 따라서, 그 안에는 해당 업무의 비즈니스 로직이 포함됩니다. 로직 변경이 쉽지 않기 때문에 노후한 애플리케이션은 비즈니스 수행이나 신규 사업 확대에 장애물이 되기도 합니다. 예를 들어 요즘은 모바일 뱅킹이 대세인데 은행이 사용해 온 메인프레임 시스템 때문에 PC 환경만 지원한다면 그 은행의 비즈니스 대응력은 아주 낮은 것이죠.


● 사용자 및 고객 경험 저하: 기능적 측면과 함께 사용성도 시대 흐름에 맞게 개선해야 합니다. 만약 새로 입사한 밀레니엄 세대에게 40년 전에 사용하던 흑백 화면의 텍스트 기반 앱을 사용하라면 어떤 반응을 보일까요? 코로나로 재택근무를 해야 하는데 회사 네트워크에 접속할 수 없다면 어떻게 될까요? 이런 다양한 고객 및 환경 변화의 지원을 통해 고객이 만족하는 경험을 제공해야 합니다.


● 유지 보수 인력 수급과 비용 증가: 오래된 소프트웨어의 유지 보수는 어렵고 돈도 많이 듭니다. 또, 유지 보수 인력 확보도 어렵고 인건비도 높아서 새로운 기능 추가나 고객 서비스 수준 향상은 엄두도 못 내고 현상 유지에 급급하게 됩니다.


● 신기술 적용과 타 시스템 연동 어려움: 구형 애플리케이션은 RESTful API 등 새로운 인터페이스 기술을 지원하지 않는 경우가 많기 때문에 새로 도입된 애플리케이션 연동과 데이터 교환에 많은 제약이 생기게 됩니다. 이런 상황은 많은 수작업과 업무 효율 저하로 이어집니다.


● 취약한 보안 체계: 보안 위협은 나날이 증가하고 실제로 많은 기업이 희생양이 되고 있습니다. 오래된 운영체제는 랜섬웨어, 악성코드 같은 보안 공격에 취약하고 대응도 어렵습니다. 너무 오래된 아키텍처와 보안 체계를 사용하기 때문이죠. 또한, 적절한 보안 패치가 이뤄지지 않아 보안 위험은 계속 커지게 됩니다. 보안 기업인 시멘틱은 구형 애플리케이션의 데이터 누출 가능성이 휠씬 높다고 설명합니다.


● 노후화로 인한 장애 발생: 구형 시스템이 기능과 비용 측면을 충족해도 노후화로 인한 잦은 장애는 기업 비즈니스에 큰 영향을 줄 수 있습니다. 시간이 지날수록 오래된 구형 서버, 애플리케이션이 돌고 있는 운영체제 오류 등으로 인한 장애가 자주 발생하게 됩니다.


다음 포스트에서는 애플리케이션 현대화 구현을 위한 아키텍쳐에 관해 살펴보겠습니다.



메타넷티플랫폼은 고객의 클라우드 여정을 같이합니다.




http://www.metanettplatform.com/


#앱모더나이제이션 #앱현대화 #애플리케이션배포 #앱개발 #애플리케이션보안 #클라우드마이그레이션 #애플리케이션수정 #클라우드애플리케이션 #클라우드네이티브 #리팩처링 #리호스트 #cloudnative