MDA로 설계와 구현을 분리하는 모델 기반 개발

MDA의 메타모델, PIM·PSM, 모델 변환 구조와 OMG 표준 기술, 도입 시 장점과 한계를 정리합니다.

2026-08-14 · 최초 발행 2025-05-23

모델에서 구현으로 이어지는 개발 방식

MDA(Model Driven Architecture)는 OMG(Object Management Group)가 제안한 소프트웨어 개발 방법론이다. 코드 중심으로 개발을 시작하는 대신, 시스템의 명세와 구현을 분리한 모델을 중심에 둔다.

목표는 개발 생산성과 유지보수성을 높이는 데 있다. 모델을 기반으로 코드 생성, 테스트, 문서화 같은 과정을 자동화하고, 플랫폼에 독립적인 설계를 통해 기술 환경의 변화에도 대응할 수 있게 한다.

PIM과 PSM을 연결하는 핵심 개념

MDA에서 메타모델은 모델을 정의하는 모델이다. 모델링 언어가 허용하는 문법, 제약사항, 의미를 규정하며, MOF(Meta Object Facility)를 통해 구조화된다. 일관된 모델링 환경을 제공해 모델 간 상호운용성을 뒷받침한다.

PIM(Platform Independent Model)은 특정 기술이나 플랫폼에 묶이지 않은 비즈니스 모델이다. 비즈니스 로직과 시스템 기능에 집중하며, 클래스·시퀀스·상태 다이어그램 같은 UML 표현을 사용할 수 있다. 요구사항이 바뀌면 PIM을 수정하고 PSM을 다시 생성하는 방식으로 변경을 관리한다.

PSM(Platform Specific Model)은 PIM을 특정 기술 플랫폼에 맞춰 구체화한 모델이다. Java, .NET, 데이터베이스처럼 실제 구현 환경의 특성을 반영하며, 실행 코드 생성의 기반이 된다. 하나의 PIM에서 여러 PSM을 만들어낼 수도 있다.

이 둘 사이를 잇는 것이 모델 변환(Model Transformation)이다. 변환 규칙(Transformation Rules)을 정의해 PIM을 PSM으로, PSM을 코드로 자동 변환한다. QVT(Query/View/Transformation), ATL(Atlas Transformation Language) 등이 이 과정에 사용된다.

요구사항이 최종 애플리케이션이 되기까지

요구사항PIM 개발모델 변환PSM 생성코드 생성최종 애플리케이션메타모델/MOF변환 규칙플랫폼 정의

요구사항을 바탕으로 PIM을 만들고, 변환 규칙과 플랫폼 정의를 적용해 PSM을 생성한다. 이후 PSM은 구현 코드로 이어진다. 메타모델은 PIM 작성과 모델 변환의 공통 기준으로 작동한다.

MDA를 뒷받침하는 표준 기술

MOF는 OMG의 메타모델 프레임워크 표준이다. 다음과 같은 4계층 메타모델 아키텍처를 정의한다.

  • M3: MOF (메타-메타모델)
  • M2: UML, CWM 등 (메타모델)
  • M1: 사용자 모델 (PIM, PSM)
  • M0: 실제 시스템 인스턴스
M3: MOF - 메타-메타모델M2: UML, CWM - 메타모델M1: 사용자 모델 - PIM, PSMM0: 실제 시스템 인스턴스

UML(Unified Modeling Language)은 소프트웨어 시스템을 표현하는 표준 모델링 언어다. 클래스, 시퀀스, 유스케이스 등 다양한 다이어그램을 제공하며, MDA에서는 PIM과 PSM을 나타내는 주요 수단으로 쓰인다. UML 프로파일로 도메인별 확장도 가능하다.

CWM(Common Warehouse Metamodel)은 데이터 웨어하우스와 비즈니스 인텔리전스 영역을 위한 메타모델이다. 데이터 통합·변환·분석에 필요한 표준 규격을 제공하고, 데이터 소스와 변환·분석 도구 사이의 상호운용성을 지원한다.

XMI(XML Metadata Interchange)는 모델 정보를 XML 기반으로 교환하기 위한 표준이다. 서로 다른 모델링 도구 간 모델 교환을 지원하며, 모델 버전 관리와 협업 개발의 기반이 된다. MOF 기반 메타데이터의 직렬화 형식이기도 하다.

변환 규칙을 중심으로 구성하는 개발 과정

개발은 비즈니스 요구사항을 정의하는 단계에서 출발한다. 그 요구사항을 UML로 플랫폼 독립적인 PIM에 담고, PIM을 특정 환경의 PSM으로 바꾸기 위한 변환 규칙을 설정한다.

