개념
전체 문자(전문 全文)와 규칙을 약속하여 서로 주고받는 통신
- 전문을 구성하는 필드들의 입력받을 수 있는 최대 사이즈를 고정시키는 방식
- 데이터 송수신 전문 형태 종류
- JSON, XML, Fixed Length 등
특징
- 컴퓨터 통신의 종류
- 전문 통신, api 통신, web service 등
- 바이트 배열 형태
- 전문을 구성하는 데이터 타입은 모두 char로 구성하는 것이 좋다.
- int, long 등은 이기종 시스템 간 endian 문제가 발생할 수 있다.
- 정해진 바이트 배열 구조대로 상대에게 전송하면, 상대방도 정해진 규칙을 따른 바이트 배열을 응답한다.
- 하드웨어와 밀접한 서비스와 데이터를 주고 받을 때 사용하는 편
- 최근에는 다양한 데이터 구조를 가지기 때문에 고정 길이의 바이트 배열 형태로 통신하기에는 한계가 있다.
사용
구조
- 헤더: 공통 데이터 / 바디: 실제 통신에 필요한 데이터
- 예비 영역: 통신을 하던 도중 추가로 생긴 규칙으로 인해 추가 데이터를 보내야할 경우 구조를 다시 설계하지 않더라도 예비 영역에 추가하는 용도
예시
구분 | 용도 | 배열 인덱스 | 크기(byte) |
---|
헤더 | | 0~29 | 30 |
| 타입 | | 6 |
| 전송일자 | | 10 |
| 기타 | | 14 |
바디 | | 30~99 | 70 |
| 아이디 | | 20 |
| 이름 | | 20 |
| 예비 | | 30 |
예비 | | 100~119 | 20 |
- 바디에서 이름 15바이트, 전화번호 11바이트를 보내야 할 경우 요청 전문의 예시
홍길동 01012345678
홍길동
은 9바이트이기 때문에 이름 요소의 나머지 6바이트를 공백(' '
)으로 채웠다.
- 한글 인코딩 시 한 글자당 사이즈
- UTF-8: 3byte
- EUC-KR: 2byte
API
특징
- 전문에 비해 자유로운 형식
- 전문 통신보다 큰 범주
비교
전문 통신
- 본문의 자릿수까지 정확히 정함
- 통신 장비와 직접 연결, 제공하는 서비스는 주로 C언어 기반
- C언어에서는 고정 길이의 통신 개발이 유리하다.
API
- 자리값 범위를 정할 수 있다.
- 최근 사용자들이 사용하는 서비스는 주로 자바 기반
- 초기에 xml 구조의 웹서비스가 나오면서 xml로 문자열을 전송했다.
- 현재는 rest api 형태(json)로 주고받게 됨.
출처