JSON을 사용하는 이유
데이터 교환의 기초를 배워 보세요.
JSON을 사용하는 이유은(는) CoddyKit의 무료 Lua Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Lua Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Lua Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
JSON이란 무엇인가요
JSON(JavaScript 객체 표기법)은 데이터를 저장하고 교환하기 위한 가벼운 텍스트 형식입니다. 사람이 읽기 쉽고 특정 언어에 종속되지 않습니다.
거의 모든 웹 API, 구성 파일, 데이터베이스가 JSON을 사용합니다. JSON과 Lua 테이블 사이를 변환하는 방법을 배우면 스크립트가 외부 세계와 통신할 수 있습니다.
JSON은 Lua와 비슷합니다
JSON 객체는 키-값 쌍을 중괄호로 감싸고, 배열은 대괄호로 감쌉니다. 이는 Lua 테이블과 거의 완벽하게 대응됩니다.
JSON 객체는 문자열 키를 가진 Lua 테이블이 되고, JSON 배열은 1부터 시작하는 숫자 인덱스를 가진 Lua 테이블이 됩니다.
-- JSON text
-- {"name": "Ada", "age": 36}
-- Equivalent Lua table
local person = { name = "Ada", age = 36 }
print(person.name)Lua에는 기본 JSON 기능이 없습니다
일부 언어와 달리 표준 Lua에는 JSON 지원 기능이 포함되어 있지 않습니다. 라이브러리를 사용해야 합니다.
가장 일반적인 선택지는 dkjson(순수 Lua로 작성되어 설치하기 쉬움)와 lua-cjson(빠른 C 라이브러리)입니다. 두 라이브러리 모두 encode와 decode 함수를 제공합니다.
JSON 라이브러리 불러오기
다른 Lua 모듈과 마찬가지로 require를 사용해 JSON 라이브러리를 불러옵니다. 반환된 테이블에 필요한 함수가 들어 있습니다.
여기서는 dkjson을 불러와 json이라는 이름의 지역 변수에 연결합니다.
local json = require("dkjson")
-- now json.encode and json.decode are ready두 가지 핵심 작업
JSON으로 하는 일은 두 가지뿐입니다. decode와 encode입니다.
디코딩은 JSON 문자열을 읽을 수 있는 Lua 테이블로 변환합니다. 인코딩은 Lua 테이블을 다시 전송하거나 저장할 수 있는 JSON 문자열로 변환합니다.
local json = require("dkjson")
local t = json.decode('{"ok": true}') -- string -> table
local s = json.encode(t) -- table -> string디코딩 예제
파일이나 API에서 JSON 텍스트를 받으면 json.decode가 이를 사용할 수 있는 Lua 테이블로 분석합니다.
디코딩한 뒤에는 일반적인 Lua 문법으로 필드에 접근합니다.
local json = require("dkjson")
local text = '{"city": "Oslo", "temp": 7}'
local data = json.decode(text)
print(data.city, data.temp)인코딩 예제
JSON을 만들려면 Lua 테이블을 채운 다음 json.encode에 전달합니다. 그 결과는 파일에 쓰거나 전송할 수 있는 문자열이 됩니다.
local json = require("dkjson")
local book = { title = "Lua", pages = 328 }
local text = json.encode(book)
print(text)JSON 데이터 형식
JSON은 문자열, 숫자, 불리언, 널, 객체, 배열이라는 작은 형식 집합을 지원합니다.
Lua에서는 이를 문자열, 숫자, 불리언, nil, 테이블로 대응시킵니다. JSON의 null에는 Lua에서 완벽하게 대응하는 값이 없으므로 예상하지 못한 문제가 생길 수 있습니다.
사용자 지정 형식보다 JSON을 사용하는 이유
직접 텍스트 형식을 만들 수도 있지만, JSON은 이미 어디서나 이해할 수 있는 형식입니다. 편집기는 JSON을 강조 표시하고, 검증기는 내용을 확인하며, 다른 언어도 즉시 분석할 수 있습니다.
JSON을 사용하면 데이터를 쉽게 옮길 수 있고 코드를 디버깅하기도 쉬워집니다.
일반적인 사용 사례
REST API를 호출하거나, 구성 파일을 읽거나, 결과를 캐시하거나, 프로세스 사이에서 데이터를 전달할 때 JSON을 사용하게 됩니다.
각 경우의 패턴은 같습니다. 들어온 JSON을 테이블로 디코딩하고, 그 테이블을 사용한 다음, 다시 전송해야 할 때 인코딩합니다.
local json = require("dkjson")
-- typical round trip
local data = json.decode(incoming)
data.seen = true
local out = json.encode(data)디코딩 오류 처리
텍스트가 유효한 JSON이 아니면 디코딩에 실패할 수 있습니다. dkjson은 프로그램을 중단하는 대신 값, 위치, 오류 메시지를 반환합니다.
사용하기 전에 첫 번째 반환 값이 nil인지 항상 확인하세요.
local json = require("dkjson")
local data, pos, err = json.decode("{bad")
if not data then
print("Invalid JSON:", err)
end빠른 확인
Lua에서 JSON 기초를 얼마나 이해했는지 확인해 보세요.
복습
JSON은 Lua 테이블에 깔끔하게 대응되는 범용 데이터 형식입니다. 표준 Lua에는 JSON 지원 기능이 없으므로 dkjson이나 cjson 같은 라이브러리를 불러와야 합니다.
두 가지 핵심 작업은 json.decode(문자열을 테이블로 변환)와 json.encode(테이블을 문자열로 변환)입니다. 다음에는 JSON을 테이블로 디코딩하는 방법을 자세히 알아봅니다.
자주 묻는 질문
“JSON을 사용하는 이유” 강의는 무료인가요?
네 — “JSON을 사용하는 이유” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Lua Academy 강의 전체를 잠금 해제할 수 있습니다. Lua Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“JSON을 사용하는 이유”에서 뭘 배우나요?
데이터 교환의 기초를 배워 보세요. 브라우저에서 직접 실행하는 실습 코드로 Lua Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Lua Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Lua Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“JSON을 사용하는 이유” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Lua Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Lua Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- JSON을 사용하는 이유
- JSON을 테이블로 디코딩하기
- 테이블을 JSON으로 인코딩하기
- 중첩 데이터 처리하기