본문으로 건너뛰기

교육 ·

비전공자를 위한 JSON 입문 - API와 자동화 스크립트에서 자꾸 보이는 그 형식

JSON, 어디서 자꾸 보이는데 뭔지 모르겠다면

파이썬으로 업무 자동화 스크립트를 만들다 보면 어느 순간 중괄호와 콜론이 잔뜩 섞인 텍스트를 마주하게 됩니다. API 입문 가이드에서 프로그램끼리 데이터를 주고받는 방법을 다뤘다면, 그때 주고받는 데이터가 거의 항상 JSON이라는 형식으로 되어 있습니다.

JSON은 “JavaScript Object Notation”의 약자지만, 이름과 달리 자바스크립트 전용이 아닙니다. 파이썬, 엑셀 매크로, 각종 자동화 도구까지 거의 모든 프로그램이 이 형식으로 데이터를 주고받습니다. 설정 파일(config), API 응답, 자동화 스크립트의 옵션 파일까지 곳곳에서 등장하기 때문에, 코드를 직접 짜지 않더라도 읽을 줄만 알면 업무가 훨씬 편해집니다.

이 글에서는 JSON이 왜 이런 모양을 하고 있는지, 어떻게 읽으면 되는지, 그리고 파이썬에서 어떻게 다루는지를 실무 예시로 정리해 보겠습니다.

JSON의 기본 구조 이해하기

JSON은 크게 두 가지 형태로만 이루어져 있습니다. 하나는 “키-값” 쌍을 중괄호로 묶은 객체이고, 다른 하나는 값을 대괄호로 나열한 배열입니다. 엑셀에 비유하면 객체는 한 행(레코드)이고, 배열은 그런 행들이 여러 개 모인 표라고 생각하면 이해가 쉽습니다.

간단한 직원 정보를 JSON으로 표현하면 다음과 같습니다.

{
  "이름": "김민준",
  "부서": "총무팀",
  "재직여부": true,
  "입사연도": 2022,
  "담당업무": ["비품관리", "행사지원", "문서수발"]
}

여기서 규칙은 몇 가지뿐입니다. 키는 반드시 큰따옴표로 감싼 문자열이고, 값은 문자열, 숫자, true/false(참/거짓), 배열, 다른 객체, 혹은 null(값 없음) 중 하나가 됩니다. 여러 명의 직원 정보를 한 번에 담으려면 이런 객체들을 대괄호로 묶어 배열로 만들면 됩니다.

[
  {"이름": "김민준", "부서": "총무팀"},
  {"이름": "이서연", "부서": "회계팀"}
]

이 구조는 엑셀 표의 각 행을 하나씩 중괄호에 담아 늘어놓은 것과 비슷합니다. 다만 엑셀과 다른 점은 각 행마다 항목(키)의 개수가 달라도 되고, 값 안에 또 다른 목록이나 객체가 들어갈 수 있다는 점입니다. 이 유연함 때문에 API 응답처럼 구조가 복잡하고 중첩된 데이터를 표현하기에 적합합니다.

JSON 핵심 요약

실무에서 JSON을 만나는 순간들

가장 흔한 경우는 API 응답을 받을 때입니다. 예를 들어 공공데이터포털에서 날씨 정보를 요청하면, 서버는 표가 아니라 JSON 텍스트로 응답을 돌려줍니다. 이걸 사람이 눈으로 읽으면 복잡해 보이지만, 파이썬에서는 몇 줄로 원하는 값만 꺼낼 수 있습니다.

import json

response_text = '''
{
  "지역": "양주시",
  "날씨": {"기온": 28.5, "습도": 65, "상태": "맑음"},
  "예보": ["오늘 맑음", "내일 흐림"]
}
'''

data = json.loads(response_text)
print(data["날씨"]["기온"])   # 28.5
print(data["예보"][0])        # 오늘 맑음

json.loads는 JSON 형식의 텍스트를 파이썬이 다룰 수 있는 딕셔너리와 리스트로 바꿔주는 함수입니다. 반대로 파이썬 데이터를 JSON 텍스트로 저장하고 싶을 때는 json.dump를 씁니다. 이 두 함수만 알아도 업무에서 마주치는 JSON의 8할은 처리할 수 있습니다.

두 번째로 자주 만나는 경우는 자동화 스크립트의 설정 파일입니다. 엑셀 반복 업무 자동화나 파일 정리 스크립트를 팀원과 공유할 때, 폴더 경로나 파일명 규칙을 코드에 직접 박아두면 나중에 수정할 때마다 코드를 열어야 합니다. 대신 이런 값을 별도의 config.json 파일로 분리해두면 비개발자 담당자도 메모장으로 열어 값만 바꿀 수 있습니다.

{
  "감시폴더": "C:/Users/공유폴더/제안서",
  "허용확장자": [".pdf", ".hwp", ".docx"],
  "정리기준": "부서명",
  "알림사용": true
}

이런 설정 파일을 스크립트가 실행 시점에 읽어들이면, 코드를 건드리지 않고도 동작 방식을 바꿀 수 있습니다. 윈도우 파일 정리 자동화 같은 스크립트를 여러 부서에 배포할 때도, 부서마다 다른 값을 이런 설정 파일 하나로 관리하면 유지보수가 훨씬 쉬워집니다.

읽을 때 자주 헷갈리는 부분들

JSON을 처음 읽을 때 가장 헷갈리는 부분은 중괄호와 대괄호가 여러 겹 겹쳐 있을 때입니다. 이럴 때는 안쪽부터 하나씩 뜯어보기보다, 바깥쪽 괄호가 무엇으로 시작하는지부터 확인하는 편이 낫습니다. 전체가 중괄호로 시작하면 “이건 하나의 항목(객체)이다”, 대괄호로 시작하면 “이건 여러 항목이 나열된 목록이다”라고 먼저 판단하고, 그다음 안쪽 구조를 살펴보는 순서가 헷갈림을 줄여줍니다.

또 하나 자주 실수하는 부분은 마지막 항목 뒤에 쉼표를 붙이는 것입니다. JSON은 마지막 값 뒤에 쉼표가 있으면 오류로 처리됩니다. 엑셀 함수의 괄호 짝이 안 맞으면 오류가 나는 것처럼, JSON도 문법 규칙이 엄격한 형식이라는 점을 기억해두면 좋습니다. 텍스트가 복잡해서 눈으로 구조를 파악하기 어려울 때는 온라인 JSON 뷰어에 붙여넣으면 자동으로 들여쓰기와 색깔을 입혀 보여주므로, 이런 도구를 활용하는 것도 실무에서 유용한 방법입니다.

정리하며

JSON은 새로운 프로그래밍 언어가 아니라, 데이터를 정해진 규칙으로 적어두는 표기법에 가깝습니다. 키와 값, 중괄호와 대괄호라는 몇 가지 규칙만 눈에 익으면, API 응답이든 자동화 스크립트의 설정 파일이든 거부감 없이 읽어낼 수 있습니다. 비전공자 실무자에게 JSON은 굳이 외워야 할 문법이라기보다, 자동화 도구를 스스로 조정할 수 있게 해주는 최소한의 읽기 능력에 가깝습니다.

픽셀앤코드에서는 이러한 자동화 스크립트와 설정 파일을 실무 부서 환경에 맞게 구성하고, 담당자가 직접 값을 수정하며 운영할 수 있도록 안내하는 IT 교육을 함께 진행하고 있습니다. JSON처럼 낯설어 보이지만 실제로는 단순한 개념들을 하나씩 짚어가며, 자동화 도구를 오래 유지보수할 수 있는 실무 역량을 쌓아가는 과정을 지원하고 있습니다.