FAQ

본 부록은 AnyLink 사용 중 자주 발생하는 질문과 그에 대한 답변을 각 챕터별로 정리한 FAQ입니다. 각 항목을 통해 문제 해결 방법이나 참고 정보를 빠르게 확인할 수 있습니다.

개발 개요

  1. 업무 그룹과 거래그룹의 차이는 무엇인가요?

    업무 그룹은 최상위 관리 단위로, 하나의 업무 시스템 또는 비즈니스 영역(도메인)을 대표합니다. 거래그룹은 프로젝트 내에서 관련 거래들을 묶어 관리하는 단위입니다.

  2. 리소스를 수정한 후 바로 적용되나요?

    아니요. 수정한 리소스는 저장 후 배포해야 엔진에 적용됩니다. 저장만 하면 마스터 DB에만 반영되고, 배포해야 실제 엔진에서 사용됩니다.

  3. 플로우나 메시지를 개별 배포할 수 있나요?

    아니요. 배포는 거래 또는 거래그룹 단위로만 가능합니다. 플로우, 메시지 등 개별 리소스만 선택하여 배포할 수는 없습니다.

워크스페이스

  1. 리소스를 삭제하면 복구할 수 있나요?

    삭제된 리소스는 복구할 수 없습니다. 삭제 전 확인 대화상자에서 신중하게 결정하세요.

  2. 저장과 배포의 차이점은 무엇인가요?

    저장은 마스터 DB에만 변경사항을 반영합니다. 배포는 저장된 리소스를 엔진에 적용하여 실제로 사용할 수 있게 합니다.

  3. 여러 탭을 동시에 저장할 수 있나요?

    현재는 각 탭에서 개별적으로 저장해야 합니다. 각 탭의 [저장] 버튼을 클릭하세요.

거래

  1. 거래와 거래그룹의 차이점은 무엇인가요?

    거래그룹은 여러 거래를 논리적으로 묶는 컨테이너이고, 거래는 실제 비즈니스 트랜잭션을 정의합니다. 거래그룹은 파싱룰을 공유하고, 거래는 실제 메시지 처리 로직을 가집니다.

  2. 서비스 타입을 나중에 변경할 수 있나요?

    네. 서비스 타입은 편집 모드에서 변경할 수 있습니다. 단, 연결된 플로우나 아웃바운드 룰 설정은 초기화됩니다.

  3. 하나의 거래에 여러 플로우를 연결할 수 있나요?

    아니요. 하나의 거래에는 하나의 플로우만 연결할 수 있습니다. 복잡한 분기 로직이 필요하면 플로우 내에서 게이트웨이 노드를 이용하세요.

거래그룹

  1. 거래그룹을 중첩할 수 있나요?

    네. 거래그룹은 여러 단계로 중첩할 수 있습니다. 이를 통해 대규모 시스템을 체계적으로 관리할 수 있습니다.

  2. 파싱룰을 설정하지 않으면 어떻게 되나요?

    파싱룰을 '사용 안 함’으로 설정하면 거래 식별 코드 없이 직접 거래를 식별해야 합니다. 이 경우 엔드포인트와 거래를 직접 연결하여 사용합니다.

  3. 여러 프로토콜을 지원하는 거래그룹은 어떻게 설정하나요?

    거래그룹은 하나의 파싱룰만 가질 수 있습니다. 여러 프로토콜을 지원하려면 프로토콜별로 별도의 거래그룹을 생성하는 것을 권장합니다.

메시지

  1. 하나의 메시지를 여러 거래에서 사용할 수 있나요?

    네. 메시지는 여러 거래에서 재사용할 수 있습니다. 공통 메시지 구조는 별도로 정의하여 재사용하는 것을 권장합니다.

  2. null 값은 어떻게 처리되나요?

    JSON 메시지는 값이 null로 표현됩니다. XML 메시지는 nillable 설정에 따라 xsi:nil 속성으로 표현되거나 해당 요소가 생략됩니다. Fixed-Length 메시지는 공백 또는 기본값으로 채워집니다.

서비스 플로우

  1. 플로우에서 외부 시스템을 호출하려면 어떻게 하나요?

    아웃바운드 룰 타입의 액티비티를 추가하고, 미리 정의한 아웃바운드 룰을 연결합니다. 자세한 내용은 아웃바운드 룰을 참고합니다.

  2. 병렬로 여러 시스템을 호출하려면 어떻게 하나요?

    AND 게이트웨이로 분기한 후, 각 경로에 아웃바운드 룰 액티비티를 배치합니다. 모든 호출이 완료되면 AND 게이트웨이로 결합합니다.

  3. 조건에 따라 다른 로직을 실행하려면 어떻게 하나요?

    XOR 게이트웨이를 사용하여 분기하고 각 연결선에 조건식을 설정합니다.

  4. 플로우 실행 중 오류가 발생하면 어떻게 되나요?

    기본적으로 오류가 발생하면 플로우 실행이 중단됩니다. 오류 처리가 필요하면 거래 설정에서 오류 메시지를 정의합니다.

  5. 조인 게이트웨이에서는 모든 경로를 기다리나요?

    Join AND 게이트웨이는 모든 분기 경로가 완료될 때까지 대기합니다. Join OR 게이트웨이는 실행된 경로만 대기합니다.

