개발 플랫폼에 맞춘 설계 모델 자동 생성…개발 비용 대폭 감소

지난해 2월 한국투자증권의 시스템 전면 재구축 사업을 수주한 SK C&C는 IBM의 UML 모델링 도구인 RSA를 기반으로 모델기반아키텍처(MDA)를 구현하고, 해당 사업을 성공적으로 완료했다.

한국투자증권이 발주한 시스템 재구축 사업은, 1단계(분석/설계)와 2단계(상세설계/개발) 사업이 분리된 분할 발주 프로젝트였다.

급변하고 있는 금융 환경에서 경쟁사들을 따돌리고 미래 경쟁력을 확보하기 위해, 이 투자증권은 최신 정보 기술과 사용자 관점의 업무 요구사항을 적극 반영한 새로운 시스템을 구축해야 했다.

 

경기도 성남시에 위치한 SK C&C 본사

[Background] 12단계 간 산출물 연계성 부족, 시스템 품질 저하 우려

SK C&C가 Eclipse 기반의 모델링 도구인 IBM RSA를 기반으로 MDA를 구현한 이유는, 서로 명확히 분리돼 있는 1단계와 2단계 사업을 유연하게 연계함으로써 개발 생산성을 높이기 위해서였다.

분할 발주 사업은 분석 및 설계 업무를 하는 1단계 사업과, 여기에서 나온 분석/설계 산출물을 바탕으로 상세 설계 및 개발 업무를 하는 2단계 사업으로 나뉘어 진행된다.

사업 단계 마다 별도 사업자가 작업을 하기 때문에, 개발 생산성을 높이고 사업을 성공적으로 진행하기 위해선 두 단계를 반드시 연계해야 했다. 두 단계를 연계하는 작업을 선행하지 않으면 다양한 문제점이 발생할 수 있었다.

대표적인 문제는 1단계에서 생성된 분석/설계 산출물을 2단계 사업자가 직관적으로 이해하고 상세화하기 어려웠다는 점이다. 

우선 1단계 사업에는 주로 업무 전문가가 분석 및 설계 프로젝트를 진행하기 때문에 전문적인 UML 모델링 도구의 활용도가 매우 낮았다.

또한 시스템을 설계하는 과정에서 고객사의 요구 사항이 빈번하게 변경되다 보니, 1단계 사업자는 설계 산출물을 손쉽게 변경할 수 있도록 엑셀 등 문서 위주로 분석/설계 산출물을 만들었다.

이렇게 만들어진 산출물은 2단계 사업자가 보유한 개발 플랫폼과 독립적인 형태로 생성됐다.

이런 이유로 2단계 사업자들은 1단계에서 작성된 산출물을 개발 플랫폼에 맞는 모델로 상세화하는데 어려움을 겪었다. 또한 설계 산출물 양식이 서로 다르다 보니, 1단계에서 산출된 설계 산출물을 2단계 사업자가 직관적으로 이해하기 힘들었다.

사업자 별로 달랐던 설계 산출물 양식은 또 다른 문제점을 야기했다. 개발이 주 업무인 2단계 사업자가 개발에 집중할 수 없는 촌극이 발생한 것이다.

분석 및 설계 작업을 1단계 사업에서 끝냈으니 2단계에선 마땅히 시스템 개발에 돌입해야 했으나, 산출물을 이해할 수 없었던 2단계 사업자는 개발에 필요한 분석과 설계 작업을 다시 해야 했다.

발주업체야 2단계 사업자에게 예정됐던 개발을 재촉했지만, 분석부터 다시 시작하는 모습에 애가 닳을 수 밖에 없었다.

대단위 IT서비스 사업을 오랫동안 수행해오며 이런 불합리한 상황을 여러 차례 겪었던 SK C&C로선 반드시 개선책을 찾아야 했다.

예정되지 않았던 분석 및 설계 업무를 다시 할 경우, 예정됐던 시간 보다 사업이 지체될 가능성이 높아 자칫 비용 증가 원인으로 작용할 가능성이 높았기 때문이다. 또한 개발에 필요한 시간이 상대적으로 줄어, 개발한 시스템의 품질이 하락할 우려가 있었다.

해결책 마련에 나선 SK C&C는 1단계에서 작성된 산출물을 2단계 사업자가 가져온 후 개발 플랫폼에 맞게 쉽게 상세화하고, 개발에만 집중할 수 있도록 방안을 모색했다. 이후 신중한 논의를 거듭한 끝에 IBM RSA 기반의 MDA 방식을 다양한 개발 프로젝트에 적용했다.

