LemonTree를 활용한 Enterprise Architect 데이터 버전 관리

min Read

버전 관리

소프트웨어 및 시스템 설계를 위한 대표적인 모델링 도구로는 SPARX SYSTEMS의 Enterprise Architect (이하EA)가 있습니다.

EA는 가장 널리 사용되는 모델링 솔루션 중 하나로, UML(Unified Modeling Language), SysML(Systems Modeling Language), BPMN(Business Process Model and Notation) 등의 다양한 표준을 지원하며, 시스템 설계, 아키텍처 모델링, 비즈니스 프로세스 설계 등 다양한 영역에서 활용됩니다.

EA가 널리 사용되는 가장 큰 이유는 강력한 모델링 기능을 제공하면서도, 타 제품에 비해 비교적 합리적인 가격 정책을 유지하고 있기 때문입니다. 이 덕분에 스타트업부터 대기업, 정부 기관 및 연구소까지 폭넓은 사용자층을 확보하고 있으며, 소프트웨어 개발 뿐만 아니라 임베디드 시스템, 자동차 산업, 금융, 방위산업 등 다양한 분야에서도 활용되고 있습니다.

그러나 EA 모델링 데이터는 일반적인 소스 코드와는 다른 특성을 가지며, 이에 따라 버전 관리 와 병합(Merge) 과정에서 여러 가지 어려움이 발생할 수 있습니다.
EA 모델은 일반적으로 하나의 단일 파일(eap, feap, qea 등) 형태로 관리되므로, VCS(Version Control System)를 활용하여 버전 관리를 수행하기가 쉽지 않습니다.

또한, 팀 단위로 협업할 경우 각각의 팀원이 모델을 수정한 뒤 이를 병합해야 하는데, EA 자체적으로 충돌 해결 기능이 미흡하여 수작업으로 조정해야 하는 번거로움이 발생할 수 있습니다.

기존의 해결 방법으로는 형상 관리 시스템이나 데이터베이스 저장소를 활용하여 협업하는 방식이 있지만, 이 또한 설정과 유지보수에 대한 부담이 크며, 여러 팀원이 동시에 작업할 경우 충돌이 자주 발생할 수 있습니다

버전 관리

LemonTree는 이러한 한계를 극복하고, 보다 체계적인 모델 관리와 원활한 협업을 지원하는 도구입니다. 

기존의 파일 기반 모델 관리 방식과 달리, LemonTree는 EA 모델을 개별 요소 단위로 분석하고 비교하여, 보다 세밀한 버전 관리가 가능하도록 지원합니다. 이 기능을 통해 팀원들이 각각의 모델 변경 사항을 보다 정확하게 추적하고, 병합 과정에서 발생할 수 있는 충돌을 최소화할 수 있습니다.

그럼 지금부터, LemonTree가 제공하는 주요 기능을 하나씩 살펴보겠습니다.

1. Compare (Diff) versions

두 개의 EA 모델을 비교하여 변경 사항을 시각적으로 확인할 수 있습니다. 변경된 요소, 추가된 요소, 삭제된 요소를 색상으로 구분하여 쉽게 식별할 수 있으며, UML 모델 뿐만 아니라 속성 및 태그까지 비교할 수 있습니다. 또한 Two-way 비교 방식과 Three-way 비교 방식을 모두 지원하여, 다양한 협업 및 버전 관리 시나리오에서 효과적으로 활용할 수 있습니다.

두 개의 EA 모델을 비교하여 원본과 변경된 모델 간의 차이를 분석할 수 있습니다. 이 과정에서 추가, 삭제, 변경된 요소를 식별하여 비교할 수 있습니다.

버전 관리

기준 모델을 포함하여 세 개의 EA 모델을 비교하는 방식입니다. 기준 모델과 두 개의 변경된 모델을 비교하여 차이점을 분석할 수 있습니다.

버전 관리

2. Merge of model parts

두 개의 EA 모델을 비교하여 변경 사항을 시각적으로 확인할 수 있습니다. 변경된 요소, 추가된 요소, 삭제된 요소를 색상으로 구분하여 쉽게 식별할 수 있으며, UML 모델 뿐만 아니라 속성 및 태그까지 비교할 수 있습니다. 또한 Two-way 비교 방식과 Three-way 비교 방식을 모두 지원하여, 다양한 협업 및 버전 관리 시나리오에서 효과적으로 활용할 수 있습니다.

원본 모델과 변경된 모델을 비교하여 병합하는 방식입니다. 실제 Diff 화면과 달리 Merge Target 화면이 추가 제공되며, 병합 결과를 시각적으로 미리 확인할 수 있습니다. 병합을 진행하면 적용된 변경 사항이 새로운 모델로 저장되며, 변경 이력이 반영됩니다.

Three-way Merge는 기준 모델과 그로부터 파생된 두 개의 모델을 병합할 때 사용됩니다. 특히 Base 모델을 기준으로 두 개의 모델에서 변경된 부분이 서로 충돌하지 않는 경우, 자동으로 병합이 수행됩니다. 그러나 Base 모델의 동일한 부분을 두 개의 모델이 다르게 수정한 경우, 충돌이 발생하며 사용자가 직접 수동 병합을 수행해야 합니다.
LemonTree는 이러한 충돌을 시각적으로 표시하며, 사용자는 “Take” 버튼을 이용해 원하는 변경 사항을 선택하여 간편하게 병합할 수 있습니다

3. Breakdown into individual components

