지금까지 '이런 거겠지' 생각하고 지나간 개념이 많은 것 같아 남한테 설명할 수 있을 정도로 개념을 확실히 해두는 게 좋을 것 같아 정리하는 포스팅입니다 (아두이노, 스프링 부트, 프로토콜 등의 개념 기반이 될 것 같습니다)
지급(pay)해야 하는 적화물(load)을 의미
{
"status":"OK",
"data": {
"message":"Hello, world!"
}
}
"data"에 해당하는 값이 payload입니다 그 외의 값들은 데이터에 대한 추가 정보인 프로토콜 오버헤드입니다payload는 전송의 근본적인 목적이 되는 데이터로 오버헤드와 구분 짓기 위해 사용하는 용어이기도 합니다 출처: 위키피디아
↪ 저는 캡스톤에서 백 언어로 자바를 사용하고 스프링 부트 프레임워크를 사용 중입니다 위 사진의 코드는 count, lat, lng라는 이름의 payload 데이터를 get(가져오고), set(설정) 할 수 있도록 하는 자바 클래스입니다
결론부터 적자면 payload를 적은 클래스가 바로 DTO Class입니다 DTO(Data Transfer Object) 단어 그대로 데이터의 전송을 담당하는 클래스입니다
서버와 클라이언트 간 요청/응답 데이터를 전달하는 역할을 수행
Controller ↔ Service ↔ Repository 계층 간 전달되는 객체
public class BusPayload {
private int count;
private double lat;
private double lng;
// Getter/Setter
}
제가 캡스톤 프로젝트를 하며 작성한 Payload 클래스의 일부분입니다 이 BusPayload가 DTO Class인 이유는 ESP32가 보내는 데이터를 Spring Boot에서 받을 때 쓰고 있기 때문입니다 (Getter Setter를 중심으로 보면 JSON을 자바 객체로 파싱하는 클래스)
(더 생기면 추가해 작성하도록 하겠습니다 06/01)