Eclipse 기반의 IBM RSA는 MDA 기반의 모델링 도구로, 기본적인 UML 2.1 모델링을 지원할 뿐만 아니라 MDA 사상을 기반으로 한 유연한 확장 기능도 함께 제공한다. SK C&C는 선택에 앞서 다양한 방법론을 놓고 고민했지만, 문제를 해결하는데 MDA 기반의 접근 방식을 가진 IBM RSA 적용하는 것을 가장 적합한 대안으로 최종 선택했다.

 

SK C&C 프로젝트 개발 환경

SK C&C는 UML 모델을 기반으로 자동화 도구 및 프레임워크를 통합해, 동일한 IDE 환경에서 설계, 개발, 테스트 작업을 진행했다.

Eclipse 기반의 설계 및 개발 도구인 IBM의 RSA 기반 위에, SK C&C가 자체 개발한 넥스코어 MDA 도구, 넥스코어 J2EE 프레임워크(J2EE 개발 환경), 넥스코어 C/C++ 프레임워크(C/C++ 개발 환경)를 추가로 설치해, 통합된 환경 아래서 개발할 수 있도록 했다.

또한 변경 및 형상관리 시스템 및 표준 I/O(입출력) 관리 시스템과 개발 프레임워크를 유기적으로 연동해 개발자가 개발을 마친 후 산출물을 형상관리 서버에 올리면 테스트 커버리지를 확인한 후, 기준 미달일 경우 소스코드를 서버에 곧바로 올릴 수 없게 했다.

 

