FAQ
본 부록은 AnyLink 사용 중 자주 발생하는 질문과 그에 대한 답변을 각 챕터별로 정리한 FAQ입니다. 각 항목을 통해 문제 해결 방법이나 참고 정보를 빠르게 확인할 수 있습니다.
개발 개요
-
업무 그룹과 거래그룹의 차이는 무엇인가요?
업무 그룹은 최상위 관리 단위로, 하나의 업무 시스템 또는 비즈니스 영역(도메인)을 대표합니다. 거래그룹은 프로젝트 내에서 관련 거래들을 묶어 관리하는 단위입니다.
-
리소스를 수정한 후 바로 적용되나요?
아니요. 수정한 리소스는 저장 후 배포해야 엔진에 적용됩니다. 저장만 하면 마스터 DB에만 반영되고, 배포해야 실제 엔진에서 사용됩니다.
-
플로우나 메시지를 개별 배포할 수 있나요?
아니요. 배포는 거래 또는 거래그룹 단위로만 가능합니다. 플로우, 메시지 등 개별 리소스만 선택하여 배포할 수는 없습니다.
워크스페이스
-
리소스를 삭제하면 복구할 수 있나요?
삭제된 리소스는 복구할 수 없습니다. 삭제 전 확인 대화상자에서 신중하게 결정하세요.
-
저장과 배포의 차이점은 무엇인가요?
저장은 마스터 DB에만 변경사항을 반영합니다. 배포는 저장된 리소스를 엔진에 적용하여 실제로 사용할 수 있게 합니다.
-
여러 탭을 동시에 저장할 수 있나요?
현재는 각 탭에서 개별적으로 저장해야 합니다. 각 탭의 [저장] 버튼을 클릭하세요.
거래
-
거래와 거래그룹의 차이점은 무엇인가요?
거래그룹은 여러 거래를 논리적으로 묶는 컨테이너이고, 거래는 실제 비즈니스 트랜잭션을 정의합니다. 거래그룹은 파싱룰을 공유하고, 거래는 실제 메시지 처리 로직을 가집니다.
-
서비스 타입을 나중에 변경할 수 있나요?
네. 서비스 타입은 편집 모드에서 변경할 수 있습니다. 단, 연결된 플로우나 아웃바운드 룰 설정은 초기화됩니다.
-
하나의 거래에 여러 플로우를 연결할 수 있나요?
아니요. 하나의 거래에는 하나의 플로우만 연결할 수 있습니다. 복잡한 분기 로직이 필요하면 플로우 내에서 게이트웨이 노드를 이용하세요.
거래그룹
-
거래그룹을 중첩할 수 있나요?
네. 거래그룹은 여러 단계로 중첩할 수 있습니다. 이를 통해 대규모 시스템을 체계적으로 관리할 수 있습니다.
-
파싱룰을 설정하지 않으면 어떻게 되나요?
파싱룰을 '사용 안 함’으로 설정하면 거래 식별 코드 없이 직접 거래를 식별해야 합니다. 이 경우 엔드포인트와 거래를 직접 연결하여 사용합니다.
-
여러 프로토콜을 지원하는 거래그룹은 어떻게 설정하나요?
거래그룹은 하나의 파싱룰만 가질 수 있습니다. 여러 프로토콜을 지원하려면 프로토콜별로 별도의 거래그룹을 생성하는 것을 권장합니다.
메시지
-
하나의 메시지를 여러 거래에서 사용할 수 있나요?
네. 메시지는 여러 거래에서 재사용할 수 있습니다. 공통 메시지 구조는 별도로 정의하여 재사용하는 것을 권장합니다.
-
null 값은 어떻게 처리되나요?
JSON 메시지는 값이 null로 표현됩니다. XML 메시지는
nillable설정에 따라xsi:nil속성으로 표현되거나 해당 요소가 생략됩니다. Fixed-Length 메시지는 공백 또는 기본값으로 채워집니다.
서비스 플로우
-
플로우에서 외부 시스템을 호출하려면 어떻게 하나요?
아웃바운드 룰 타입의 액티비티를 추가하고, 미리 정의한 아웃바운드 룰을 연결합니다. 자세한 내용은 아웃바운드 룰을 참고합니다.
-
병렬로 여러 시스템을 호출하려면 어떻게 하나요?
AND 게이트웨이로 분기한 후, 각 경로에 아웃바운드 룰 액티비티를 배치합니다. 모든 호출이 완료되면 AND 게이트웨이로 결합합니다.
-
조건에 따라 다른 로직을 실행하려면 어떻게 하나요?
XOR 게이트웨이를 사용하여 분기하고 각 연결선에 조건식을 설정합니다.
-
플로우 실행 중 오류가 발생하면 어떻게 되나요?
기본적으로 오류가 발생하면 플로우 실행이 중단됩니다. 오류 처리가 필요하면 거래 설정에서 오류 메시지를 정의합니다.
-
조인 게이트웨이에서는 모든 경로를 기다리나요?
Join AND 게이트웨이는 모든 분기 경로가 완료될 때까지 대기합니다. Join OR 게이트웨이는 실행된 경로만 대기합니다.
아웃바운드 룰
-
아웃바운드 룰과 엔드포인트의 차이점은 무엇인가요?
엔드포인트는 연결 정보(주소, 포트 등)를 정의하고, 아웃바운드 룰은 해당 엔드포인트를 통해 어떤 작업을 수행할지 정의합니다. 하나의 엔드포인트에 여러 아웃바운드 룰을 연결할 수 있습니다.
-
아웃바운드 룰을 플로우 없이 직접 사용할 수 있나요?
네. 거래의 서비스 유형을 '아웃바운드 룰’로 설정하면 플로우 없이 직접 아웃바운드 룰을 호출할 수 있습니다.
-
여러 외부 시스템을 순차적으로 호출하려면 어떻게 하나요?
서비스 플로우를 사용하여 여러 아웃바운드 룰 액티비티를 순차적으로 배치합니다.
-
타임아웃이 발생하면 어떻게 되나요?
타임아웃 발생 시 예외가 발생하고 플로우 실행이 중단됩니다.
매핑
배치 룰
-
배치 룰과 아웃바운드 룰의 차이점은 무엇인가요?
아웃바운드 룰은 단일 요청-응답 처리에 사용되고, 배치 룰은 대용량 파일의 레코드 단위 일괄 처리에 사용됩니다.
-
대용량 파일을 처리할 때 메모리 문제가 발생하지 않나요?
레코드 단위로 스트리밍 처리하므로 전체 파일을 메모리에 로드하지 않습니다.
-
FILE 스타일은 언제 지원되나요?
현재 FTP 스타일만 지원됩니다. FILE 스타일은 향후 버전에서 지원 예정입니다.
-
FILE_CODE 매핑을 설정하지 않으면 어떻게 되나요?
FILE_CODE 매핑은 필수입니다. 설정하지 않으면 저장 시 "File Code 매핑은 필수 입니다." 오류가 발생합니다.
커스텀 액티비티
-
커스텀 액티비티에서 외부 라이브러리를 사용할 수 있나요?
클래스 패스에 포함된 라이브러리만 사용할 수 있습니다. 추가 라이브러리가 필요하면 엔진 배포 시 포함해야 합니다.
-
커스텀 액티비티의 실행 시간 제한이 있나요?
기본 타임아웃은 30초입니다. 액티비티 타임아웃 옵션을 통해 변경할 수 있습니다.
-
컴파일 오류가 발생하면 어떻게 되나요?
코드 저장 시 컴파일이 수행되며, 컴파일 오류가 있으면 저장이 실패하고 오류 메시지가 표시됩니다.
-
initialize()및cleanup()메소드는 언제 사용하나요?initialize()는 액티비티 실행 전 리소스를 초기화하거나 구성 정보를 로드할 때 사용합니다.cleanup()은 액티비티 실행 후 리소스 해제에 사용하며, 예외 발생 시에도 호출됩니다.