데이터 매핑 패턴 적용하기

Altova MapForce는 강력한 매핑 기능을 제공하며, 다양한 디자인 패턴을 지원합니다 데이터 변환 요구사항을 분석하고, 데이터 매핑 과제를 사전에 파악하며, 몇 가지 간단한 지침을 따르면 다음과 같은 결과를 얻을 수 있습니다 데이터 매핑 데이터 매핑 디자인을 간소화하고 최적의 솔루션을 얻는 데 도움이 되는 다양한 패턴들이 있습니다. "MapForce 예제" 프로젝트는 일반적인 데이터 매핑 패턴을 보여주는 샘플 매핑 파일과 데이터 세트를 제공합니다. 이러한 예제를 살펴보고 MapForce 내장 실행 엔진을 사용하여 실행하는 것은, 자신의 프로젝트에 가장 적합한 패턴을 선택하는 데 또 다른 좋은 방법입니다.

정확한 매칭 vs. 조건부 매칭

먼저, 입력과 출력 간에 정확히 일대일 관계가 있는지, 아니면 "시작-종료" 범위와 같은 더 복잡한 조건이나 "만약-그렇다면" 구문과 같은 분석이 필요한지 확인해야 합니다.

정확 일치 기능은 간단한 두 열로 구성된 표를 사용하여 사용자의 요구사항을 표현할 수 있도록 해줍니다. 알고리즘은 "왼쪽 열에서 주어진 입력 값과 정확히 일치하는 값을 찾고, 해당 행의 오른쪽 열에 있는 값을 사용합니다." 주의할 점은 왼쪽 열의 항목은 모두 고유해야 하지만, 오른쪽 열에는 중복된 값이 있을 수 있습니다.

정확한 매칭의 예로는, 월 이름을 숫자로 변환하거나, ISBN(국제표준도서번호)을 도서 제목으로 변환하는 경우가 있습니다.

정확히 일치하는 옵션

테이블에 포함된 항목의 수가 일정하고 비교적 적을 경우 (예를 들어 20개 이하, 또는 예외적인 경우 최대 200개 정도)에는 값 매핑(value-map) 컴포넌트를 사용하십시오. 일반적인 예로는 월 이름을 숫자로 변환하거나, 코드를 다른 코드로 변환하는 경우가 있습니다 (예: "F"를 "XX"로, "M"을 "XY"로 변환).

값 매핑(value-map) 컴포넌트의 입력 및 결과 열 이름을 변경할 수도 있습니다. 값 매핑 속성 대화 상자에서 "input" 또는 "result"라는 이름(또는 펜 아이콘)을 두 번 클릭하거나 클릭한 후 입력을 시작하면 됩니다. 이렇게 하면 매핑 과정에서 여러 개의 값 매핑 컴포넌트의 용도를 쉽게 파악할 수 있습니다.

"MapArticle.mfd" 예제는 값 매핑(value-map) 컴포넌트의 사용 방법을 보여줍니다.

때때로 저희에게 "알 수 없는 입력 값을 변경 없이 출력으로 전달하는 설정이 왜 없는가?"라는 질문을 받습니다. 그 이유는 입력과 출력의 데이터 유형이 서로 다를 경우, 위에서 보여드린 것처럼 정수를 문자열로 변환하는 경우처럼, 그러한 기능이 제대로 작동하지 않기 때문입니다.

여기서 해결책은 "Otherwise" 옵션을 선택하지 않은 상태로 두는 것입니다 (알 수 없는 입력에 대한 값 매핑은 빈 시퀀스를 반환하게 됩니다). 그런 다음, 핵심 함수 라이브러리에 있는 "substitute-missing" 노드 함수를 출력 단계에서 사용하여 빈 시퀀스를 원래 입력 값으로 대체합니다.

더 큰 참조 테이블

많은 양의 데이터나 자주 변경되는 참조 테이블의 경우, 데이터베이스 조회가 가장 효과적인 해결책입니다. 이는 참조 테이블의 실제 값들이 매핑 과정에 직접 포함되는 것이 아니라 데이터베이스에 저장된다는 의미입니다. 이 방식을 구현하려면 매핑에 데이터베이스 구성 요소와 SQL-WHERE 구문을 추가해야 합니다. DB_PhoneList.mfd 예제는 이러한 전략을 보여줍니다.

데이터베이스를 사용할 수 없거나 데이터의 양이 많지 않은 경우, XML이나 CSV와 같은 다른 구성 요소와 필터 구성 요소를 사용할 수도 있습니다. 이는 예제 파일인 "CompletePO.mfd"에서 두 번 사용된 방식입니다. 하지만 이 방법은 WHERE 절을 사용하는 데이터베이스를 사용하는 것보다 실행 속도가 느릴 수 있습니다.

일부 요구사항의 경우, 값을 조회하기 위해 웹 서비스를 호출해야 할 수도 있습니다. "BookISBNConvertWS.mfd" 및 "CurrencyConverter.mfd" 예제는 웹 서비스를 사용하여 값을 조회하는 방법을 보여줍니다.

조건부 매칭

정확한 일치 외에 입력 값의 범위를 확인하는 등 더 복잡한 조건을 사용해야 하는 경우, "ClassifyTemperatures.mfd" 예제에서 볼 수 있듯이 if-else 컴포넌트를 사용하십시오.

"if-else" 구성 요소에서 빨간색 "+" 기호는 추가적인 테스트를 추가할 수 있도록 해줍니다. 각 테스트는 서로 다른 논리 함수를 기반으로 합니다. "otherwise" 입력란을 사용하면 어떤 논리 테스트도 참이 되지 않는 경우의 결과를 정의할 수 있습니다.

복잡한 매핑과 구성 요소 재사용

데이터 변환 요구 사항이 여러 입력과 출력을 포함하는 경우, 단일 매핑 내에서 여러 개의 값 매핑 및 조건부 로직 구성 요소를 쉽게 추가할 수 있습니다.

위에 설명된 모든 구성 요소를 복사-붙여넣기 기능을 사용하여 하나의 디자인 내에서 또는 여러 매핑 파일에 걸쳐 중복할 수 있습니다. 또한, 여기에 설명된 모든 솔루션을 사용자 정의 함수로 감싸서 재사용할 수 있습니다. 사용자가 정의한 함수를 사용자 함수 라이브러리에 저장하여 다른 프로젝트에서 나중에 활용하거나 동료들과 공유할 수 있습니다.

직접 MapForce의 데이터 매핑 기능을 활용하여 데이터 변환 프로젝트를 얼마나 쉽게 수행할 수 있는지 확인해 보세요! 30일 무료 체험판을 다운로드하세요 MapForce의.