전문 통신과 API 통신의 차이
전문 통신과 API 통신의 차이점
입사하기 전에는 거의 들어본 적이 없는 단어, 전문 통신.
전문 쏴줘
, 전문 태워보내
등등 처음 들었을 때는 이게 뭔소린가 싶었다. 곁눈질로 보다보니까 API 이용해서 자료 주고 받는 것과 비슷한거 같기도 해서 이게 한국말과 영어의 차이일 뿐인가 싶어서 찾아보았었다. 입사 초기에 찾아본 것이기는한데 문득 다시 생각나서 내용을 정리해본다. API는 워낙 자료도 많기도 해서 전문에 대해서만 이야기해본다.
전문, 전문 통신
전문의 개념
전문 통신이란 통신에 참여하는 애플리케이션들이 주고 받을 데이터의 포맷을 서로 약속(프로토콜)한 후 약속된 데이터 패킷을 전송하고 수신하는 것을 말한다. 바이트 배열의 형태로 통신을 했는데, 언어가 달라고 바이트 배열은 어느 언어에서든 사용하는 자료형이기 때문에 C와 자바 간의 통신도 가능하였다.
초창기 클라이언트/서버 환경에서 애플리케이션 사이의 통신은 네트워크 패킷(packet) 기반의 전문 방식이 주로 사용되었다.
예를 들어 120바이트로 구성된 배열을 전문 통신을 사용한다고 가정하면,
헤더 용도로 30바이트를 사용하고, 본문으로는 70바이트, 나머지 20바이트는 범용적으로 사용하기 위한 일종의 예비용도로 사용한다.
헤더 30바이트 중 타입 종류를 나타내기 위해 6바이트를 사용하고, 전송일자를 표기하기 위해 10바이트를 사용하고, 나머지 14바이트는 헤더의 기타 용도로 사용하기 위한 예비 용도로 구성한다.
본문 70 바이트는 아이디, 이름, 기타 용도로 구성되는데 아이디로는 20바이트, 이름으로는 20바이트, 나머지 30바이트는 예비용도로 사용한다.
이런 식으로 정해진 120바이트의 범위에서 바이트 배열이 양쪽간에 오가는 것이 전문통신이다.
전문의 단점
이러한 기존의 전문 방식의 통신은 애플리케이션들이 복잡해짐에 따라 워낙 다양한 데이터 구조를 가지면서 통신을 해아하기에 수 백, 수 천개의 데이터 패킷의 정의를 요구하였기에 개발 생산성이 낮다 (길이가 고정되고, 정의된 양식에 맞게 데이터를 주고 받아야함)
그래서 웹에서는 xml 기반의 웹서비스가 처음 나오면서 xml 구조의 문자열이 전송되는 형태로 데이터를 주고받다가 지금의 rest api 형태가 통신에 널리 쓰이게 되었다.
API의 경우에는 말 그대로 인터페이스이기 때문에 내부가 어떻게 되어있는지 알 필요도 없고 몰라도 사용할 수 있기 때문에 편리하고 개발의 효율성이 높다.
참고 글
- https://rainkim.tistory.com/27
- https://okky.kr/article/1045877