더 나아가 LemonTree는 기존 VCS 클라이언트의 Diff/Merge 도구를 대체하여, EA 모델 전용 Diff/Merge 도구로 활용할 수 있습니다.

기존의 VCS(예: Git, SVN 등)에서는 소스 코드 기반의 Diff/Merge 기능을 제공하지만, EA 모델과 같은 구조화된 다이어그램 기반 데이터의 변경 사항을 정확하게 비교하고 병합하는 데에는 한계가 있었습니다.

LemonTree는 이러한 문제를 해결하여 EA 모델의 구조적 변경 사항을 시각적으로 비교하고, 요소별 차이를 분석할 수 있도록 지원합니다. 특히 UML 다이어그램, 속성(Property), 태그(Tag) 등 모델의 모든 세부 요소를 분석하여, 변경된 부분을 색상으로 구분하여 표시합니다. 사용자는 단순히 모델 파일의 차이만 확인하는 것이 아니라, 어떤 요소가 추가되거나 삭제되었는지, 또는 속성 값이 어떻게 변경되었는지를 직관적으로 파악할 수 있습니다.

또한 LemonTree는 Git과 같은 버전 관리 시스템과 원활하게 연동되어, 분산된 환경에서도 EA 모델을 효과적으로 관리할 수 있도록 돕습니다. 사용자는 각 버전의 변경 사항을 비교하고 다른 개발자의 수정 내용을 병합하여 적용할 수 있으며, 충돌이 발생한 경우 이를 시각적으로 확인하고 직접 해결할 수도 있습니다.

4. Replace Your Git Diff/Merge Tool with LemonTree

더 나아가 LemonTree는 기존 VCS 클라이언트의 Diff/Merge 도구를 대체하여 EA 모델 전용 Diff/Merge 도구로 활용할 수 있습니다. 사용자는 EA 모델을 VCS와 연동하여 협업할 수 있으며, 각 버전의 변경 사항을 비교(Diff)하고, 다른 개발자의 수정 내용을 병합(Merge)하여 적용할 수 있도록 지원합니다.

5. Reusable Components with LemonTree

LemonTree Add-in을 활용하면 EA 내에서 Git과의 연동을 더욱 직관적이고 편리하게 사용할 수 있습니다. 기존에는 별도의 버전 관리 시스템에서 Git을 설정하고 명령어를 사용해야 했다면, LemonTree Add-in을 통해 EA 환경 내에서 직접 Git 기능을 실행할 수 있어 개발자와 모델러의 작업 효율이 크게 향상됩니다. 브랜치 생성, 변경 사항 커밋, 모델 비교 및 병합 등의 Git 기능을 EA에서 간편하게 수행할 수 있으며, 팀원 간 협업이 더욱 원활해집니다.

또한 LemonTree Components를 활용하면 EA 모델을 개별 컴포넌트 단위로 쉽게 추출하고 재사용할 수 있습니다. 일반적으로 EA 모델은 하나의 큰 단일 파일로 관리되기 때문에 특정 부분만 따로 분리하여 공유하거나 재사용하는 것이 어렵지만, LemonTree Components를 사용하면 필요한 모델 요소를 손쉽게 모듈화하여 다양한 프로젝트에서 재활용할 수 있습니다. 이 기능을 통해 모델의 일관성을 유지하면서도 중복 작업을 최소화할 수 있으며, 변경 사항이 있을 경우 특정 컴포넌트만 업데이트할 수 있어 보다 체계적인 모델 관리가 가능합니다.

결과적으로 LemonTree Add-in과 LemonTree Components를 활용하면 EA 모델의 버전 관리, 협업, 재사용성을 극대화할 수 있으며, 모델 개발 프로세스를 보다 효율적으로 운영할 수 있습니다.

지금까지 Enterprise Architect(EA)의 모델 관리에서 발생하는 주요 문제점과 이를 해결하는 LemonTree의 기능에 대해 살펴보았습니다. EA는 강력한 모델링 도구이지만, 버전 관리 및 병합 과정에서의 한계로 인해 협업 시 많은 어려움이 발생할 수 있습니다.
LemonTree는 EA 모델을 보다 체계적으로 비교하고 병합할 수 있도록 지원하며, Git과 같은 버전 관리 시스템과 연동하여 더욱 효율적인 협업 환경을 제공합니다. 특히 모델을 개별 요소 단위로 관리하고 Two-way 및 Three-way 병합 기능을 통해 충돌을 쉽게 해결하여, 대규모 프로젝트에서도 강력한 성능을 발휘합니다. Lemontree를 활용하면 이제 EA 모델 관리도 코드 관리처럼 보다 정확하고 체계적인 방식으로 운영할 수 있습니다.
LemonTree를 활용하여 더 스마트한 협업 환경을 구축하고, 모델 변경 사항을 더욱 효과적으로 추적해 보세요.

DevOps 환경에서 EA 모델 관리를 혁신하는 LemonTree

더 정확한 비교, 더 쉬운 병합! LemonTree로 EA 모델을 체계적으로 관리해 보세요. 

Subscribe to
SLEXN NEWSLETTER

개인정보 수집 및 이용

뉴스레터 발송을 위한 최소한의 개인정보를 수집하고 이용합니다. 수집된 정보는 발송 외 다른 목적으로 이용되지 않으며, 서비스가 종료되거나 구독을 해할 경우 즉시 파기됩니다.

SOLUTION

Tags

Category

Most Commented Posts