변환 규칙을 적용해 플랫폼별 모델을 생성한 뒤, PSM에서 실행 코드를 자동 생성한다. 생성된 코드는 테스트를 거쳐 시스템에 배포한다. 이 흐름에서 변환 규칙의 품질은 생성 코드의 일관성과 직접 연결된다.

금융과 IoT 플랫폼에서의 적용

A 은행은 차세대 뱅킹 시스템 개발에 MDA를 적용했다. 비즈니스 로직을 PIM으로 모델링해 변경 관리를 쉽게 하고, 동일한 PIM에서 메인프레임용 COBOL 코드와 웹 애플리케이션용 Java 코드를 동시에 생성했다. 시스템 변경 시 PIM만 수정해 플랫폼별 코드의 일관성을 유지했으며, 개발 기간 30% 단축과 유지보수 비용 40% 절감 효과가 있었다.

B 통신사는 IoT 서비스 플랫폼에 MDA를 도입했다. 다양한 IoT 디바이스와 프로토콜을 PIM에서 추상화하고, 디바이스별 PSM을 자동 생성해 새 기기를 지원했다. 클라우드와 에지 컴퓨팅 환경에 맞춘 코드도 생성했으며, 신규 디바이스 지원 시간은 75% 단축됐다.

모델링과 코드 생성을 지원하는 도구

IBM Rational Software Architect는 UML 기반 모델링과 코드 생성을 지원한다. 변환 규칙을 커스터마이징할 수 있어 엔터프라이즈 애플리케이션 개발에 적합하다.

Eclipse Modeling Framework(EMF)는 오픈소스 모델링 프레임워크다. Ecore 메타모델을 기반으로 모델을 정의하고, Acceleo·Xtend 같은 코드 생성 도구와 통합할 수 있다.

Enterprise Architect는 다양한 모델링 언어를 지원하며 코드 생성과 역공학 기능을 제공한다. 템플릿 기반으로 변환 규칙을 정의할 수 있다.

AndroMDA는 UML 모델에서 여러 플랫폼의 코드를 생성하는 오픈소스 MDA 프레임워크다. 카트리지 시스템으로 확장성을 제공한다.

자동화의 이점과 도입 시 제약

자동화된 코드 생성은 개발 시간을 줄이고, 검증된 변환 규칙은 일관성 있는 코드를 만드는 데 도움이 된다. 기술 환경이 바뀌었을 때 PIM은 유지한 채 변환 규칙을 수정할 수 있으며, 상위 모델을 바꿔 시스템 전체의 일관성을 관리할 수 있다. 모델이 문서 역할을 하므로 별도 문서화 부담도 줄어든다.

반면 메타모델과 변환 규칙을 정의하려면 상당한 초기 투자가 필요하다. 다층 구조는 학습 곡선을 높이고, 모든 비즈니스 로직을 완전히 자동화하기 어려운 변환 규칙의 한계도 있다. 자동 생성 코드가 수작업 코드보다 성능이 떨어질 수 있으며, 특정 MDA 도구에 종속될 위험도 고려해야 한다.

적용 범위를 관리하는 운영 방식

전체 시스템에 한꺼번에 적용하기보다 일부 모듈에서 시작하는 점진적 도입이 적합하다. 호환성을 위해 OMG 표준을 최대한 활용하고, 자주 변경되는 영역의 변환 규칙을 정교하게 다듬을 필요가 있다.

개발자의 모델링 역량을 위한 교육과 자동 생성 코드의 품질 검증 체계도 필요하다. 자동화가 어려운 영역은 수동 코딩을 허용하는 하이브리드 접근으로 다룰 수 있다.

AI와 클라우드 환경으로 확장되는 방향

MDA에는 인공지능 기술을 활용한 지능형 모델 변환이 등장하고 있다. 클라우드 환경에 최적화된 프레임워크, 로우코드·노코드 플랫폼과의 통합, 산업별 메타모델과 변환 규칙의 발전도 이어지고 있다.

물리적 시스템과 디지털 모델을 연결하는 디지털 트윈과의 연계 역시 강화될 전망이다. MDA는 소프트웨어 개발의 추상화 수준을 높이고 자동화를 촉진하며, 복잡한 시스템 개발과 유지보수에서 기술 변화에 대응하면서 비즈니스 가치에 집중할 수 있게 하는 프레임워크다.

MDA모델 기반 개발소프트웨어 아키텍처UML코드 생성