아웃바운드 룰

  1. 아웃바운드 룰과 엔드포인트의 차이점은 무엇인가요?

    엔드포인트는 연결 정보(주소, 포트 등)를 정의하고, 아웃바운드 룰은 해당 엔드포인트를 통해 어떤 작업을 수행할지 정의합니다. 하나의 엔드포인트에 여러 아웃바운드 룰을 연결할 수 있습니다.

  2. 아웃바운드 룰을 플로우 없이 직접 사용할 수 있나요?

    네. 거래의 서비스 유형을 '아웃바운드 룰’로 설정하면 플로우 없이 직접 아웃바운드 룰을 호출할 수 있습니다.

  3. 여러 외부 시스템을 순차적으로 호출하려면 어떻게 하나요?

    서비스 플로우를 사용하여 여러 아웃바운드 룰 액티비티를 순차적으로 배치합니다.

  4. 타임아웃이 발생하면 어떻게 되나요?

    타임아웃 발생 시 예외가 발생하고 플로우 실행이 중단됩니다.

매핑

외부 매핑

  1. 배열의 모든 요소를 매핑하려면 어떻게 하나요?

    현재는 특정 인덱스의 요소만 매핑할 수 있습니다. 배열 전체를 매핑할 때는 커스텀 액티비티를 사용합니다.

  2. 매핑 중 오류가 발생하면 어떻게 되나요?

    타입 변환 실패 등의 오류 발생 시 예외가 발생하고 플로우 실행이 중단됩니다.

  3. 여러 소스 필드를 같은 타깃 필드에 매핑하면 어떻게 되나요?

    규칙 목록에서 마지막에 정의된 규칙의 값으로 덮어쓰기됩니다. 의도치 않은 결과가 발생할 수 있으므로 하나의 타깃 필드에는 하나의 규칙만 매핑하는 것을 권장합니다.

내부 매핑

  1. 내부 매핑과 외부 매핑 중 어떤 것을 선택해야 하나요?

    동일한 매핑 규칙을 여러 플로우에서 사용해야 한다면 외부 매핑을 선택합니다. 특정 플로우에서만 사용하는 일회성 매핑이라면 내부 매핑이 간편합니다.

  2. 하나의 내부 매핑에서 여러 소스/타깃을 사용할 수 있나요?

    네. 파라미터 설정에서 여러 소스 변수와 타깃 변수를 추가할 수 있습니다.

배치 룰

  1. 배치 룰과 아웃바운드 룰의 차이점은 무엇인가요?

    아웃바운드 룰은 단일 요청-응답 처리에 사용되고, 배치 룰은 대용량 파일의 레코드 단위 일괄 처리에 사용됩니다.

  2. 대용량 파일을 처리할 때 메모리 문제가 발생하지 않나요?

    레코드 단위로 스트리밍 처리하므로 전체 파일을 메모리에 로드하지 않습니다.

  3. FILE 스타일은 언제 지원되나요?

    현재 FTP 스타일만 지원됩니다. FILE 스타일은 향후 버전에서 지원 예정입니다.

  4. FILE_CODE 매핑을 설정하지 않으면 어떻게 되나요?

    FILE_CODE 매핑은 필수입니다. 설정하지 않으면 저장 시 "File Code 매핑은 필수 입니다." 오류가 발생합니다.

커스텀 액티비티

  1. 커스텀 액티비티에서 외부 라이브러리를 사용할 수 있나요?

    클래스 패스에 포함된 라이브러리만 사용할 수 있습니다. 추가 라이브러리가 필요하면 엔진 배포 시 포함해야 합니다.

  2. 커스텀 액티비티의 실행 시간 제한이 있나요?

    기본 타임아웃은 30초입니다. 액티비티 타임아웃 옵션을 통해 변경할 수 있습니다.

  3. 컴파일 오류가 발생하면 어떻게 되나요?

    코드 저장 시 컴파일이 수행되며, 컴파일 오류가 있으면 저장이 실패하고 오류 메시지가 표시됩니다.

  4. initialize()cleanup() 메소드는 언제 사용하나요?

    initialize()는 액티비티 실행 전 리소스를 초기화하거나 구성 정보를 로드할 때 사용합니다. cleanup()은 액티비티 실행 후 리소스 해제에 사용하며, 예외 발생 시에도 호출됩니다.

배포

  1. 배포와 재배포의 차이점은 무엇인가요?

    최초 배포는 리소스를 처음으로 엔진에 등록하는 것이고, 재배포는 이미 배포된 리소스를 수정한 후 다시 배포하는 것입니다. 재배포 시 버전이 1 증가합니다.

  2. 배포 해제 후 다시 배포하면 버전은 어떻게 되나요?

    배포 해제 후 다시 배포하면 버전이 1 증가합니다. 예를 들어 버전 3에서 배포 해제 후 다시 배포하면 버전 4가 됩니다.