API 개발에서 자주 등장하는 payload 개념

Sue·2025년 6월 12일
0
post-thumbnail

API 개발에서 자주 등장하는 payload란?

API 개발을 하다 보면 payload라는 단어를 자주 접하게 됩니다.

실제로 payload는 요청 처리 과정에서 핵심적인 개념 중 하나입니다.

이 글에서는 payload의 의미와 역할, 실제 코드에서 어떻게 다루는지를 정리해 보겠습니다.


payload의 정의

payload는 API 요청(Request)에서 클라이언트가 서버로 보내는 "데이터 내용"을 의미합니다. 특히 POST, PUT, PATCH 같은 요청에서는 어떤 데이터를 생성하거나 수정할지를 이 payload 안에 담아 전달합니다.


예시로 살펴보는 payload

다음과 같은 HTTP 요청이 있다고 가정해보겠습니다:

PATCH /users/42
Content-Type: application/json

{
  "username": "johndoe_92",
  "email": "johndoe@example.com",
  "phone": "010-1234-5678",
  "profile": {
    "bio": "개발자이자 커피 애호가입니다.",
    "location": "부산광역시 해운대구",
    "website": "https://johndoe.dev"
  },
  "preferences": {
    "newsletter": true,
    "language": "ko"
  }
}

여기서 Content-Typeapplication/json으로 명시되어 있으며, 본문에 포함된 JSON 전체가 바로 payload입니다. 즉, 이 데이터가 서버에 전달되어 업데이트에 활용됩니다.


Python 코드에서의 payload 처리

실제 백엔드 코드에서는 다음과 같이 payload를 다룹니다:

payload = event.json_body
  • event: API Gateway 등에서 들어온 전체 요청 이벤트
  • json_body: 요청 본문(JSON)을 파싱한 파이썬 딕셔너리

따라서 payload는 Python에서 dict 형태로 접근하게 되며, 원하는 값을 꺼내거나 유효성 검사를 하는 데 사용됩니다.


payload의 주요 역할

역할설명
수정 데이터 전달어떤 필드를 어떻게 수정할지 서버에 전달하는 용도
유효성 검사 대상예: Project(**payload) 형태로 모델 생성 시 값 검증 수행
쿼리 생성을 위한 기반예: get_update_query(payload)처럼 SQL 문을 생성할 때 사용
보안 및 권한 필터링 대상허용된 필드만 추출하거나 특정 필드에 대한 권한을 검사하는 데 사용

활용 예시

payload의 내용을 조건에 따라 처리할 수 있습니다.

if "profile" in payload and "location" in payload["profile"]:
    print("변경할 지역:", payload["profile"]["location"])

위 코드처럼 필요한 값을 꺼내어 로직에 반영할 수 있습니다.


결론

정리하면, payload는 클라이언트가 서버로 보내는 JSON 본문이며, 데이터 생성이나 수정을 위한 핵심 입력값입니다. API 서버는 이 값을 기반으로 데이터베이스를 업데이트하거나 유효성을 검사하고, 필요한 로직을 실행합니다.

API에서 payload는 마치 "요청 내용이 담긴 상자"처럼 생각할 수 있습니다. 서버는 이 상자를 열어 필요한 내용을 꺼내 처리하게 됩니다.


이 포스팅이 payload에 대한 개념을 이해하는 데 도움이 되었기를 바랍니다. 추가로 궁금한 점이 있다면 댓글로 남겨주세요.

profile
AI/ML Engineer

0개의 댓글