MDA로 설계 자산을 코드 구현으로 연결하는 방법
MDA의 PIM·PSM 모델 변환 구조와 UML, MOF, XMI, CWM 표준을 바탕으로 소프트웨어 구현 자동화와 설계 자산 활용 방식을 정리한다.
2026-08-14 · 최초 발행 2026-04-17
코드보다 먼저 남겨야 할 것은 모델이다
특정 언어와 프레임워크에 맞춰 구현한 시스템은 플랫폼이 바뀌면 다시 손봐야 한다. MDA(Model Driven Architecture)는 이 문제를 해결하기 위해 구현 기술과 무관한 모델을 먼저 설계 자산으로 확보하고, 이를 코드로 변환하는 방식을 취한다.
객체 관리 그룹(OMG)이 주도하는 MDA는 시스템의 아티팩트를 모델로 다룬다. 비즈니스 로직과 기술 구현을 분리한 뒤, 자동화 도구로 모델 사이를 변환해 명세와 구현의 거리를 줄이는 것이 목적이다. UML 2.0은 시스템의 정적 구조와 동적 행위를 표현하는 주요 모델링 언어로 사용된다.
설계 모델에서 소스코드를 생성하는 코드 제너레이터를 활용하면 수동 구현 과정의 휴먼 에러를 줄이고 아키텍처 일관성을 유지할 수 있다. 비즈니스 로직을 담은 PIM(Platform Independent Model)은 자바, .NET, 파이썬 같은 구현 기술과 독립적이므로 기술 스택이 바뀌어도 재사용할 수 있다. UML, MOF, XMI 같은 표준은 서로 다른 벤더의 도구가 모델 데이터를 교환하고 협업하는 기반이 된다.
모델을 정의하고 교환하는 표준 기술
MDA는 모델의 작성만으로 성립하지 않는다. 모델 구조를 정의하고 저장하며 다른 도구와 주고받고, 데이터 중심 환경으로 확장하기 위한 표준이 함께 필요하다.
UML이 표현하는 시스템 청사진
UML(Unified Modeling Language)은 시스템의 구조와 행위를 가시화하고 문서화하는 표준 모델링 언어다. MDA에서는 PIM과 PSM을 작성하는 수단으로 쓰이며, 시스템 설계의 청사진 역할을 한다.
MOF가 정하는 모델의 구조
MOF(Meta Object Facility)는 다른 메타모델을 정의하기 위한 메타-메타모델이다. 모델 자체의 구조를 규정하고 모델 저장소(Repository)의 기반이 되며, 시스템 개발에 필요한 여러 언어와 모델링 형식을 통합적으로 관리하게 한다.
XMI로 이어지는 도구 간 데이터 교환
XMI(XML Metadata Interchange)는 MOF 기반 모델 데이터를 XML로 매핑하는 표준이다. 서로 다른 모델링 도구 간에 데이터를 전달할 때 모델 정보를 손실 없이 교환하도록 돕는 XML 기반 데이터 관리 표준이다.
데이터 저장소까지 확장하는 CWM
CWM(Common Warehouse Metamodel)은 데이터 저장소를 위한 표준으로, 데이터 웨어하우징과 비즈니스 인텔리전스 영역의 메타데이터 통합을 지원한다. OLAP과 데이터 마이닝 모델의 표준 명세를 포함해 데이터 중심 시스템에도 MDA를 적용할 수 있게 한다.
요구사항에서 실행 가능한 코드까지
MDA를 개발 과정에 적용하는 방법은 MDD(Model Driven Development)로 부른다. 업무 요구를 기술 독립 모델로 정리하고, 플랫폼 특화 정보를 더한 뒤 소스코드로 연결한다.
CIM(Computation Independent Model)에서는 시스템 내부 구조보다 비즈니스 요구사항, 업무 도메인의 용어와 규칙을 정의한다. 그다음 PIM에서 운영체제나 프로그래밍 언어와 무관한 시스템 로직을 설계한다. UML은 이 단계에서 비즈니스 엔티티와 흐름을 묘사하는 데 사용된다.
PSM(Platform Specific Model)은 PIM에 특정 타겟 플랫폼의 기술 정보를 반영한 모델이다. Spring Framework나 AWS Lambda 같은 환경의 정보는 UML 프로파일을 통해 매핑할 수 있다. 마지막으로 PSM을 바탕으로 실제 컴파일 가능한 소스코드를 생성한다.
변환 규칙이 자동화의 경계를 정한다
MDA에서 중요한 작업은 모델 변환이다. 모델을 더 상세하게 만들 수도 있고, 기존 구현에서 논리 모델을 다시 추출할 수도 있다.
- PIM to PIM은 추상적인 논리 모델을 더 구체적인 논리 모델로 상세화하는 과정이다. 이 단계에서 비즈니스 규칙을 명확히 한다.
- PIM to PSM은 플랫폼 독립 모델에 기술 종속 정보를 결합해 특정 환경에서 실행 가능한 형태로 옮기는 과정이다. MDA에서 가장 전형적인 변환 단계다.
- PSM to PSM은 생성된 플랫폼 종속 모델에 라이브러리 참조나 최적화 정보를 추가해 구현 완성도를 높인다.
- PSM to PIM은 기존 시스템의 PSM에서 플랫폼 정보를 제거하고 논리적 로직을 추출하는 과정이다. 리엔지니어링(Re-engineering)이나 레거시 현대화에 활용한다.
설계 자산으로 남기기 위한 조건
MDA를 적용하면 개발자가 단순 코딩보다 비즈니스 로직 설계에 집중할 수 있고, 이는 소프트웨어 품질 향상과 유지보수 비용 절감으로 이어진다. PIM을 보유하면 기술 트렌드 변화에 맞춰 차세대 시스템으로 전환할 때 설계 자산을 활용할 수 있다.
다만 모델을 그리는 것만으로 구현 자동화가 보장되지는 않는다. 초기 학습 곡선이 높고, 정교한 코드 제너레이터와 메타모델 정의 역량이 필요하다. 표준을 엄격히 준수하고 변환 규칙을 명확히 정해야 모델 중심 개발이 실제 구현 자동화로 이어진다.