핵심 인사이트 (3줄 요약)

  1. 본질: MDA (Model Driven Architecture)는 코드를 먼저 쓰기보다 모델을 먼저 만들고, 그 모델을 플랫폼 코드로 변환하는 접근이다.
  2. 가치: 비즈니스 로직을 플랫폼에서 분리하면 Java, Spring, .NET 같은 기술이 바뀌어도 핵심 설계를 오래 재사용할 수 있다.
  3. 판단 포인트: CIM, PIM, PSM의 역할을 구분하고, 변환 규칙과 도구의 품질을 함께 봐야 한다.

Ⅰ. 개요 및 등장 배경

소프트웨어는 기술 플랫폼이 자주 바뀌지만, 비즈니스 규칙은 오래 남는다. 이 차이를 줄이기 위해 MDA가 등장했다.

MDA는 UML (Unified Modeling Language) 같은 모델을 먼저 정리하고, 그 모델을 바탕으로 실제 코드를 만들어 내는 방식이다.

  • 📢 섹션 요약 비유: MDA는 집을 바로 짓지 않고 먼저 설계도를 완성한 뒤 공장을 돌리는 방식이다.

Ⅱ. 세 가지 핵심 계층

MDA는 모델을 세 단계로 나눈다.

CIM (Computation Independent Model)
   ↓
PIM (Platform Independent Model)
   ↓
PSM (Platform Specific Model)
   ↓
코드 생성
  • CIM은 업무 관점의 요구사항이다.
  • PIM은 기술을 뺀 논리 모델이다.
  • PSM은 특정 플랫폼에 맞춘 구체 모델이다.

이 구분이 있어야 업무와 기술을 분리해 생각할 수 있다.

  • 📢 섹션 요약 비유: 먼저 무엇을 만들지 정하고, 그다음 어떤 재료로 만들지 고르는 순서다.

Ⅲ. 변환과 코드 생성

MDA의 핵심은 모델 간 변환이다. 도구가 규칙에 따라 PIM을 PSM으로 바꾸고, 최종 코드를 생성한다.

이 과정에서 중요한 것은 변환 규칙(Transformation Rule)이다. 규칙이 잘 정의되어야 같은 모델에서 같은 코드가 안정적으로 나온다.

  • 📢 섹션 요약 비유: 같은 레시피를 넣으면 같은 음식이 나와야 기계가 믿을 만하다.

Ⅳ. 실무 적용과 도구 관점

MDA는 대규모 시스템에서 유지보수와 플랫폼 이식성을 높이고 싶을 때 유용하다.

  • 업무 분석가와 개발자가 같은 모델을 기준으로 대화할 수 있다.
  • 플랫폼이 바뀌어도 모델을 다시 활용할 수 있다.
  • 표준화된 구조가 있으면 문서와 코드의 차이를 줄일 수 있다.

다만 모델만 너무 무겁고 실제 코드 품질이 떨어지면 오히려 개발 속도가 느려질 수 있다.

  • 📢 섹션 요약 비유: 멋진 설계도도 너무 복잡하면 읽기 어려워진다.

Ⅴ. 장점, 한계, 그리고 비교

MDA의 장점은 재사용성과 플랫폼 독립성이다. 반대로 한계는 도구 의존성과 초기 모델링 비용이다.

코드 중심 개발은 빠르게 시작할 수 있지만 기술 변화에 취약하다. MDA는 시작은 무거워도 장기적인 구조를 정리하는 데 유리하다.

  • 📢 섹션 요약 비유: 즉석으로 지은 집은 빨리 완성되지만, 설계도 있는 집은 나중에 고치기 쉽다.

관련 개념 맵

CIM
   ↓
PIM
   ↓
PSM
   ↓
코드 생성 / 유지보수

관련 키워드 및 발전 흐름도

  1. 코드 중심 개발 → 플랫폼 의존성 증가
  2. 모델 중심 사고 → 업무와 기술 분리
  3. CIM / PIM / PSM → 추상화 계층 정립
  4. 변환 도구와 템플릿 → 자동 코드 생성 확산
  5. 모델 주도 엔지니어링 → 대규모 시스템 설계의 표준화 시도

어린이를 위한 3줄 비유 설명

MDA는 그림으로 집을 먼저 그리는 거예요.
그림이 있으면 어떤 재료로 지어도 같은 집을 만들 수 있어요.
그래서 나중에 재료가 바뀌어도 다시 쓰기 쉬워요.