‘데브온 자바’, 전면에서 은행권 계정계 정조준
“일하는 방식의 변화를 추구하자”. 자바 특집 기사 취재를 시작했더니 LG CNS(대표 김대훈) 내세운 모토다.
자바는 개발생산성과 유지보수 편의성에서 시장을 확대중이다. 그동안 IT개발은 설계자와 개발자간 의사소통의 불일치로 난개발이라는 오명을 안고 있었다.
LG CNS의 자바 접근법은 이같은 의사소통의 어려움, 프로그램 코드와 산출물의 불일치 등을 해소하는데서 출발한다.
◆지속적인 투자 산물 ‘데브온 자바’ = LG CNS의 대표 자바 솔루션은 ‘데브온(Devon)-자바’다.
이 솔루션은 지난 2010년, LG CNS가 프레임워크 전략 강화를 기치로 내세우고, 데브온-C, 데이브온- 자바 등으로 개편을 추진하면서 그 기능 및 성능이 대폭 강화됐다.
특히, LG CNS는 프레임워크 완성도와 더불어 자체적인 개발방법론 데브온-MDA를 개발, 전북은행 차세대 가동을 통해 기능을 검증받았다.
데브온-MDA는 MDD 방식 지원을 위한 LG CNS의 개발도구로, 모델로부터 프로그램 코드를 생성한 후 바로 단위 테스트가 가능하며 업무 로직 수정이 필요하면 프로그램 코드가 아닌 모델을 수정, 프로그램 코드를 손쉽게 다시 생성할 수 있다.
LG CNS는 따라서 ‘데브온-자바’ 프레임워크 그리고 데브온-MDA 등 개발방법론부터 프레임워크까지 일관성을 유지해 금융사의 프레임워크 선호도를 높이고 있다.
◆“일하는 방식의 변화” MDD = LG CNS는 그동안 금융IT 프로젝트가 설계자와 개발자간 의사소통의 어려움, 프로그램 코드와 산출물 불일치 등의 문제를 내포하고 있다고 보고, 기존 코드 중심(Code-Centric) 개발 방식 대안으로 MDD(Model-Driven Development) 방식 도입을 고려하게 됐다.
MDD란, 소프트웨어를 개발할 때 모델을 작성하면 모델로부터 프로그램 코드뿐만 아니라 다양한 문서를 자동으로 생성하는 개발 방식이다.
주요 특징은 소프트웨어 개발에 있어 모델을 가장 중요한 산출물로 간주, 모델 중심으로 소프트웨어 개발을 진행한다는 것이다.
따라서 소프트웨어 구축 시 모델을 잘 만드는 것에 시간과 비용을 집중한다.
MDD 개념을 실제 구현 가능하도록 하는 기반기술이 MDA(Model-Driven Architecture)이며, 2001년 OMG(Object Management Group)에서 공식적으로 발표했다.
OMG에서 제안한 MDA의 궁극적인 목표는 소프트웨어 개발의 전 과정에서 필요한 모델링 기술에 대한 표준을 제정하는 것이다.
MDD를 지원하는 1세대 툴은 CASE(Computer-Aided Software Engineering) 툴들로 1980년대 이미 출시가 됐다.
그러나, MDA에 대한 표준이 부족해 케이스 툴간 호환이 되지 않고, 단기간 숙련이 어렵고, 높은 초기 투자 비용 대비 단기 성과가 미비해 프로젝트 적용이 기피됐다.
1997년 모델링 언어인 UML(Unified Modeling Language) 1.0 출시 후 2005년 UML 2.0 출시, 2001년 OMG에서 MDD 기술 표준인 MDA 발표, 2004년 이클립스 도구 플랫폼 배포 그리고 모델에 상세 정보를 담을 수 있도록 DSL(Domain-Specific Language)이 정의되면서 MDD 지원을 위한 기술 환경이 마련됐다.
이같은 기술 환경 위에서 MDD를 지원하는 툴들은 프로젝트에 적용되면서 지속적으로 발전, 최근에는 다양한 프로젝트에 적용될 수 있을 정도로 관련 기술과 MDA 툴이 성숙했다.
◆MDD 적용 개발 절차 = LG CNS에서 적용한 방식을 기반으로 보면, MDD 방식을 도입해도 대상 영역이 응용 프로세스 영역이므로 화면 설계 개발과 데이터 모델 설계 구축은 달라지는 게 없으며, 응용 로직 영역(서버 프로그램) 개발 절차만 바뀌게 된다.
응용로직 개발 절차 우선 PIM(Platform Independent Model) 모델을 작성하는데, 모델은 메타 표준 단어/용어로 등록된 한글로 작성한다.
이 때 ▲모듈과 오퍼레이션 ▲오퍼레이션 입출력 데이터 구조 ▲오퍼레이션 상세 로직을 시퀀스 다이어그램으로 작성한다.
두 번째로, MDA의 자동화 기능을 통해 실행 가능한 프로그램 코드를 자동으로 생성한다.
과거에는 프로그램 코드 생성 이전에 PSM(Platform Specific Model)을 먼저 생성했으나 최근에는 효율성을 위해 이를 생략할 수 있다.
이 과정에서 한글로 작성된 모델은 메타 단어/용어를 사용해 영문으로 변경, 프로그램 코드로 생성된다.
마지막으로 생성된 프로그램 코드에 대한 단위 테스트를 시행해 모델이 업무 요건에 맞게 잘 작성됐는지 검증하면 된다.<그림1 ‘자바 개발 방법론 MDD 적용개발 절차’ 참조>
▲ 그림1 ‘자바 개발 방법론 MDD 적용개발 절차’ |
◆MDD 도입 고려사항은 = MDD 방식 도입을 위해서는 ▲모델 표준 수립 ▲DSL준비 ▲지원도구 개발 등을 고려해야 한다고 LG CNS는 제안했다.
‘모델 표준 수립’은 MDD에서 가장 중요하게 생각하는 산출물이 모델인데, 이 모델을 작성하기 위한 표준이 필요하다.
전북은행 차세대에서 LG CNS는 모델 작성을 표준화된 범용 모델링 언어 UML을 사용해 작성하고 UML의 많은 표기 중 금융 업무 모델 작성에 필요한 UML 표기만을 별도로 선정했다.
별도로 선정한 UML 표기에는 액터(Actor), 유즈케이스(Usecase), 클래스(Class), 인터페이스(Interface), 오퍼레이션(Operation), 파라미터(Parameter) 등 모델의 구성 요소와 오퍼레이션의 업무 로직을 담게 되는 시퀀스 다이아그램(Sequence Diagram) 등이 존재한다.
또한 업무 모듈의 종류, 명명 규칙, 호출 규칙 등 모델 작성을 위한 표준을 수립했으며, 한글로 작성한 모델을 영문 프로그램 코드로 자동 생성할 때 필요한 한영 변환 규칙을 마련했다.
업무 로직을 ‘시퀀스 다이아그램’으로 작성할 때 콜리 오퍼레이션(Callee Operation) 호출과 조건문, 반복문 등은 UML 표준으로 표현할 수 있으나, 콜리를 호출할 때 넘겨줄 인자 설정, 호출 결과 값에 대한 할당과 계산식은 UML로 표현할 수가 없다.
이렇게 UML로 표현할 수 없는 부분에 대한 표현 방법이 필요한데 LG CNS에서는 논리표현식이라는 일종의 DSL(Domain Specific Language)을 정의해 사용했다.
이 논리표현식은 한글로 작성이 가능하며 쉽게 배울 수 있다는 강점을 갖고 있다.
MDD 방식 도입을 위해서는 작성된 모델을 해석해 프로그램 코드로 자동 생성해 줄 수 있는 MDA Tool이 반드시 필요하다.
전북은행 차세대 관련 LG CNS 모델 작성은 UML 모델을 작성할 수 있는 RSA(Rational Software Architect)를 사용했고, MDA 툴은 RSA에 플러그인(Plug-in) 돼 동작할 수 있도록 자체 개발했다.<그림2 ‘논리 설계 모델로 프로그램 소스 자동 생성 개발 방식’ 참조>
▲ 그림2 ‘논리 설계 모델로 프로그램 소스 자동 생성 개발 방식’ |
◆데브온 MDA = MDD 방식 지원을 위해 LG CNS에서 개발한 MDA 도구가 데브온 MDA다.
데브온 MDA는 2000년대 중반부터 개발돼 LG CNS에서 수행한 금융/공공 프로젝트에 다수 적용이 되면서 지속적으로 발전해 왔다.
2010년 말에는 DSL 지원을 통해 100% 실행 가능한 프로그램 코드 생성이 가능해져 응용 업무 개발에 있어 풀 MDD 방식 진행이 가능하게 됐다.
데브온 MDA는 프로그램 코드, 문서 자동 생성과 같은 기본 기능 이외에도 단순 반복적인 수작업을 자동화 해주는 다양한 기능을 제공해 설계자가 좀 더 의미 있는 일(응용 업무 로직 설계)에 집중할 수 있게 해줘 설계자가 좋은 품질의 모델을 만들 수 있도록 지원 해준다.
주요 기능으로 데브온 MDA는 자동 생성, 모델작성 편의기능, 테스트 편의기능 등을 갖고 있다.
자동 생성 관련, 데브온 MDA는 모델로부터 실행 가능한 프로그램 코드(Java 소스)와 문서를 자동 만들어 준다.
아울러 업무 구조 및 모델 구성 요소 자동 생성, 논리표현식(DSL) 작성 편의를 위한 편집기 제공 등 MDA를 활용해 개발자가 불필요하게 코딩을 여러번 하는 수고를 덜 수 있다.
이 밖에도 데브온 MDA는 단위 테스트를 위한 서비스/전문 등록 및 배치 작업 정보 등록 등과 같은 기능 등을 포함, 약 70여 가지의 기능을 제공하고 있어 좀 더 효과적인 MDD 방식 진행을 가능하게 해준다.
◆데브온 MDA 적용사례 = 데브온 MDA를 적용한 프로젝트 사례는 많지만, 계정계 전체 업무에 대해 100% MDD를 채택한 사례는 전북은행 프로젝트를 예로 들 수 있다.
전북은행 차세대 프로젝트는 2012년 2월에 시작해서 2013년 9월 오픈 까지 총 20개월 동안 진행됐다.
이 프로젝트가 갖는 주요 특징은 국내 첫 은행 계정계 시스템을 자바 언어로 구축했다는 점과 계정계 시스템 전체 업무에 대해 분석, 설계, 개발, 통합테스트, 이행 전 단계에 걸쳐 온라인/배치/센터컷 모두 데브온 MDA를 사용해 MDD 방식으로 진행했다는 점이다.
현재 유지보수 또한 MDD 방식으로 진행하고 있다.
프로젝트 초반에는 MDD 방식에 대한 의문과 새로운 방식으로의 변화에 대한 우려와 불만이 많았고 크고 작은 이슈가 발생했다.
MDD 방식으로 진행한 전북은행 프로젝트는 예정 오픈 일자를 1주일 앞당겼으며, 오픈 당일 일마감을 완료할 정도로 성공적인 오픈이었다.
◆MDD 도입 기대효과 = MDD 방식으로 프로젝트를 진행하면 기존 방식인 코드 중심 개발과는 다른 몇 가지 변화들이 나타나고 있다.
첫 번째 프로그램 코드와 산출물 문서는 수작업으로 작성하지 않고, MDA 도구를 통해 모델로부터 자동 생성한다는 점이다.
두 번째는 영문 텍스트 기반의 프로그램 코드 보다는 한글로 작성된 그래픽 모델 중심으로 프로젝트를 진행한다는 점이다.
세 번째는 모델을 중시하고 프로그램 코드를 자동생성 하기 때문에 개발 단계보다는 설계단계에 많은 비중을 둔다는 점이다.
네 번째는 개발 언어와 플랫폼에 대한 종속성이 줄어든다는 점이다.
이같은 변화를 통해 자바 기반 프로젝트의 품질 향상, 기술 변화에 대한 유연성 증대, 개발 생산성 향상이라는 효과를 기대할 수 있다.
포레스터 리서치의 해외 사례를 보면 에어프랑스(Air France) 등 경우에는 MDD 도입으로 의미 있는 생산성 향상 효과를 누렸다.
LG CNS에서 수행한 프로젝트를 분석해 보면 구축 단계에서는 극적인 생산성 향상 효과가 나타나지 않았지만 MDD에 대한 성숙도가 높아지는 모델 기반의 유지보수 단계에서는 구축 단계 보다는 좀 더 의미 있는 생산성 향상 효과가 나타날 것으로 기대한다.
자바 프레임워크와 방법론으로 무장한 LG CNS가 조만간 국내 대형 금융사 차세대시스템 개발에 우위를 점하기는 어렵지 않아 보인다.
<김동기 기자>kdk@bikorea.net