IT Solutions/MDD

차세대 시스템 구축과 MDD(Model-driven Development)

2014.02.03 10:13

2000년대 초반 JAVA가 도입되기 시작한 이래, 지금까지 많은 금융회사가 COBOL 또는 C에서 JAVA로 프로그래밍 언어를 변경하고 있는데요. 최근 은행산업에서도 JAVA로 차세대 시스템을 구축하고 있습니다. 시스템의 변화를 주도해야 하는 개발자나 유지보수담당자 입장에서는 기존의 익숙한 언어를 버리고 새로운 언어에 적응하기는 쉽지 않은 일이죠. 하지만 지난 9월에 완료된 전북은행 차세대 시스템은 JAVA로 개발되었음에도 불구하고 예정된 일정보다 일주일 앞당겨 성공적으로 오픈하였습니다. 이 프로젝트가 더 의미 있는 것은 JAVA로 개발된 시스템의 개발 인력의 15% 정도 만이 JAVA를 실제로 경험한 개발자였다는 것입니다. JAVA 개발 인력 부족이라는 인프라 내에서 오류 없는 시스템을 기한까지 단축하여 개발할 수 있었던 비결은 MDA(Model-driven Architecture)와 MDD(Model-driven Development)인데요. 

 

MDA는 업무프로세스와 업무규칙을 담고 있는 모델로부터 소스와 문서를 생성하는 기술 구조이고, MDD 는 MDA 기술을 적용한 소프트웨어 개발 또는 방법론을 말합니다. 따라서 MDD를 채택하면 개발자가 프로그래밍 언어로 직접 코딩하지 않고 소프트웨어 설계 모델 을 통해 소스코드를 자동 생성할 수 있게 되는 것이죠. MDD는 성숙 수준에 따라 3단계로 나눌 수 있는데요. 1단계는 모델링 도구로 모델링을 수행하는 단계, 2단계는 모델로부터 일부 소스코드를 생성하는 단계, 3단계는 모델로부터 100% 소스와 산출물을 생성하는 단계입니다. 과거 국내에서도 MDD가 적용된 사례가 있었지만, 3단계의 MDD가 적용된 것은 ‘전북은행 차세대 시스템’이 최초라 할 수 있죠.


시장조사기관 포레스터 리서치에 따르면 해외에서 MDD를 적용한 80%가 1단계, 10~20%가 2단계, 3단계 수준은 10% 이하라고 합니다. 미국의 정보 기술 연구 및 자문 회사인 가트너는 3단계에 해당하는 애플리케이션 개발 접근 방법을 AMD(Architected model-driven) Development라고 부르는데요. 국내외를 막론하고 2단계에서 3단계 수준으로 가는데 넘어가는데 많은 어려움이 있었습니다. 모델링 기술, DSL(Domain-specific language), 변환기술 개발이 대표적이죠. 하지만 LG CNS는 이러한 기술을 자체적인 금융솔루션 개발 과정을 통해 축적하였고, 전북은행 차세대 프로젝트에서 비로소 검증하게 되었습니다.


그렇다면, MDD의 장점은 무엇일까요? 크게 네 가지로 나누어 살펴보도록 하겠습니다.


첫째, 개발이나 유지보수인력이 기술보다 업무에 더 집중할 수 있다는 점입니다. 3년 전에 당사는 생명보험솔루션을 개발했는데요. 당시 개발자들은 생명보험 업무에 전문성을 가지고 있었으나, JAVA에 대한 경험이 전무했습니다. 이러한 상황을 극복하기 위해 MDD를 채택했습니다. 소스코딩을 하지 않고 업무 모델링을 통해 소스를 생성하는 방식이었죠. 최근에 구축한 교보 디지털생명보험 시스템은 MDD를 적용하지는 않았지만, MDD를 적용하여 개발한 생명보험솔루션을 기반으로 만들어진 시스템입니다. 3년 동안 기술은 발전하였고, 최근 시작한 전북은행 차세대 시스템은 전체 시스템에 MDD를 적용할 수 있었습니다. JAVA를 전혀 몰라도 JAVA 언어로 은행시스템을 구축할 수 있는 시대가 열린 것이죠. 기술상의 어려움은 여전히 존재하지만, MDA의 지향은 플랫폼 독립성입니다. 예를 들면, 하나의 모델에서 C, COBOL, JAVA를 모두 생성할 수 있어야 한다는 것이죠.


