본문 바로가기
공부/Object-Oriented Design

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

by 혼밥맨 2022. 7. 6.
반응형

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

 

애플리케이션 모더나이제이션 (Application Modernization)이란

애플리케이션 현대화 (Application Modernization) 는 최신 언어, 프레임워크 및 인프라 플랫폼을 포함하여 최신 컴퓨팅 접근 방식을 위해 구형 소프트웨어를 업데이트하는 관행입니다. 이 방식을 레거시 현대화 또는 레거시 애플리케이션 현대화라고도 합니다. 효율성, 안전, 구조적 무결성 등의 개선 사항을 활용하기 위해 오래된 주택을 개조하는 것과 동일한 소프트웨어 개발입니다. 기존 시스템을 폐기하거나 전면적으로 교체하는 대신 레거시 현대화는 기술 혁신을 활용하는 동시에 조직 애플리케이션의 수명을 연장합니다.

 

레거시 애플리케이션을 현대화하는 이유

애플리케이션 현대화를 통해 조직은 투자를 보호하고 소프트웨어 포트폴리오를 갱신하여 최신 인프라, 도구, 언어 및 기타 기술 발전을 활용할 수 있습니다. 강력한 애플리케이션 현대화 전략은 애플리케이션을 실행하는 데 필요한 리소스를 줄이고, 배포 빈도와 안정성을 높이며, 무엇보다도 가동 시간과 복원력을 개선할 수 있습니다. 결과적으로 애플리케이션 현대화 계획은 기업의 전반적인 디지털 혁신 전략의 공통 기능입니다.

 

애플리케이션 현대화 패턴의 종류

1. 리프트 앤 시프트 (Lift and Shift)

:: 리호스팅 (rehosting) 이라고도 하는 "리프트 앤 시프트"라는 문구는 기존 애플리케이션을 레거시 환경(예: 온프레미스 서버)에서 퍼블릭 클라우드 플랫폼과 같은 최신 인프라로 이동하기 위한 소프트웨어 개발 용어가 되었습니다. 이 패턴을 사용하면 기본 코드나 아키텍처를 거의 또는 전혀 변경하지 않고 기본적으로 애플리케이션을 "있는 그대로" 이동합니다. 이것은 일반적으로 가장 집약적인 접근 방식이지만 문제의 애플리케이션에 따라 항상 최적의 접근 방식은 아니라는 것을 의미합니다.

 

2. 리팩토링 (Refactoring)

:: 리팩토링은 본질적으로 "재작성" 또는 "재구조화"를 말하는 또 다른 방법입니다. 애플리케이션 현대화에 대한 이러한 접근 방식에는 레거시 애플리케이션을 가져와서 새로운 환경(일반적으로 클라우드 인프라)에서 더 잘 실행하기 위해 기본 코드의 상당 부분을 다시 도구화하는 작업이 수반됩니다. 기존 코드베이스의 주요 재구성 외에도 이 접근 방식을 사용하려면 코드를 다시 작성해야 하는 경우가 많습니다. 개발 팀은 모놀리식 애플리케이션을 더 작고 분리된 조각으로 분할하려는 경우 이 접근 방식을 선택할 수 있습니다(일반적으로 마이크로서비스라고 하는 아키텍처 선택). 그들은 마이크로서비스를 사용하여 컨테이너 및 컨테이너 오케스트레이션을 포함한 클라우드 네이티브 인프라 및 도구의 이점을 극대화할 수 있습니다.

 

3. 리플랫포밍 (Reflatforming)

:: 이 패턴은 리프트 앤 시프트 접근 방식과 리팩토링 접근 방식 간의 중간 또는 절충안으로 볼 수 있습니다. 리팩토링과 같이 코드나 아키텍처를 크게 변경할 필요는 없지만 애플리케이션의 백엔드 데이터베이스를 수정하거나 교체하는 것과 같이 레거시 앱이 최신 클라우드 플랫폼을 활용할 수 있도록 하는 보완 업데이트가 필요합니다.

 

레거시 현대화 전략

성공적인 레거시 앱 현대화를 위한 기본 전략은 후보 애플리케이션에 대한 철저한 평가를 수행하는 것입니다. 이 분석에는 앱의 기술적 특성, 클라우드 마이그레이션 또는 유사한 전환에 대한 적합성, 이러한 현대화의 ROI, 다른 시스템과의 애플리케이션 상호 의존성 및 기타 기준에 대한 평가가 포함되어야 합니다.

애플리케이션 현대화를 위한 또 다른 핵심 전략은 기업이 리소스를 효과적으로 관리하기 위한 장기적인 애플리케이션 현대화 로드맵을 개발하는 것입니다. 대부분의 조직은 애플리케이션 현대화에 한 번에 모두 접근하는 것이 아니라 부분적으로 접근하는 것이 더 나은 서비스를 제공합니다. 이를 통해 팀은 현대화 작업을 수행하는 동시에 기존 애플리케이션의 성능과 가용성을 적절하게 관리할 수 있습니다.

 

