Jump to section

애플리케이션 라이프사이클 관리(ALM)란?

URL 복사

애플리케이션 라이프사이클 관리(Application Lifecycle Management, ALM)는 개념 구상에서 수명 종료 시까지 애플리케이션의 라이프사이클을 관리하는 인력, 툴, 프로세스를 뜻합니다. 

ALM은 레거시 개발 프로세스에 따라 흔히 구분되는 몇 가지 분야로 구성되어 있습니다. 이러한 프로세스로 프로젝트 관리, 요구 사항 관리, 소프트웨어 개발, 테스트 및 품질 보증, 배포, 유지 관리 등을 포함하는 워터폴(Waterfall) 개발 방법을 들 수 있습니다. 

애플리케이션 라이프사이클 관리는 이러한 분야를 통합하고 팀이 조직을 위해 더 효율적으로 협업할 수 있도록 하여 애자일 및 DevOps 개발 접근 방식을 지원합니다. 

또한 ALM을 도입하면 잦은 릴리스(하루에 여러 번 가능한 경우도 있음)를 통해 소프트웨어와 업데이트를 지속적으로 제공할 수 있는데, 이는 새로운 릴리스가 몇 달 간격 또는 1년에 한 번 이루어지는 것과는 대조적인 방식입니다.

애플리케이션 라이프사이클 관리는 소프트웨어 개발을 위한 프레임워크를 제공하는 동시에 시간 경과에 따라 소프트웨어를 관리할 수 있도록 지원합니다. ALM 프랙티스를 따르는 경우 경량화되고 사전 수립된 계획 및 요구 사항을 사용하여 아이디어를 애플리케이션으로 변환합니다. 

ALM을 이용해 소프트웨어를 개발하는 경우에는 애플리케이션의 전체 수명을 고려해야 합니다. 애플리케이션의 사용을 종료하고 교체할 시기를 포함해 유지 관리 및 향후 업데이트를 고려해야 합니다. 

ALM을 이용하면 이 모든 것이 충족되어 더 빠른 배포, 워크플로우에 대한 가시성 향상, 제품의 품질 제고, 개발자 만족도 향상 등의 결과를 얻을 수 있습니다.

ALM은 개발 프로세스를 한눈에 파악하는 데 도움이 됩니다. 이 프로세스는 통합되어 있으므로 프로세스 진행 상황, 미완료 단계, 작업 소요 시간, 완료된 테스트 등을 알 수 있습니다.

애플리케이션 거버넌스

거버넌스란 애플리케이션에 관한 의사결정을 뜻합니다. 새로운 애플리케이션을 생성하는 프로세스를 시작할 때 애플리케이션에 대한 초기 아이디어로 시작하게 되는데, 이때 이 애플리케이션이 비즈니스 요구 사항 및 목표와 어떤 관련이 있는지도 고려해야 합니다.

이는 새 애플리케이션에 대한 요구 사항에 반영되는데, 이러한 요구 사항은 거버넌스 단계에서 정의되고 합의되어야 합니다. 

리소스 관리, 데이터 및 보안, 사용자 액세스는 애플리케이션 거버넌스를 구성하는 추가 요소입니다. 

이 프로세스를 표준화하면 거버넌스를 자동화할 수 있고, 이러한 거버넌스 프로세스를 자동화하면 애플리케이션 제공 속도가 빨라집니다.

애플리케이션 개발

애플리케이션 또는 업데이트에 대한 요구 사항이 간략히 제시되고 합의가 되면 개발을 시작할 수 있습니다. 애자일 방법론에 따른 개발을 선택한 팀은 매일 한 번에서 여러 번까지 개발하고 배포할 수 있습니다. 

애플리케이션 설계, 빌드, 테스트 및 배포는 모두 개발 단계의 일부로 간주될 수 있습니다.

소프트웨어 테스트

새 애플리케이션을 개발했으면 테스트를 거쳐 버그를 해결한 후에 프로덕션 단계로 진행해야 합니다. 

애자일 및 DevOps 팀의 경우 개발과 동시에 테스트를 진행해야 합니다. 피드백은 개발 팀에 지속적으로 전달되어야 합니다. 

지속적 통합을 개발 프로세스에 포함하여 이처럼 빈번한 업데이트가 서로 충돌하지 않게 해야 합니다. 

테스트 단계의 목표는 애플리케이션을 사용자에게 릴리스하기 전에 거버넌스에 기반한 요구 사항이 충족되었는지, 그리고 애플리케이션이 제대로 작동하는지 확인하는 것입니다.

운영 및 유지 관리

테스트를 완료하고 버그를 수정한 후에 애플리케이션을 사용자에게 배포할 수 있습니다. 