둘째, 프로그램(컴포넌트)의 가시성을 확보할 수 있습니다. 언어가 무엇이든 프로그램을 처음 보는 경우 주석이 상세하지 않으면 프로그램이 무엇을 하는지 알기 어렵습니다. 또한, 주석이 아무리 상세해도 정확한지 확신할 수가 없는데요. 이럴 경우 처음부터 프로그램 내에 함수(오퍼레이션)가 호출하는 대로 따라가면서 보는 수밖에 없습니다. 하지만 MDD는 이러한 프로그램의 흐름을 순차적(시퀀스 다이어그램)으로 직관적으로 보여줍니다. 또한, 그 함수(오퍼레이션)명과 변수명, 구조체(Data transfer object) 모두 영어가 아니라 한글입니다. 한글용어도 제각각 쓸 경우 의사소통이 어려우므로 표준용어(메타)에 기반을 두어 변수를 생성했는지 검증합니다. 따라서 프로그램의 흐름을 한눈에 파악할 수 있고, 업무 전문성이 없는 사람이라도 쉽게 프로그램을 이해할 수 있어 상호 간 원활한 의사소통이 가능해집니다.

<업무모델만 완성하면 자동화 도구를 통해 분석문서와 설계문서, 소스코드 등이 자동 생성되는 MDD>


셋째, 설계/코딩/테스트 프로세스가 자동화되고 일관성과 연속성을 갖습니다. 풀어서 얘기하면, 설계는 문서나 모델링 툴에서 하고 소스코딩을 따로 하는 것이 아니라 설계가 끝나면 바로 소스가 100% 자동생성이 되기 때문에 설계와 코딩 간의 불일치가 없습니다. 따라서 설계서를 코드로 옮기는 과정에서의 오류가 없으며 의사소통 비용도 줄어들지요. 또한, 설계모델에서 소스 생성뿐만 아니라 설계문서도 표준화하여 생성할 수 있는데요. 이는 개발 후반기에 별도의 문서작업이 없어도 설계와 코드가 달라지는 현상이 발생하지 않습니다. 또한 소스가 자동 생성된 후 화면 없이 단위테스트가 가능하다는 점은 MDD의 중요한 장점 중 하나라 할 수 있죠.


마지막으로, 소스코드의 품질이 높아진다는 장점도 있습니다. 전통적 방식에 따르면 개발자의 역량과 스타일에 따라 코드가 달라지는 경우가 빈번하였습니다. 하지만 MDD는 표준화된 용어와 코딩스타일로 소스코드가 생성되어 코드 품질을 높이는 것이죠.

 

<MDD에 따른 주요 변화와 기대효과>


2014년에 발주될 금융권의 차세대 시스템 구축 프로젝트에는 MDD가 대거 채택될 것으로 전망되는데요. 이에 따라, MDD가 금융시스템 구축 방식을 바꿀 수 있을지 여부는 업계의 주요 이슈입니다. 그리고 패키지 솔루션을 도입하는 금융권과는 달리 자체 시스템 구축을 선호하는 통신 및 서비스 업종에서도 MDD가 적용될지도 함께 관심을 가져볼 만한 시점입니다. 


앞으로 많은 금융회사가 MDD를 적용하여 유지보수 생산성과 품질을 향상하고, 기술보다 업무 전문성에 집중하기를 기대해봅니다.


글ㅣ 구자원 부문장 ㅣLG CNS 금융/통신서비스부문



저작자 표시 비영리 변경 금지
신고
Posted by IT로 만드는 새로운 미래를 열어갑니다 LG CNS
위로