전문 통신

정미·2023년 1월 30일
0

개념

전체 문자(전문 全文)와 규칙을 약속하여 서로 주고받는 통신

  • 소켓 통신을 통해 바이트 배열을 송수신

고정 길이 형태 Fixed Length Format

  • 전문을 구성하는 필드들의 입력받을 수 있는 최대 사이즈를 고정시키는 방식
  • 데이터 송수신 전문 형태 종류
    • JSON, XML, Fixed Length 등

특징

  • 컴퓨터 통신의 종류
    • 전문 통신, api 통신, web service 등
  • 바이트 배열 형태
  • 전문을 구성하는 데이터 타입은 모두 char로 구성하는 것이 좋다.
    • int, long 등은 이기종 시스템 간 endian 문제가 발생할 수 있다.
  • 정해진 바이트 배열 구조대로 상대에게 전송하면, 상대방도 정해진 규칙을 따른 바이트 배열을 응답한다.
  • 하드웨어와 밀접한 서비스와 데이터를 주고 받을 때 사용하는 편
  • 최근에는 다양한 데이터 구조를 가지기 때문에 고정 길이의 바이트 배열 형태로 통신하기에는 한계가 있다.

사용

  • 시리얼 통신 (직렬 통신)

구조

  • 헤더: 공통 데이터 / 바디: 실제 통신에 필요한 데이터
  • 예비 영역: 통신을 하던 도중 추가로 생긴 규칙으로 인해 추가 데이터를 보내야할 경우 구조를 다시 설계하지 않더라도 예비 영역에 추가하는 용도

예시

  • 총 120바이트의 배열을 통신에 사용할 경우
구분용도배열 인덱스크기(byte)
헤더0~2930
타입6
전송일자10
기타14
바디30~9970
아이디20
이름20
예비30
예비100~11920
  • 바디에서 이름 15바이트, 전화번호 11바이트를 보내야 할 경우 요청 전문의 예시
    홍길동      01012345678
    • 홍길동은 9바이트이기 때문에 이름 요소의 나머지 6바이트를 공백(' ')으로 채웠다.
    • 한글 인코딩 시 한 글자당 사이즈
      • UTF-8: 3byte
      • EUC-KR: 2byte

API

특징

  • 전문에 비해 자유로운 형식
  • 전문 통신보다 큰 범주

비교

전문 통신

  • 본문의 자릿수까지 정확히 정함
    • 이름의 길이: 100byte
  • 통신 장비와 직접 연결, 제공하는 서비스는 주로 C언어 기반
    • C언어에서는 고정 길이의 통신 개발이 유리하다.

API

  • 자리값 범위를 정할 수 있다.
    • 이름의 길이: 10~100 사이
  • 최근 사용자들이 사용하는 서비스는 주로 자바 기반
    • 초기에 xml 구조의 웹서비스가 나오면서 xml로 문자열을 전송했다.
    • 현재는 rest api 형태(json)로 주고받게 됨.

출처

0개의 댓글