북한이 소프트웨어(SW)를 개발하면서 CMMI와 애자일 방법론을 융합하는 방안을 연구하고 있다. 이는 두 방식의 장점을 결합하기 위한 것이다. 북한은 52개의 SW 프로젝트에 각각의 방식과 융합 방식 등을 적용해 비용, SW 품질, 효율성 등을 확인했다고 한다.

3월 16일 대북 소식통에 따르면 북한 김일성종합대학이 발행한 김일성종합대학학보 정보과학 2019년 제65권 제4호에 '중소규모의 쏘프트웨어 개발 단위들의 개발공정 확립에서 CMMI 방식과 애자일방식의 호상관계에 대한 연구'라는 논문이 수록됐다.

논문은 "오늘날 소프트웨어 개발 단위들에서 효과적인 개발공정을 확립하는 것은 단위의 능력을 높이는데 매우 절실한 문제가 되고 있으며 이를 위한 방식으로서 CMMI 방식과 애자일 방식이 광범히 이용되고 연구되고 있다"고 소개했다.

논문은 "선행연구에서 CMMI 방식과 애자일 방식이 공존할 수 있다는 것을 논증했다"며 "이 논문에서는 CMMI 방식과 애자일 방식의 실천들에 대한 분석과 실제적인 개발 경험에 기초해 이 두 방식의 결합 형태를 분류하고 두 방식을 결합할 때 상호 적응해야 할 문제를 밝히고 적용 사례를 통해 그 타당성을 실증했다"고 설명했다.

즉 선행연구에서 CMMI 방식과 애자일 방식을 함께 사용할 수 있다는 것이 증명됐는데 이것을 실제 프로젝트에 적용할 수 있도록 심화시켰다는 것이다.

CMMI와 애자일은 무엇? 

북한 논문이 지적한 CMMI 방식과 애자일 방식은 무엇일까? 

CMMI(SW개발 능력 성숙도 통합 모형)는 미국 카네기멜론대학 소프트웨어 공학연구소(SEI)와 산업계가 공동으로 개발, 보급하고 있는 소프트웨어 및 시스템 품질관리 기준이다. CMMI는 SW 개발 등의 품질 관련 국제 공인 기준으로 사용되고 있다.

CMMI의 조직 개발 프로세스 성숙도는 레벨1부터 레벨5로 나뉘어져 있다. 레벨1은 매우 미숙한 프로세스를 의미하고, 레벨5는 최적화 된 가장 성숙한 최고수준의 프로세스를 뜻 한다.

IT 기술이 발전하면서 과거 수백 줄에 불과했던 SW 소스코드가 수십 만 줄, 수백 만 줄에 달하고 있다. 이처럼 SW 코드가 복잡해지면서 SW 오류가 발생하고 있다. SW 오류는 시스템, 제품, 서비스의 품질을 낮추는 것은 물론 안정성을 위협하고 있다. 가령 자동차에 들어가는 SW가 오류를 일으킬 경우 급정지 등 이상 작동을 유발할 수 있다. 때문에 체계적으로 SW를 개발, 관리하자는 논의가 이뤄지고 있으며 CMMI 역시 그런 방안 중 하나다.

애자일 방법론(Agile Software Development)은 SW 개발 방법의 하나로, 개발 대상을 다수의 작은 기능으로 분할해 하나의 기능을 하나의 반복 주기 내에 개발하는 개발 방법을 뜻 한다.

과거 SW개발은 무계획으로 이뤄졌다. 때문에 수정을 해야하는 상황도 많이 발생하고 취약점, 오류 등 문제가 나타났다. 이에 SW 개발 시 전체적으로 구조를 설계하고 계획을 짜는 방식이 도입됐다. 하지만 이 방식은 너무 계획에 의존해 유연성이 없고 형식을 따르기 위해 소모되는 자원들이 많은 단점이 있었다. 

대안으로 나온 것이 애자일 방법론이다. 기민하다는 뜻의 애자일에서 볼 수 있듯이 애자일 방법론은 능동적인 대응이 강점이다. 예를 들어 SW를 개발할 때 1차 요구사항, 2차, 3차 또는 부분으로 SW 기능을 나눠서 개발한다. 프로젝트 내에서 작은 SW 개발이 반복되는 것이다. 이 경우 요구사항 반영과 수정이 용이하기 때문에 고객들의 요구에 빠르게 대응할 수 있다.

CMMI 공식 홈페이지 모습

CMMI와 애자일 방식은 SW를 개발하는 사람 중 모르는 사람이 없을 정도로 널리 활용되고 있다.

북한 역시 두 가지 방식에 관심을 갖고 실제 적용을 하고 있는 것으로 알려져 있다.

관련 기사

북한도 SW개발에 애자일 방법론 도입

