TCP 어댑터
TCP 어댑터는 TCP 프로토콜 기반의 통신을 담당하는 최상위 컴포넌트입니다.
어댑터 생성
TCP 어댑터의 생성 방법 및 어댑터 공통 설정 항목에 대해서는 어댑터 생성을 참고합니다.
다음은 TCP 어댑터 생성 시 추가 설정이 필요한 항목입니다.
| 항목 | 설명 |
|---|---|
IP 접속 제어 * |
연결을 시도하는 클라이언트를 제어합니다. 어댑터에 지정한 설정은 하위 엔드포인트 그룹, 엔드포인트에서 사용할 수 있습니다.
'특정 IP rule 처리'를 선택한 경우에는 허용할 IP를 등록해야 합니다. |
엔드포인트 그룹 생성
TCP 엔드포인트 그룹은 여러 TCP 엔드포인트를 하나의 그룹으로 묶어 관리할 수 있게 해줍니다.
TCP 엔드포인트 그룹의 생성 방법 및 설정 항목은 엔드포인트 그룹 생성을 참고합니다.
엔드포인트 생성
TCP 엔드포인트는 실제 TCP 통신을 처리하는 최종 컴포넌트입니다.
다음과 같은 메시지 길이 처리 방식을 지원합니다.
-
고정 길이
-
메시지의 특정 값에 따라 길이가 결정되는 방식
-
구분 문자(Delimiter)를 사용하여 메시지의 끝을 구분하는 방식
TCP 엔드포인트는 인바운드 방식과 아웃바운드 방식을 모두 지원하며, 통신 방향에 따라 동작 방식이 달라집니다. 또한 외부 시스템과의 연결 방식에 따라 서버 모드와 클라이언트 모드로 나누어집니다.
다음은 TCP 엔드포인트 생성 화면입니다. TCP 엔드포인트 생성 화면으로 이동하는 방법은 엔드포인트 생성을 참고합니다.
기본 설정
다음은 인바운드 및 아웃바운드 TCP 엔드포인트에 공통으로 적용되는 기본 설정 항목입니다.
| 항목 | 설명 |
|---|---|
엔드포인트 아이디 * |
엔드포인트의 고유 식별자입니다. 영문, 숫자, 언더스코어(_)를 조합하여 2~32자 이내로 입력합니다. |
엔드포인트 이름 |
엔드포인트의 표시 이름을 입력합니다. 미입력 시 아이디 값으로 자동 설정됩니다. |
통신 방향 * |
엔드포인트의 통신 방향을 설정합니다.
|
부팅 초기값 * |
엔드포인트의 초기 실행 상태를 지정합니다.
|
설명 |
엔드포인트에 대한 설명을 입력합니다. |
연결 정보 설정
[연결 정보] 탭에서 TCP 엔드포인트의 연결 방식과 기본 인코딩을 설정합니다.
| 항목 | 설명 |
|---|---|
연결 방식 * |
|
기본 인코딩 * |
메시지 송수신 시 사용할 기본 문자 인코딩을 설정합니다.
|
서버 모드 설정
다음은 TCP 엔드포인트의 서버 모드 설정 항목에 대한 설명입니다.
| 항목 | 설명 | 비고 |
|---|---|---|
포트 * |
연결 요청을 수신할 포트 번호를 설정합니다. (1~65535) |
|
오류 시 연결 유지 |
거래 배포 오류가 발생할 경우 연결 유지 방식을 설정합니다.
|
Inbound 전용 설정 |
동기 방식 |
통신의 동기 방식을 설정합니다.
|
Outbound 전용 설정 |
최대 연결 수 |
최대 연결 수를 설정합니다. 연결이 최대 연결 수를 초과하면 연결을 종료합니다. (기본값: 3) |
|
IP 접속 제어 |
엔드포인트에 연결을 시도하는 클라이언트를 IP로 제어합니다.
|
클라이언트 모드 설정
다음은 TCP 엔드포인트의 클라이언트 모드 설정 항목에 대한 설명입니다.
| 항목 | 설명 | 비고 |
|---|---|---|
IP/Host * |
연결할 IP 주소 또는 호스트 이름을 입력합니다. |
|
포트 * |
연결할 포트 번호를 입력합니다. (1~65535) |
|
동기 방식 |
통신의 동기 방식을 지정합니다.
|
Outbound 전용 설정 |
연결 전략 |
연결 전략을 지정합니다. 각 옵션 선택 시 표시되는 추가 필드에 대한 설명은 항목별 설명을 참고합니다. |
Inbound의 경우 연결 풀 사용이 자동으로 선택됩니다. |
연결 전략 - 연결 풀 사용
커넥션 풀을 사용하여 연결을 재사용합니다. 다음은 추가 설정 항목입니다.
| 항목 | 설명 |
|---|---|
거래 성공 후 연결 처리 방식 |
거래 성공 후 연결을 풀에 반환합니다. |
거래 에러 후 연결 처리 방식 |
거래 에러 후 연결 처리 방식을 설정합니다.
|
연결 타임아웃 |
연결 타임아웃 시간을 설정합니다. (단위: ms) |
소켓 타임아웃 |
소켓 통신 타임아웃 시간을 설정합니다. (단위: ms) |
최소 유휴 연결 수 |
풀에서 유지할 최소 유휴 연결 수를 설정합니다. 1 이상의 값을 입력해야 합니다. |
최대 연결 수 |
최대 연결 수를 설정합니다. 1 이상의 값을 입력해야 합니다. |
Evictor 실행 주기 |
유휴 연결 정리 작업의 실행 주기를 설정합니다. (단위: ms, 최소값: 1000) |
초과 연결의 유휴 시간 제한 |
최소 유휴 연결 수 초과분의 최대 유휴 시간을 설정합니다. (단위: ms, 최소값: 1000) |
연결 전략 - 매 거래마다 새 연결
매 거래마다 새 연결을 생성합니다. 다음은 추가 설정 항목입니다.
| 항목 | 설명 |
|---|---|
거래 성공 후 연결 처리 방식 |
거래 성공 후 연결을 종료합니다. |
거래 에러 후 연결 처리 방식 |
에러 발생 후 연결을 종료합니다. |
연결 타임아웃 |
연결 타임아웃 시간을 설정합니다. (단위: ms) |
소켓 타임아웃 |
소켓 통신 타임아웃 시간을 설정합니다. (단위: ms) |
동시 최대 연결 수 * |
동시에 허용할 최대 연결 수를 설정합니다. 1 이상의 값을 입력해야 합니다. |
메시지 설정
[메시지 설정] 탭에서는 엔드포인트의 메시지 처리 옵션을 설정합니다.
| 항목 | 설명 |
|---|---|
메시지 프레임 설정 * |
TCP 메시지의 경계를 식별하는 방식을 선택합니다. 각 옵션 선택 시 표시되는 추가 필드에 대한 설명은 표 하단의 항목별 설명을 참고합니다.
|
아웃바운드 별도 설정 여부 |
아웃바운드 메시지 프레임을 인바운드와 별도로 설정할지 여부를 지정합니다. 활성화하면 아웃바운드 전용 메시지 프레임 설정을 추가로 입력할 수 있습니다.
|
헤더에 길이 정보 포함 시 추가 설정
헤더에서 메시지 길이 정보를 추출하여 메시지 경계를 식별할 경우의 추가 설정 항목입니다.
| 항목 | 설명 |
|---|---|
헤더 종류 * |
'Communication'이 자동 선택됩니다. (통신 헤더) |
헤더 길이 * |
헤더 길이를 설정합니다. (단위: byte) |
메시지 정합성 검사 사용 |
수신된 메시지의 특정 위치 값을 기준으로 메시지 정합성을 검사합니다.
|
헤더 사이즈 포함 * |
길이 정보에 헤더 크기를 포함할지 여부를 설정합니다. |
길이 정보 트림 사용 여부 * |
길이 정보의 앞뒤 공백을 제거할지 여부를 설정합니다. |
다음은 헤더 길이 포함 여부에 따른 메시지 길이 값 예시입니다.
* 포함 (Yes): 0014AAAAABBBBB
길이 정보에 헤더(4 byte)와 본문(10 byte)을 모두 포함합니다.
총 메시지 길이: 14 byte
* 미포함 (No): 0010AAAAABBBBB
길이 정보에 본문 길이만 포함합니다.
본문 길이: 10byte
고정 길이 설정
| 항목 | 설명 |
|---|---|
메시지 고정 길이 |
메시지 길이를 입력합니다. (단위: byte) |
다음은 고정 길이 설정 예시입니다.
메시지 길이: 200
"TRX001 AMOUNT00010000 ..."
- 메시지는 항상 200 byte로 처리됩니다.
- 데이터가 부족한 경우 공백으로 패딩됩니다.
End 문자 지정 설정
| 항목 | 설명 |
|---|---|
End 문자 * |
종료 구분자 문자를 설정합니다. |
메시지 내 End 문자 포함 여부 * |
종료 구분자 문자를 메시지 데이터에 포함할지 여부를 지정합니다. |
다음은 줄바꿈(LF) 문자를 종료 구분자로 사용하는 예시입니다.
End 문자: 0x0A (LF), HEX 사용: ON
"REQUEST:GET_STATUS" + 0x0A
StxEtxChar 설정
| 항목 | 설명 |
|---|---|
Stx 문자 * |
메시지 시작을 나타내는 문자를 입력합니다. |
Etx 문자 * |
메시지 종료를 나타내는 문자를 입력합니다. |
메시지 내 StxEtx 문자 포함 여부 * |
시작 문자와 종료 문자를 메시지에 포함할지 여부를 설정합니다. |
다음은 ASCII STX/ETX 문자를 사용하는 예시입니다.
Stx 문자: 0x02, Etx 문자: 0x03, HEX 사용: ON
0x02 + "TRANSACTION_DATA" + 0x03
사용 예시
금융권 전문 통신 (서버 모드)
외부 금융 기관으로부터 전문 메시지를 수신하는 인바운드 TCP 엔드포인트 설정 예시입니다.
외부 기관 (클라이언트) → AnyLink (서버) → 내부 시스템
엔드포인트 설정 예시입니다.
| 항목 | 설정값 |
|---|---|
통신 방향 |
Inbound |
부팅 초기값 |
실행 |
연결 방식 |
서버 |
포트 |
9090 |
최대 연결 수 |
10 |
오류 시 연결 유지 |
사용함 |
메시지 프레임 설정 예시입니다.
| 항목 | 설정값 |
|---|---|
메시지 프레임 설정 |
헤더에 길이 정보 포함 |
헤더 길이 |
4 |
Primitive 타입 사용 |
OFF |
오프셋 |
0 |
헤더 사이즈 포함 |
포함 |
길이 정보 트림 사용 여부 |
사용함 |
시나리오에서 위와 같이 엔드포인트, 메시지 프레임을 설정한 경우의 메시지 예시입니다.
0100ABCD...
- 헤더 4 byte(`0100`)는 전체 메시지 길이(100 byte)를 의미합니다.
- 길이 정보에는 헤더 길이가 포함됩니다.
외부 시스템 호출 (클라이언트 모드)
외부 레거시 시스템에 TCP 요청을 전송하는 아웃바운드 TCP 엔드포인트 설정 예시입니다.
AnyLink (클라이언트) → 외부 레거시 시스템 (서버)
엔드포인트 설정 예시입니다.
| 항목 | 설정값 |
|---|---|
통신 방향 |
Outbound |
부팅 초기값 |
실행 |
연결 방식 |
클라이언트 |
IP/호스트 |
192.168.1.100 |
포트 |
8080 |
동기 방식 |
동기 |
연결 전략 |
연결 풀 사용 |
연결 풀 설정 예시입니다.
| 항목 | 설정값 |
|---|---|
최소 유휴 연결 수 |
5 |
최대 연결 수 |
20 |
연결 타임아웃 |
5000 ms |
소켓 타임아웃 |
30000 ms |
거래 에러 후 연결 처리 방식 |
연결 종료 후 풀에서 제거 |
다음은 위와 같이 엔드포인트, 연결 풀을 설정한 경우의 메시지 송수신 예시입니다. 메시지 프레임은 헤더 4 byte에 전체 메시지 길이를 포함하는 방식으로 설정되어 있다고 가정합니다.
요청 (AnyLink → 외부 레거시 시스템)
0100ABCD...
응답 (외부 레거시 시스템 → AnyLink)
0080WXYZ...
- 요청 메시지의 헤더 4 byte(0100)는 전체 요청 메시지 길이(100 byte)를 의미합니다.
- 응답 메시지의 헤더 4 byte(0080)는 전체 응답 메시지 길이(80 byte)를 의미합니다.
- 동기 방식으로 설정되어 있으므로 AnyLink는 요청 전송 후 외부 시스템의 응답을 기다립니다.