📦 JSON 이란?

👉 정의

JavaScript Object Notation
데이터를 구조화해서 저장하거나 전송할 때 쓰는 가볍고, 읽기 쉬운 데이터 포맷

  • 텍스트 기반
  • 키-값 쌍 ("key": value)
  • 구조화된 데이터 표현에 탁월
  • 거의 모든 언어에서 사용 가능 (Python, JS, Java, Go 등등)

🧠 왜 쓰는가?

  • API 통신 (백엔드 ↔ 프론트엔드, 클라이언트 ↔ 서버)
  • AI 모델과의 입출력 처리 (프롬프트 ↔ 응답 구조화)
  • 데이터 저장 (설정, 로그, 사전 등)
  • 파인튜닝 학습 데이터 포맷 (OpenAI JSONL 등)

🔍 JSON 예제

{
  "name": "홍길동",
  "age": 30,
  "skills": ["Python", "LangChain", "Streamlit"],
  "is_developer": true,
  "profile": {
    "github": "https://github.com/hongdev",
    "location": "Seoul"
  }
}

👉 구성 요소

요소설명
{} 객체 (Object)
[] 배열 (Array)
"key": value 키-값 쌍
문자열 "..." 반드시 큰따옴표
숫자 그냥 숫자 (따옴표 X)
boolean true, false
null 존재하지 않음 표시

🐍 Python에서 JSON 다루기

 

import json

# Python → JSON 문자열
data = {"name": "홍길동", "age": 30}
json_str = json.dumps(data)

# JSON 문자열 → Python 객체
parsed = json.loads(json_str)
print(parsed["name"])  # "홍길동"
print(parsed["age"])

for key, value in parsed.items():
    print(f"{key}: {value}")

 

홍길동
30
name: 홍길동
age: 30

 

 

🧾 OpenAI 파인튜닝용 JSONL

JSONL이란?

  • JSON Lines (JSONL) 형식은 한 줄당 하나의 JSON 객체를 표현하는 형태입니다.
  • 각 줄은 독립된 데이터로 존재하며, 대량의 데이터 처리에 유용합니다.
  • 데이터가 많아지더라도 한 줄씩 읽고 처리할 수 있어 효율적입니다.

{"messages": [{"role": "user", "content": "파인튜닝이 뭐야?"}, {"role": "assistant", "content": "기존 모델을 추가 학습시키는 거야!"}]}
{"messages": [{"role": "user", "content": "LangChain이 뭐야?"}, {"role": "assistant", "content": "LLM을 체계적으로 조립하는 프레임워크야."}]}

 

첫번째줄만 설명할께요

 

{
  "messages": [
    { "role": "user", "content": "파인튜닝이 뭐야?" },
    { "role": "assistant", "content": "기존 모델을 추가 학습시키는 거야!" }
  ]
}

 

messages: 대화 기록을 담는 배열.

  • { "role": "user", "content": "파인튜닝이 뭐야?" }
    • role: 발화자의 역할 (user).
    • content: 사용자가 질문한 내용.
  • { "role": "assistant", "content": "기존 모델을 추가 학습시키는 거야!" }
    • role: 응답자의 역할 (assistant).
    • content: 모델이 답변한 내용.

⚠️ JSON 쓸 때 주의사항

  • key는 반드시 쌍따옴표
  • 끝에 쉼표(,) 붙이면 안 됨
  • Python의 dict와 유사하지만 완전히 같지는 않음
  • JSON은 기본적으로 문자열 → 사용 전 파싱 필요!

🔮 JSON의 활용 전망

분야JSON 역할
🔗 API REST API 응답/요청 포맷
🤖 AI 프롬프트, 함수 호출, 파인튜닝 등
🧠 LangChain Agent → Tool 간 메시지 전달
🧾 설정파일 .json 기반 config (VS Code, ESLint 등)
📊 데이터 로그 저장, 대시보드 연결 등

+ Recent posts