페이로드(Payload)란 무엇일까?
- 페이로드(payload)는 전송되는 데이터를 의미한다.
- 데이터를 전송할 때, 헤더와 메타 데이터, 에러 체크 비트 등과 같은 다양한 요소들을 함께 보내어, 데이터 전송의 효율과 안정성을 높이게 된다.
- 이 때, 보내고자 하는 데이터 자체를 의미하는 것이 바로 페이로드이다.
- 우리가 택배 배송을 보내고 받을 때, 택배 물건이 페이로드이고, 송장이나 박스, 뽁뽁이와 같은 완충재 등은 부가적인 것이기 때문에 페이로드가 아니다.
위키피디아에 이해하기 아주 좋은 예시가 아래와 같이 나와있다.
페이로드(payload)라는 단어는 운송업에서 비롯하였는데, 지급(pay)해야 하는 적화물(load)을 의미한다.
예를 들어, 유조선 트럭이 20톤의 기름을 운반한다면 트럭의 총 무게는 차체, 운전자 등의 무게 때문에 그것보다 더 될 것이다.
이 모든 무게를 운송하는데 비용이 들지만, 고객은 오직 기름의 무게만을 지급(pay)하게 된다. 그래서 ‘pay-load’란 말이 나온 것이다.
메시지 프로토콜(message protocols) 중에 프로토콜 오버헤드(protocol overhead)와 원하는 데이터(data)를 구별할 때 사용된다.
예를 들어 웹 서비스 응답(Web Service Response)이 아래의 JSON 데이터 이라면 페이로드는 아래의 JSON에서 “data”이다.
그 이외의 데이터들은 전부 통신을 하는데 있어 용이하게 해주는 부차적인 정보인 프로토콜 오버헤드(Protocol Overhead)이다.
코드로 표현을 한다면 아래와 같다. (여기에서 “data”에 해당하는 부분이 페이로드이다. 그 외는 모두 프로토콜 오버헤드이다.)
그림으로 표현을 한다면 아래 그림처럼 이루어진다. (여기에서 Body에 페이로드가 포함되어있다.)




















