---
title: "데이터 통합 프로젝트를 위한 인터랙티브 디버거"
date: "2015-10-14"
categories: 
  - "data-integration"
  - "tools"
tags: 
  - "data-integration"
  - "data-mapping"
  - "mapforce"
description: MapForce 2016의 데이터 매핑 디버거를 통해 데이터 통합 프로젝트를 단계별로 검토하여 디버깅 과정에서 정확성과 효율성을 향상시킬 수 있습니다.
---
Status: #blog

Tags:  #data-integration #data-mapping #mapforce

Categories: [data-integration](/blog/ko/category/data-integration.md) | [tools](/blog/ko/category/tools.md)
# 데이터 통합 프로젝트를 위한 인터랙티브 디버거

MapForce 2016은 혁신적인 데이터 매핑 디버거를 도입하여, 데이터 통합 프로젝트를 수행하는 개발자들이 데이터 매핑 결과를 단계별로 검토하여 어떤 복잡도의 프로젝트든 문제점을 진단하고 완벽하게 개선할 수 있도록 지원합니다. MapForce의 [데이터 매핑 디버거](https://www.altova.com/ko/mapforce/data-mapping-debugger.html)는 사용자가 데이터 통합 및 ETL 프로젝트의 정확한 작동 방식을 이전에는 불가능했던 방식으로 깊이 있게 파악할 수 있도록 해줍니다.

이 디버거는 모든 MapForce 데이터 매핑 기능을 지원하며, 어떤 조합에도 적용할 수 있습니다 [XML, XBRL, JSON, 데이터베이스, 일반 파일, EDI, 엑셀, 또는 웹 서비스 데이터를 처리합니다](https://www.altova.com/ko/mapforce.html), 다음과 같은 매핑을 포함합니다: 체인 방식으로 연결된 매핑, 여러 입력 또는 출력 구성 요소를 가진 매핑, 그리고 사용자 정의 함수를 포함하는 매핑.

![데이터 매핑 디버거](/blog/images/debug_2.jpg "Data Mapping Debugger")

MapForce 데이터 매핑 디버거는 중단점과 조건부 중단점을 지원하며, 데이터 매핑을 수동으로 디버깅하거나 중단점에 도달한 후에도 실행을 계속할 수 있도록 다양한 수동 실행 옵션을 제공합니다. 이를 통해 사용자는 필요한 만큼 상세한 정보를 확인할 수 있습니다. <!--more-->

MapForce 2016 디버거에 새롭게 추가된 기능과 활용법을 살펴보려면, 샘플 디버깅 과정을 함께 진행해 볼 수 있습니다. 아래 스크린샷은 MapForce 예제 파일에 함께 설치되는 "ClassifyTemperatures"라는 데이터 매핑을 보여줍니다. 이 매핑은 온도와 날짜 목록이 포함된 입력 파일을 읽어 들여, 고온과 저온에 대한 분류 설명을 추가한 출력 파일을 생성합니다.

![데이터 매핑 예시](/blog/images/main-mapping-1.png "Data mapping example")

MapForce 디버거의 중단점 기능은 소스 코드 디버깅 경험이 있는 개발자들에게 익숙할 것입니다. 중단점을 입력 또는 출력 노드 어디에든 설정하여 매핑 실행을 해당 지점에서 일시 중지할 수 있으며, 조건부 중단점 기능도 지원됩니다.

**중단점 설정하기**

디버깅을 위해, 결과 함수(위 이미지 중앙에 위치)의 매핑 부분에 브레이크포인트를 추가할 것입니다. 이를 위해 연결 화살표를 마우스 오른쪽 버튼으로 클릭하면 됩니다. 새로 추가된 브레이크포인트는 빨간색으로 강조 표시됩니다.

![데이터 매핑 디버거에 중단점을 설정합니다](/blog/images/set-breakpoint-3.png "Set a data mapping debugger breakpoint")

동일한 오른쪽 클릭 메뉴를 통해 사용자는 대화 상자를 열어 이를 조건부 중단점으로 설정할 수 있습니다. 함수의 결과는 참(true) 또는 거짓(false) 중 하나가 됩니다. 우리는 중단점을 설정하여 데이터 매핑의 실행이 함수가 "참"을 반환할 때만 중단되도록 할 수 있습니다

![데이터 매핑 디버거, 조건부 중단 기능, 대화 상자](/blog/images/conditional-break-dialog.png "Data mapping debugger conditional break dialog")

**대화형 디버깅 기능**

메뉴 옵션을 선택하면 대화형 디버깅 기능이 시작됩니다

![데이터 매핑 디버그 메뉴](/blog/images/debug-menu.png "Data mapping debug menu")

MapForce 내장 실행 엔진은 매핑 작업을 시작하여 브레이크포인트에 도달하고 해당 조건이 충족될 때까지 계속 진행합니다. 모든 중간 값은 매핑 디자인 화면에서 빨간색으로 표시됩니다. 복잡하고 규모가 큰 매핑의 경우, 중간 값들이 화면에 너무 많이 표시되어 가독성이 떨어질 수 있습니다. 따라서 각 값을 매핑 창 내에서 더 편리한 위치로 이동할 수 있습니다.

강조 표시된 단어 "true"는 실행이 일시 중지되기 전에 마지막으로 생성된 값을 나타냅니다.

![대화형 데이터 매핑 디버거를 사용한 데이터 매핑 예시](/blog/images/main-mapping-2.png "Data mapping example with interactive data mapping debugger")

디버깅 도우미 창은 자동으로 열리며, 실행 과정에서 발생한 모든 것에 대한 자세한 정보를 제공합니다. "컨텍스트" 창은 입력 파일에서 처리된 노드와 실행된 함수에 대한 정보를 보여줍니다.

![데이터 매핑 디버거의 컨텍스트 메뉴](/blog/images/Context_menu-1.png "Data mapping debugger Context Menu")

"data[7]" 항목은 7개의 온도 값이 처리되었음을 나타냅니다.

"히스토리(History) 도우미" 창은 중단점(breakpoint)이 설정된 함수의 모든 실행 결과를 자동으로 표시합니다. 처음 여섯 개의 값에 대해서는 결과가 "거짓(false)"으로 나타났습니다. 일곱 번째 값에 대해 결과가 "참(true)"으로 나타나면서 조건이 충족되었고, 실행이 일시 중지되었습니다.

![데이터 매핑 디버거, 히스토리(이력) 보기](/blog/images/History-capture-1.png "Data mapping debugger History view")

"히스토리" 창은 매우 강력한 기능을 제공합니다. 매핑에서 다른 연결 노드를 선택하면, "히스토리" 창에 해당 노드를 통해 전달된 모든 값의 목록이 표시됩니다. 예를 들어, 아래와 같이 "greater" 함수의 입력 연결을 선택할 수 있습니다

![대체 디버거의 기록 선택](/blog/images/select-for-history-4.png "Alternate debugger History selection")

이제 "히스토리" 창에는 해당 노드를 거쳐 간 모든 값들의 목록이 표시됩니다

![대체 디버거의 기록 보기](/blog/images/History-capture-2.png "Alternate debugger History view")

디버깅 과정에서, 지금까지 생성된 결과를 확인하기 위해 매핑 창과 출력 창을 자유롭게 전환할 수 있습니다. (예시: 위 그림과 같이)

![부분 데이터 매핑 결과 보기](/blog/images/Partial-Output-View.png "Partial Data Mapping Output View")

현재, 우리는 다음과 같은 몇 가지 선택지를 가지고 있습니다

- 디버깅 세션을 중단합니다
- 다음 디버그 중단점까지 실행을 계속합니다
- 디버깅을 계속하면서, 수동으로 단계를 진행하여 중간 값들을 자세히 살펴보세요

디버깅 과정에서 매핑 설계에 오류나 결함이 발견되면, 즉시 중단하고 필요한 경우 매핑을 수정할 수 있습니다. 그런 다음 수정된 버전을 다시 디버깅합니다. 새로운 중단점을 설정하거나, 각 중간 생성 값을 확인하거나, 논리적인 계산 단계를 하나씩 진행하는 수동 모드를 선택할 수 있습니다.

여러 번 단계를 거치면, "high"라는 설명이 if-else 함수에 의해 생성되어 출력 컴포넌트로 전달되는 것을 확인할 수 있습니다.

![데이터 매핑 디버거: 추가적인 수동 작업 후](/blog/images/high-output-5.png "Data mapping debugger after further manual steps")

우리는 몇 번 더 앞으로 나아가 부분적인 결과물을 다시 확인했습니다.

![더욱 상세한 데이터 매핑 결과 보기](/blog/images/Output-2.png "More complete Data Mapping Output View")

이제 원래 고온 측정 결과에 대한 상세 설명이 12번째 줄에 표시되었으며, 추가적인 결과들이 생성되었습니다.

[Altova MapForce](https://www.altova.com/ko/mapforce.html)는 뛰어난 성능을 자랑하는 그래픽 데이터 매핑, 변환 및 통합 도구로, XML, 데이터베이스, EDI, XBRL, 일반 파일, 엑셀, JSON, 그리고 웹 서비스 등 다양한 데이터 형식을 서로 연결하고 변환할 수 있습니다. MapForce의 데이터 매핑 디버거는 시각적인 매핑 디자인 환경을 제공하며, 기존의 대규모 데이터 통합 시스템에 비해 훨씬 저렴한 비용으로 사용할 수 있다는 장점이 있습니다.

**[지금 바로 무료 체험 버전을 다운로드하여 직접 사용해 보세요!](https://www.altova.com/ko/download-trial.html)**