운영 및 유지 관리 단계에서는 ALM을 애플리케이션의 전체 수명에 집중합니다. 애플리케이션이 배포되었다고 해서 운영이 끝나는 것은 아닙니다. 정기적인 유지관리와 업데이트를 고려해야 합니다. 

애플리케이션 또는 서비스의 사용 종료도 유지 관리의 일부로 간주해야 합니다. 팀은 애플리케이션에 대한 지원을 중단하거나 새 버전을 제공할 시점을 정의해야 합니다.

ALM과 SDLC 비교

ALM은 때로 소프트웨어 개발 라이프사이클(Software Development Life Cycle, SDLC)과 혼동되기도 하는데, 이는 둘 다 소프트웨어 개발 프로세스를 다루기 때문입니다. 주된 차이점은 SDLC가 기본적으로 개발 단계에 중점을 두는 반면, ALM은 개념에서 유지 관리를 거쳐 결국 제거에 이르는 전체 애플리케이션 라이프사이클을 고려하므로 애플리케이션 개발 후에도 지속된다는 것입니다. 

SDLC는 애플리케이션 라이프사이클 관리의 일부로 간주될 수 있는데, 주로 개발, 테스트 및 배포 단계가 이에 해당합니다. ALM에는 특정 애플리케이션에 대한 몇 개의 개발 라이프사이클이 포함될 수 있습니다.

ALM 툴은 기본적으로 인력과 프로세스를 통합하는 데 도움이 되는 프로젝트 관리 툴의 기능을 합니다. 버전 관리, 팀의 실시간 커뮤니케이션 기능, 요구 사항 관리 기능, 견적 및 프로젝트 계획, 소스 코드 관리, 테스트 관리가 포함된 툴을 찾아보세요.

필요한 이 모든 기능을 1개의 툴에서 찾을 수도 있고, 아니면 추가적인 툴(예: 개발자별 툴)과 통합해야 할 수 있습니다. 여러분이 선택하는 ALM 툴은 애자일이나 워터폴(Waterfall), DevOps 또는 그 외 어떤 방식이든 간에 개발 프로세스도 지원해야 합니다.

ALM 툴 예시:

  • Atlassian Jira
  • IBM ALM 솔루션
  • CA Agile Central
  • Microsoft Azure DevOps Server
  • Tuleap
  • Basecamp

ALM은 Linux® 컨테이너와 밀접하게 관련된 DevOps 접근 방식을 지원합니다. 컨테이너는 클라우드 네이티브 개발 방식에 필요한 기반 기술을 팀에 제공하고, 개발, 제공, 통합 및 자동화를 위한 통합 환경을 지원합니다.

또한 쿠버네티스는 Linux 컨테이너 운영을 자동화할 수 있는 현대적인 방법입니다. 쿠버네티스를 활용하면 퍼블릭, 프라이빗 또는 하이브리드 클라우드 전반에서 Linux 컨테이너를 실행 중인 클러스터를 손쉽게 효율적으로 관리할 수 있습니다.

Red Hat® OpenShift®는 엔터프라이즈 레디 쿠버네티스 플랫폼으로서, ALM 목표를 달성할 수 있도록 개발 팀과 운영 팀에게 모든 인프라에서 애플리케이션 컨테이너를 구축, 배포, 관리하기 위한 기반인 공통 플랫폼과 툴 세트를 제공합니다. 

추가 자료

문서

DevSecOps란?

DevOps의 민첩성과 대응 능력을 최대한 활용하려면 IT 보안 팀이 애플리케이션의 전체 라이프사이클에서 주요 역할을 해야 합니다.

문서

CI/CD(지속적 통합/지속적 제공): 개념, 방법, 장점, 구현 과정

CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공합니다.

문서

DevOps 엔지니어는 어떤 사람일까요?

DevOps 엔지니어는 조직 내 협업, 혁신, 문화적인 변화를 지원하는 기술 및 전문성을 두루 갖추고 있습니다.  

DevOps에 대한 자세한 내용

제품

Red Hat 전문가가 참여하는 집중적인 전문 레지던스 환경에서 애자일 방법론과 오픈소스 툴로 기업의 비즈니스 문제를 해결하는 방법을 학습합니다.

다양한 시각으로 고객의 상황을 파악하고 이를 바탕으로 고객의 과제를 분석하여 종합적이고 비용 효율적인 솔루션을 통해 문제를 해결하도록 돕는 전략적인 조언자입니다.

리소스

체크리스트

DevOps 방법론을 활용한 엔터프라이즈 자동화

백서

Red Hat Ansible Automation Platform으로 CI/CD 파이프라인 간소화

자세히 알아보기