Fixed-Length 메시지

Fixed-Length(고정 길이) 메시지는 각 필드가 미리 정해진 바이트 길이를 가지는 메시지 형식입니다. 구분자를 사용하지 않고, 각 필드의 시작 위치와 길이를 기준으로 데이터를 식별합니다.

Fixed-Length 메시지는 주로 다음과 같은 환경에서 사용됩니다.

  • 금융권 전문 통신

  • 레거시 메인프레임 연동

  • 대용량 전문 처리

message fixed form

다음은 Fixed-Length 메시지의 설정 정보입니다.

항목 설명

공백 설정 (Trim)

메시지 값의 앞뒤 공백을 처리하는 방식입니다.

  • NONE: 공백을 제거하지 않습니다.

  • RIGHT: 오른쪽 공백 제거합니다.

  • LEFT: 왼쪽 공백 제거합니다.

  • BOTH: 양쪽 공백 제거합니다.

총 길이 *

메시지의 전체 바이트 길이입니다. 메시지 구성에서 Length를 설정하면 총 길이가 자동으로 계산되어 표시됩니다.

다음은 Fixed-Length 메시지에서 사용할 수 있는 필드 속성입니다. 메시지 타입과 관계없이 공통으로 사용하는 필드 속성은 메시지 필드 정의를 참고합니다.

항목 설명

Length *

필드의 바이트 길이입니다.

Offset

필드의 시작 위치입니다.

필드 길이를 기준으로 자동 계산되며, 읽기 전용으로 표시됩니다.

Align

필드 값의 정렬 방식입니다.

  • NONE: 정렬을 적용하지 않습니다.

  • LEFT: 왼쪽 정렬합니다.

  • RIGHT: 오른쪽 정렬합니다.

Fill

정렬 시 남는 공간을 채우는 패딩 문자입니다. 기본값은 공백입니다.

다음은 Fixed-Length 메시지의 필드 레이아웃 예시입니다.

각 필드는 시작 위치(Offset)와 길이(Length)에 따라 고정된 위치에 배치됩니다.

Position  Length  Field Id        Field Name      Type     Align   Fill
--------  ------  --------------  --------------  -------  ------  -----
0         4       txCode          전문구분코드     STRING   LEFT    ' '
4         10      txNo            전문번호         STRING   LEFT    ' '
14        8       txDate          거래일자         STRING   LEFT    ' '
22        6       txTime          거래시간         STRING   LEFT    ' '
28        15      amount          금액             LONG     RIGHT   '0'

Fixed-Length 메시지는 바이트 길이를 기준으로 필드를 계산합니다. 한글과 같은 멀티바이트 문자는 인코딩 방식에 따라 바이트 수가 달라지므로, 필드 길이를 설정할 때 주의해야 합니다.

인코딩 한글 1자 영문 1자

UTF-8

3 bytes

1 byte

EUC-KR

2 bytes

1 byte

예를 들어, 문자열 홍길동의 바이트 길이는 인코딩에 따라 다음과 같이 달라집니다.

  • UTF-8: 9 bytes (3 x 3)

  • EUC-KR: 6 bytes (2 x 3)

다음은 아래 설정값을 적용하여 구성한 Fixed-Length 메시지 예제입니다.

  • 공백 설정: RIGHT

  • 총 길이: 50 bytes

  • 인코딩: EUC-KR

Position  Length  Field Id        Field Name      Type     Align   Fill   예시 값
--------  ------  --------------  --------------  -------  ------  -----  ---------------
0         4       txCode          전문구분코드     STRING   LEFT    ' '    "0100"
4         10      txNo            전문번호         STRING   LEFT    ' '    "1234567890"
14        8       txDate          거래일자         STRING   LEFT    ' '    "20250205"
22        6       txTime          거래시간         STRING   LEFT    ' '    "143052"
28        15      amount          금액             LONG     RIGHT   '0'    "000000000010000"
43        7       reserved        예약영역         STRING   LEFT    ' '    "       "

각 필드는 정의된 길이만큼 고정 폭을 차지하며, 정렬 방식과 Fill 값에 따라 실제 메시지 값이 구성됩니다.

다음 메시지는 위 필드 값을 순서대로 결합한 결과이며, 전체 길이는 50바이트입니다.

0100123456789020250205143052000000000010000

다음은 예제에 사용된 필드 정의입니다.

Field Id Field Type Length Offset Align 설명

txCode

STRING

4

0

LEFT

전문 구분 코드

txNo

STRING

10

4

LEFT

전문 번호

txDate

STRING

8

14

LEFT

거래 일자 (YYYYMMDD)

txTime

STRING

6

22

LEFT

거래 시간 (HHmmss)

amount

LONG

15

28

RIGHT

금액 (왼쪽을 0으로 채움)

reserved

STRING

7

43

LEFT

예비 필드