약 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 데이터를 전송하여 그에 대한 응답을 확인하세요.- 사용자 데이터에 더 많은 필드를 추가하고, 다양한 응답 형태를 실험해 보세요.
퀴즈
- JSON의 기본 구조를 설명하세요.
- FastAPI에서 POST 요청을 처리하기 위해 어떤 구성 요소를 사용하나요?
- Pydantic 모델의 역할은 무엇인가요?
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.