애플리케이션 현대화를 위한 핵심 기술

애플리케이션 현대화의 기본이 되는 몇 가지 교차 기술 (intersecting technologies) 이 있습니다.

1. 클라우드 컴퓨팅 (Cloud Computing)

:: 사람들이 애플리케이션 현대화에 대해 논의할 때 일반적으로 최신 클라우드 환경에서 실행하기 위해 기존 애플리케이션을 마이그레이션하는 프로세스를 언급합니다. 여기에는 퍼블릭 클라우드 플랫폼, 프라이빗 클라우드 및 하이브리드 클라우드(일반적으로 온프레미스 환경과 통합된 퍼블릭 및/또는 프라이빗 클라우드를 나타냄)가 포함됩니다.

 

2. 컨테이너 (Containers)

:: 컨테이너는 애플리케이션과 워크로드를 패키징, 배포 및 운영하기 위한 클라우드 중심 방법입니다. 컨테이너화와 관련된 큰 그림의 이점에는 클라우드 인프라, 특히 멀티 클라우드 및 하이브리드 클라우드 환경에 적합한 향상된 확장성, 이식성 및 운영 효율성이 있습니다.

 

3. 마이크로서비스 (Microservices)

:: 이것은 아키텍처의 선택이라기보다는 기술이 아닙니다. 일반적으로 모놀리식 또는 모놀리식 개발이라고 하는 완전한 단일 코드베이스로 애플리케이션을 구축 및 운영하는 대신, 독립적으로 배포, 업데이트 및 운영할 수 있는 더 작은 개별 조각으로 서로 다른 구성요소를 분리합니다.

 

4. 오케스트레이션 (Orchestration) & 자동화 

:: 소프트웨어 개발에서 오케스트레이션은 배포, 확장 및 네트워킹을 포함하여 컨테이너와 관련된 많은 운영 작업의 자동화를 의미합니다. 일반적으로 자동화는 중요한 원칙이자 기술입니다. 개발, 운영 및 보안 팀이 최신 앱을 대규모로 지속적으로 관리할 수 있도록 보장하는 것이 점점 더 필요하기 때문입니다.

 

 

기업에 애플리케이션 현대화가 필요한 이유는 무엇입니까?

대부분의 기업은 재무 및 운영 관점에서 기존 애플리케이션 포트폴리오에 상당한 투자를 하고 있습니다. "레거시"라는 용어는 소프트웨어에서 부정적인 의미를 내포하기도 하지만 실제로 이러한 레거시 시스템은 비즈니스에서 가장 미션 크리티컬한 애플리케이션에 속합니다.
이러한 애플리케이션을 폐기하고 다시 시작할 의사가 있거나 할 수 있는 회사는 거의 없습니다. 비용, 생산성 손실 및 기타 문제가 너무 큽니다. 따라서 애플리케이션 현대화는 많은 기업이 최신 소프트웨어 플랫폼, 도구, 아키텍처, 라이브러리 및 프레임워크의 이점을 실현하는 가장 합리적인 방법입니다.

 

레거시 현대화 트렌드 (Legacy modernization trends)

레거시 앱 현대화의 가장 중요한 두 가지 트렌드는 멀티 클라우드와 하이브리드 클라우드입니다. 멀티 클라우드는 비용 최적화, 유연성, 가용성 및 기타 이유로 2개 이상의 퍼블릭 클라우드 서비스를 사용하는 것을 의미합니다. 하이브리드 클라우드는 일반적으로 이러한 환경 간의 통합과 함께 온프레미스 인프라는 물론 공용 및 사설 클라우드의 혼합을 나타냅니다.
현대화는 소프트웨어 팀이 중요한 애플리케이션을 처음부터 다시 빌드하도록 요구하지 않고 이러한 더 분산된 컴퓨팅 패러다임에 대해 기존 애플리케이션을 최적화하는 데 도움이 됩니다. 결과적으로 멀티 클라우드와 하이브리드 클라우드는 레거시 현대화를 위한 가장 두드러진 두 가지 촉매입니다.

이와 관련된 현대화 추세는 IT 업계가 애플리케이션과 워크로드를 패키징, 배포 및 관리하기 위한 수단으로 컨테이너 및 오케스트레이션을 수용하는 것입니다. 레거시 앱을 컨테이너화할 수 있지만 컨테이너는 개발 및 운영에 대한 보다 분리된 접근 방식, 즉 마이크로서비스 아키텍처에 가장 적합한 것으로 간주됩니다.

반응형

'공부 > Object-Oriented Design' 카테고리의 다른 글

XML, JSON 차이  (0) 2022.07.09
Create Java classes that implement the FigureInterface interface:  (0) 2022.03.12
3.8 – Model Checking  (0) 2021.09.28
3.7 – UML State Diagram  (0) 2021.09.27
3.6 – UML Sequence Diagram  (0) 2021.09.26

댓글