4.1 JSON 데이터 형식 이해

약 5분

본문 듣기
읽기 설정

글자 크기

줄 간격

글꼴

4.1 JSON 데이터 형식 이해

JSON(자바스크립트 객체 표기법)은 경량 데이터 교환 포맷으로, 사람이 읽고 쓰기에 용이하며 기계가 분석하고 생성하기에 용이합니다. JSON은 특히 REST API와 함께 사용되며, 다양한 프로그래밍 언어에서 지원됩니다.

이 장에서는 JSON의 구성 요소와 Python에서 JSON 데이터를 처리하는 방법을 배워보겠습니다. 예를 들어, FastAPI를 사용하여 JSON 데이터를 받아 처리하고 반환하는 간단한 API를 만들어보겠습니다.

먼저 JSON의 기본 구조는 다음과 같습니다:

  • 객체: 중괄호 {}로 표현되며, 키-값 쌍으로 구성됩니다.
  • 배열: 대괄호 []로 표현되며, 값의 목록을 포함합니다.
{
  "name": "Alice",
  "age": 30,
  "is_student": false,
  "courses": [
    "Python",
    "JavaScript"
  ]
}

이제 FastAPI를 사용하여 JSON 데이터를 처리하는 방법을 살펴보겠습니다. 아래 코드는 JSON 형식의 데이터를 클라이언트로부터 받아들이고, 이를 출력을 통해 반환하는 API의 예입니다:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class User(BaseModel):
    name: str
    age: int
    is_student: bool
    courses: list

@app.post("/users/")
async def create_user(user: User):
    return user

위 코드를 살펴보면:

  • FastAPI 인스턴스를 생성하고, User라는 Pydantic 모델을 정의했습니다. 이 모델은 JSON 데이터의 구조를 나타내며, 이를 통해 유효성을 검사할 수 있습니다.
  • @app.post 데코레이터를 사용하여 /users/ 경로에 POST 요청을 처리하는 함수를 정의했습니다. 이 함수는 요청 본문에서 JSON 데이터를 직렬화하여 Python 객체로 변환한 후, 다시 JSON 형식으로 반환합니다.

이제 위 코드를 실행하고, POST 요청을 통해 JSON 데이터를 전송해 보겠습니다. 적절한 클라이언트를 사용해 /users/ 엔드포인트에 다음과 같은 JSON 데이터를 전송하면:

{
  "name": "Alice",
  "age": 30,
  "is_student": false,
  "courses": ["Python", "JavaScript"]
}

서버는 전송된 데이터를 응답으로 돌려줍니다. 이 과정을 통해 JSON 데이터의 수신 및 응답의 기초를 배우게 됩니다.

실습 과제

  • FastAPI를 설치하고, 위 코드를 실행해 보세요.
  • /users/ 엔드포인트에 다양한 JSON 데이터를 전송하여 그에 대한 응답을 확인하세요.
  • 사용자 데이터에 더 많은 필드를 추가하고, 다양한 응답 형태를 실험해 보세요.

퀴즈

  1. JSON의 기본 구조를 설명하세요.
  2. FastAPI에서 POST 요청을 처리하기 위해 어떤 구성 요소를 사용하나요?
  3. Pydantic 모델의 역할은 무엇인가요?

댓글 0

댓글을 남기려면 로그인하세요.

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.