main visual
  • What is MDD
  • MDD의 특징 및 장점
  • 해외 구축 사례
  • Home
  • > LG CNS MDD
  • > News

News sub Title

 Automation tool, Model Driven Development 2013.12.12

SW설계 모델로 `차세대 시스템` 뚝딱
업무 모델만 완성하면 소스코드 등 자동생성… 안정성ㆍ품질향상 효과

지난 9월 전북은행 차세대 시스템이 개시했습니다. 이 시스템은 그동안 차세대 시스템 개발에 이용되던 `코볼'이나 `C언어' 대신 국내 은행 최초로 `자바'로 개발됐습니다. 재미있는 건 자바로 개발된 시스템이었는데도 시스템 개발 인력 중 15% 정도만 자바를 경험한 개발자였습니다. 자바를 경험한 개발자도 적은데, 오류 없이 기간을 단축해서 국내 최초로 자바로 개발한 차세대 시스템을 완료할 수 있었던 비결은 무엇일까요.

이는 전북은행 차세대 프로젝트에는 모델중심개발(Model-driven Development, 이하 MDD)이 적용됐기 때문입니다. MDD는 개발자가 프로그래밍 언어로 직접 코딩하는 것이 아니라 소프트웨어 설계 모델을 통해 소스코드를 자동 생성하는 개발 방식을 의미합니다.

MDD는 IT시스템 또는 솔루션을 만드는 `3D 프린터'라고 보면 됩니다. 설계도를 입력하면 제품이 자동적으로 만들어지는 3D프린터처럼, MDD는 IT시스템의 모델링을 하면 자동적으로 코딩이 생성돼 시스템이 구축되는 형태입니다.

이렇게 하면 생산성이 제고되므로 IT시스템을 구축하는 IT서비스회사나 IBM, SAP, MS 등 각종 솔루션을 개발하는 솔루션회사 등이 일찍부터 MDD를 채택했습니다. 국내에선 LG CNS와 SK C&C가 자체 개발한 MDD 자동화 도구가 있으나, 국내 최초로 3단계 수준의 MDD가 적용된 사례는 LG CNS가 구축한 전북은행차세대시스템 구축사업입니다.

금융IT분야에서 MDD 강자로는 피두키아(Fiducia), 패스파인더(Pathfinder) 등이 꼽힙니다.

3단계로 나뉘는 MDD

MDD 1단계는 모델링 도구를 가지고 모델링을 수행하는 단계입니다. 이 단계는 분석ㆍ설계 모델링 도구 또는 간단하게는 워드나, 파워포인트 같은 문서편집도구를 사용합니다. 대부분의 대규모 프로젝트가 1단계에 해당하지만, 모델링은 당연히 하는 것이기에 1단계를 모델중심개발을 한다고 하지는 않습니다. 1단계의 한계는 설계모델대로 소스코드를 개발하는 것은 전적으로 사람에게 달려있다는 점입니다.

2단계는 모델로부터 일부 소스코드를 생성하는 수준입니다. 소스코드 기준으로 보면 20∼ 30%가 모델로부터 생성됩니다. 이 20∼30%는 프로그램의 큰 흐름에 해당합니다. 큰 흐름만이라도 설계모델대로 소스코드를 개발하자는 것입니다. 최근까지 모델중심개발을 한다는 것은 2단계를 의미했습니다. 2단계 수준의 한계는 운영단계에서 소스코드를 수정하면서 모델과 소스를 이중 관리해야 하고, 종국에는 모델과 소스의 일치를 보장하기 어려워지게 되는 점입니다. IT 세계에서는 1%의 오류도 받아들여지지 않습니다. 잘못된 모델을 보고 중대한 업무 처리 프로그램을 수정할 수는 없기에 결국에는 소스를 신뢰하게 됩니다.

3단계는 모델로부터 100% 소스와 산출물을 생성하는 단계입니다. 3단계에서는 모델과 설계산출물, 소스가 일치하게 되고, 그 결과 관리가 모델로 일원화되고, 앞서 1ㆍ2단계의 한계를 극복하게 됩니다. 이 단계는 물이 수증기가 되는 단계입니다. 액체인 물은 100도가 되면 기체인 수증기가 됩니다. 즉, 1ㆍ2단계가 실제로는 소스중심개발이었다면 3단계에서 비로써 진정한 모델중심개발이 됩니다.

MDD는 확산될 것인가

MDD가 확산되기 위해서는 기대효과가 충족돼야 할 것입니다. MDD 도입으로 기대할 수 있는 효과는 개발 품질 향상과 안정성 확보, 개발 생산성 제고 등입니다. MDD의 특성상 모델, 소스, 설계산출물이 일치한다는 점에서 산출물과 코딩의 품질이 향상됩니다.

생산성 관점에서 모델중심개발의 기본 개념상 자동으로 소스를 생성하기에 개발생산성도 향상됩니다. 실제로 규모가 작은 프로젝트나 시스템 유지보수에서는 생산성이 높다는 연구결과가 많이 있습니다. 다만 국내의 대규모 시스템 개발에서 생산성 향상이 있었다는 연구결과는 아직 없기 때문에 향후 다양한 프로젝트에 적용되며 생산성 제고 효과에 대한 장기적인 검증은 필요합니다.

MDD의 근간이 되는 모델중심아키텍처(Model-driven architecture, MDA)는 프로그래밍 언어나 플랫폼이 바뀌는 경우에도 모델로부터 소스가 생성되는 구조를 가지고 있습니다. 따라서 구축한 동일한 모델로 다양한 언어의 소스코드 생성이 가능합니다. 모델만 구축하면 C언어로도 소스코드 생성이 가능하고, 자바로도 소스코드 생성이 가능합니다. 자바로 개발을 염두에 두고 모델을 만들었어도, 추후에 C언어 소스 생성이 가능하다는 의미이기도 합니다.

2014년에 발주될 것으로 보이는 금융권의 차세대 시스템 구축 프로젝트에는 MDD가 채택될 것으로 전망됩니다. MDD가 금융시스템 구축 방식을 바꿀 것인지 지속적인 관심을 갖고 지켜볼 시점입니다. 또 패키지 솔루션을 주로 도입하는 제조업 외에 금융권처럼 자체 시스템을 구축하는 통신 및 서비스업종에서도 관심을 가져 볼만하겠습니다.


심화영기자

list btn