[Best Practice #1] 모델 및 코드 자동 생성, 설계자와 개발자 간 편의성 높여

SK C&C는 IBM RSA 기반으로 MDA를 구축함으로써 분석 모델을 설계 모델로, 설계 모델을 프레임워크 기반의 소스코드로 자동 생성할 수 있게 됐다.

SK C&C는 우선 1단계 사업자가 생성한 문서 위주의 분석/설계 산출물을 보완하고, 개별 서비스와 서비스 입출력(I/O), 서비스 내부의 흐름을 정제하는 작업을 진행했다.

이 정제된 산출물은 IBM RSA를 확장해 만든 MDA 도구를 이용해, 개발 플랫폼에 맞는 상세 설계모델로 자동으로 생성됐다.

이후 설계자는 자동으로 생성된 상세 설계모델을 이용해 서비스의 상세 내용을 구체적으로 작성했다. 이렇게 상세 설계를 완료하면 MDA 담당자는 MDA 도구를 활용해 상세 설계 모델로부터 프레임워크 기반의 소스코드를 자동 생성했다.

여기서 상세 설계모델과 소스코드를 자동 생성하는 과정은, 전체 생산성을 높이기 위해 MDA 담당자가 일괄적으로 수행하게 했다.

MDA 사상을 프로젝트에 효과적으로 적용하기 위해선 설계자나 개발자가 도구를 잘 활용해야 하지만, 이들 업무의 여건 상 MDA 사상이나 도구를 처음 접하는 경우가 많아, 이들에게서 도구의 효과적인 사용을 기대할 수 없었다.

모델 및 코드를 자동 생성하는 부분을 MDA 담당자가 일괄적으로 작업할 수 있게 프로세스화한 SK C&C는, 결과적으로 설계자와 개발자의 편의성까지 함께 높일 수 있었다.

◆ IBM RSA 기반 MDM 구축 효과 및 기대 효과

[Best Practice #2] 상세 설계 시간 최소화, 테스트 수행 시간 확보

MDA를 활용해 분석 모델을 설계 모델로, 설계 모델을 프레임워크 기반의 소스코드로 자동 생성할 수 있게 된 SK C&C는 작업 속도를 최소화할 수 있었다.

설계자나 개발자가 분석 모델이 설계 모델로 자동으로 변환돼 있는 상태에서 곧바로 작업에 착수할 수 있기 때문에 작업 속도가 훨씬 빨라진 것이다.

이를 통해 SK C&C는 상세 설계에 드는 시간을 줄이는 한편 테스트 시간을 더 확보해 양질의 소스코드를 생성할 수 있는 환경을 마련할 수 있었다.

또한 IBM RSA 기반으로 작성된 MDA 도구는 뼈대 코드만 일괄적으로 만드는 것이 아니라, 모델에 설계된 비즈니스 로직을 기반으로 개발 코드를 생성할 수도 있다.

이 방식을 활용함으로써, 설계자는 수동으로 작업했을 경우 최소한 2시간 가량 걸렸던 코드 변환 시간을 크게 줄여 10분까지 단축할 수 있었다. 이런 12배 가량의 차이로 인해, SK C&C는 상세 설계 및 개발 초기 단계에 투입되는 비용을 5억 원 정도 절약하는 효과를 거둘 수 있었다.

아울러 상세 설계 모델에서도 업무명을 한글로 쓰도록 해, 설계자는 일관성 있고 편리하게 설계 작업을 수행할 수 있었다.

[Best Practice #3] 표준 준수한 코드 자동 생성, 시스템 품질 향상

개발 생산성을 최대한 끌어 올린 것은 또 다른 비즈니스 효과였다. SK C&C는 IBM RSA 기반으로 작성된 MDA를 활용해 개발 표준을 준수한 코드를 자동으로 생성했으며, 이를 통해 소스코드의 품질을 크게 높일 수 있었다.

즉, 상세 설계 단계에서 설계자가 표준을 준수하기 위해 수작업으로 진행했던 작업을 제거해 초기 작업에 들어가는 비용과 시간을 줄이고 테스트에 집중할 수 있게 됐다. 상식적인 얘기지만 테스트 기간을 늘리면 시스템 품질은 높아진다.

개발 생산성을 높이기 위해, 이 회사는 개발 단계에서 모델을 변경하지 않고도 소스코드를 수정할 수 있도록 모델과 소스코드를 결합해 관리했다.

또한 애플리케이션 아키텍트(AA)를 중심으로 부서별로 의사소통 체계를 수립하고, 고객의 요구사항부터 컴포넌트와 서비스 변경사항까지의 정보를 각 부서가 실시간으로 공유하고 빠르게 대응할 수 있도록 했다.

SK C&C는 이런 과정을 통해 일정 수준 이상의 모델 품질을 유지할 수 있는 체계를 마련할 수 있었다.

[Plan] 일반 프로젝트에도 MDA 적용 예정

분할발주 사업에서 MDA의 도입효과를 톡톡히 거둔 SK C&C는 앞으로 분할발주뿐만 아니라 일반 프로젝트에서도 MDA 기반으로 개발을 수행할 방침이다.

이 회사는 이번에 한국투자증권의 시스템 전면 재구축 사업을 추진하면서, 이러한 MDA도구가 분할발주뿐만 아니라 일반 프로젝트에도 꼭 필요하다는 확신을 갖게 됐다.

분석/설계 단계에서 만들어진 대부분의 산출물은 개발 플랫폼이 고려된 형태가 아닌 업무에 특화된 형태로 작성되기 때문에, 개발 플랫폼에 맞게 산출물을 자동 전환하는 MDA도구를 활용해 개발 생산성과 품질을 높일 계획이다.

◆ 모델기반 아키텍처(MDA) 구축 효과

구축효과

상세내용

프로젝트 리스크 감소

‧ 자동화를 통해 1단계 문서 위주의 산출물과 2단계의 UML 설계 산출물이 유연하게 연계되어 개발 프로세스 상에서의 리스크가 감소했다.

‧ 상세 설계 및 개발 진행 시에 불필요한 작업 및 중복작업이 최소화됐다.

‧ 설계자가 작성한 UML 설계 산출물을 프레임워크 기반의 소스코드에 누락 없이 반영할 수 있었다.

‧ 자동화를 통해 설계 및 개발 표준에 기반한 모델 및 코드를 일괄적으로 생성함으로써 산출물의 품질을 확보했다.

상세설계 시간 최소화

‧ 분석 모델을 설계 모델로, 설계 모델을 프레임워크 기반의 소스코드로 자동 생성할 수 있게 됐다.

‧ 모델 및 코드를 자동 생성하는 부분을 MDA 담당자가 도구를 적용해 일괄적으로 진행함으로써 설계자와 개발자의 편의성이 높아졌다.

‧ 서비스 별 상세 설계 및 코드 변환 자동화를 통해 설계 및 개발 시간이 기존의 수동으로 작업했을 때보다 크게 단축됐다.(2시간→10분)

‧ 상세 설계 및 개발 초기에 투입되는 비용이 5억 원 정도 감소했다.

개발 생산성 및 시스템품질 향상

‧ 개발 단계별 생산성이 향상됨에 따라 상대적으로 많은 테스트 과정을 수행해 고품질의 시스템을 인도받을 수 있었다.

‧ 초기 개발 소스 코드 작성 비용의 감소로 테스트를 수행할 수 있는 시간이 확보돼 시스템 품질을 향상할 수 있었다.

 

<데일리그리드>

저작권자 © 데일리그리드 무단전재 및 재배포 금지