북한 CMMI 기반 SW개발 품질관리 7단계는?

북한, 중소 규모 SW개발 CMMI 레벨3 구현

북한, 소규모 SW개발 품질 CMMI 5단계 추진

북한에서 CMMI와 애자일 방식이 연구, 적용되고 있는 것은 그 만큼 북한 내 SW 개발이 활발하며 프로젝트 규모가 커지고 있다는 것을 암시한다. 과거처럼 주먹구구식으로 SW를 개발하는 시기가 지난 것이다.

또 북한에서도 SW 품질에 대한 관심이 높은 것으로 추정된다. 어쩌면 SW 오류, SW 프로젝트 지연 등 문제가 북한에서도 발생했을 가능성이 있다.

북한은 어떻게 CMMI와 애지일을 융합하려고 하나

북한 논문은 CMMI 방식과 애자일 방식의 결합이 세 가지 형태로 진행된다고 설명했다.

첫 번째 형태는 CMMI를 실현해보지 못하고 애자일 방식만으로 개발을 진행하는 개발팀이 CMMI를 실현하기 위해 아직 만족되지 못하고 있는 CMMI 공정들의 특정 목표와 특정 실천, 일반 목표, 일반 실천들을 자기 팀의 빈틈 혹은 약점으로 간주하고 보충해 일정한 레벨의 CMMI 성숙도에 도달하는 것이라고 한다.

두 번째 형태는 이미 CMMI의 일정한 성숙도 레벨의 인증을 받은 개발팀이 효과적이지 못한 공정들의 실천을 애자일 방법들의 방식으로 바꿔 공정들의 효과성을 높이는 것이라는 설명이다.

세 번째 형태는 개발팀이 CMMI에 준한 인증에는 목적을 두지 않고 단지 자기의 개발 능력을 높이기 위해 개발에서 CMMI의 장점과 애자일의 장점만을 취해 개발 공정을 세우는 것이라고 한다.

북한 논문은 CMMI와 애자일을 결합해 본 결과에 대해서 설명했다. 애자일 방식이 CMMI 레벨2의 많은 요구 사항들을 만족시키지만 아직 CMMI 요구사항들을 전부 만족시키지는 못한다고 밝혔다. 그렇지만 애자일 방식에 일부 내용을 첨부하는 방법으로 CMMI 레벨2의 요구 사항들을 전부 만족시키는 공정을 구성할 수 있다고 주장했다.

또 논문은 CMMI 레벨3인 경우 애자일 방법들이 지원하지 않는 공정을 보충하는 방법으로 요구 사항들을 전부 만족시키도록 구성할 수 있다고 밝혔다.

반면 CMMI 레벨4와 레벨5의 공정들은 대부분이 애자일 방식과 충돌하기 때문에 애자일 방식을 이용해 레벨4나 레벨5까지의 개선을 시도한다면 애자일성을 약화시켜 여러 장점들을 잃어버리게 된다고 주장했다. 이에 CMMI 레벨4, 레벨5에 도달하기 위해서는 애자일 방식 이외의 새로운 방식을 적용해야 한다는 것이다.

논문은 52개의 SW 프로젝트들로 CMMI만 적용했을 때, 애자일만 적용했을 때, 두 가지를 융합해 적용했을 때 3가지 방식을 평가했다고 한다. 

논문은 그 결과 애자일 방식만을 적용하는 경우에는 비용은 절약되지만 품질이 떨어질 수 있으며, CMMI 방식만 적용하는 경우에는 개발 제품의 품질은 높일 수 있지만 비용이 높아진다고 지적했다. 그리고 CMMI 방식과 애자일 방식을 결합하는 경우에 프로젝트 성공률은 높아진다는 것이다. 

이에 논문은 중소 규모의 SW개발팀들에서 CMMI 방식과 애자일 방식을 결합하기 위한 합리적인 방안을 찾아내는 것이 중요하다고 결론을 내렸다.

논문의 전체적인 내용으로 볼 때 북한 연구자들은 SW 개발 시 비용을 줄이면서 SW 품질을 높이기 위해 CMMI와 애자일의 결합을 시도한 것으로 보인다. 북한 연구자들이 52개 프로젝트에 적용해 봤다는 것은 이것이 단순히 이론 연구가 아니라 실제 현장 적용을 위한 연구라는 점을 보여주고 있다.

북한이 이같이 다양한 연구와 시도를 통해 SW 개발의 효율성을 높이고 SW 개발 프로젝트를 개선하고 있는 것으로 추정된다.

강진규 기자  maddog@nkeconomy.com

* 독자님들의 뉴스레터 신청(<-여기를 눌러 주세요)이 NK경제에 큰 힘이 됩니다. 많은 신청 부탁드립니다.

 

관련기사

저작권자 © NK경제 무단전재 및 재배포 금지