JavaScript Object Notation (JSON의 약자로, '제이슨'과 비슷하게 발음하며, 데이터 공유 형식의 일종입니다. 이름에서 알 수 있듯이 JSON은 JavaScript에서 유래했지만, 이를 사용할 수 있는 유일한 프로그래밍 언어는 아닙니다. 실제로 다음과 같은 많은 다른 프로그래밍 언어에서도 사용할 수 있습니다: Ruby, PHP, Python, 그리고 Java.
독립적으로 존재할 때 JSON 파일은 .json 확장자를 사용하지만, 웹 서버와 클라이언트(또는 브라우저) 간에 쉽게 전송할 수 있는 형식이기 때문에 .html 형식으로 정의될 수도 있습니다. 이 경우 변수에 할당된 객체이거나 따옴표 안의 JSON 문자열로 나타날 수 있습니다.
JSON은 가독성이 더 높고 최소한의 서식만 필요하므로 XML의 좋은 대안입니다. 이 튜토리얼에서는 JSON 파일에 저장할 수 있는 데이터와 이 형식의 일반적인 구문 및 구조에 대해 알아봅니다.
구조 & 구문
JSON 객체는 중괄호를 사용하여 키-값 쌍을 나타내는 데이터 형식입니다. JSON을 다룰 때 가장 흔하게 .json 파일로 렌더링된 것을 보게 되지만, 프로그램의 컨텍스트에서는 문자열이나 JSON 객체로 존재할 수도 있습니다.
다음은 JSON 객체의 예시입니다:

이것은 다소 짧은 예시이며 JSON 객체는 훨씬 더 길어질 수 있지만, 양쪽 끝에 두 개의 중괄호가 있고 그 사이를 키-값 쌍이 채우는 일반적인 형식의 구성 방식을 정확하게 보여줍니다. JSON 데이터의 대부분은 JSON 항목에 캡슐화됩니다.
키-값 쌍을 구분하는 콜론이 있습니다 (“key” : “value”). 이러한 각 쌍은 쉼표로 목록의 서로 다른 멤버로 구분됩니다. 이로 인해 JSON 형식의 중간 부분은 다음과 같은 방식으로 구성됩니다: “key” : “value”, “key” : “value”, “key” : “value”. 위의 예에서, "name" : "Akshay"은 예를 들어 첫 번째 키-값 쌍입니다.
각 객체의 키는 고유해야 하며, 유효한 문자열로 표현될 수 있고, 큰따옴표(“key”)로 감싸져야 하며, 항상 콜론의 왼쪽에 위치합니다. 키 문자열에 공백이 허용되지만(예: “first name”), 프로그래밍 관점에서 접근하기가 더 까다로워집니다. 따라서 일반적으로 채택되는 프로그래밍 관행은 키의 공백을 밑줄(“first_name”).
JSON의 값은 콜론의 오른쪽에 위치합니다. 가장 기본적인 세분성에서 이러한 값은 다음 6가지 특정 데이터 유형 중 하나여야 합니다:
- 숫자
- 객체
- 배열
- 문자열
- 참 또는 거짓 (Boolean)
- Null
다음 섹션에서는 JSON 객체 배열의 더 복잡한 데이터 유형을 다룰 예정이며, JSON으로 전달되는 각 값은 해당 구문을 유지합니다. 즉, 문자열은 계속 따옴표 안에 표시되는 반면 숫자 값은 표시되지 않습니다.
JSON 형식은 관례적으로 여러 줄 형식으로 나열됩니다. 그러나 다음과 같이 한 줄로 형식을 지정할 수도 있습니다:

이러한 유형의 서식은 JSON 문자열을 접하거나 다른 파일 형식 내에서 더 흔하게 사용됩니다. 방대한 데이터 세트를 작업할 때, JSON에는 공백을 통한 구분 지원이 부족하기 때문에 콜론과 키-값 쌍을 개별 줄에 작성하면 사람이 목록을 더 쉽게 읽을 수 있습니다:

JSON 객체는 JavaScript와 유사하지만, 서로 다른 형식이라는 점을 명심하는 것이 중요합니다. JavaScript는 함수의 사용을 허용하지만 JSON은 허용하지 않습니다. JSON이 매우 가치 있는 이유는 모든 프로그래밍 플랫폼에서 해석할 수 있는 교차 언어 호환성 덕분입니다.
지금까지 우리는 가장 단순한 형태의 JSON 형식만 살펴보았지만, 중첩된 객체와 배열이 포함되면 계층적이고 더 복잡한 방식으로 발전할 수 있습니다. 다음 섹션에서는 더 고급 JSON에 대해 알아보겠습니다.
복잡한 JSON 유형 활용하기
중첩된 배열 외에도 JSON은 중첩된 객체도 저장할 수 있습니다. 이러한 객체와 배열은 키의 값으로 전달되며, 키와 연관되어 키-값 쌍을 형성합니다.
- 중첩된 객체의 형성
다음 users.json 파일 이미지에는 네 명의 사용자 각각에 대해 전달되는 중첩된 JSON 객체가 있습니다 (“akshay”, “sam”, “Andrew”, “James”). 각 사용자는 고유한 중첩 키를 가집니다 (“location” 및 “username”):

강조 표시된 부분은 첫 번째 중첩 객체의 예를 나타냅니다. 위의 예에서는 중괄호를 사용하여 네 명의 사용자 각각에 대한 해당 사용자 이름 및 위치 세부 정보가 포함된 중첩된 JSON 객체를 생성합니다. 객체를 사용할 때, 특정 사용자 속성에 따라 항목을 구분하기 위해 쉼표가 사용됩니다.
- 중첩 배열의 형성
값으로 전달되는 Javascript 배열을 활용하여 JSON 형식 내에 데이터를 중첩할 수도 있습니다. 이는 배열 유형의 끝에 [ ] (대괄호)를 사용하여 수행되며, 배열은 고유한 데이터 유형이 포함된 구조화된 목록입니다:

위 예시의 강조된 섹션에서, 대괄호의 존재로 인해 Akshay’의 소셜 미디어 프로필 사이트 2개와 웹사이트 링크 2개가 각각 중첩된 정보 배열 내에서 사용됩니다. JSON에서 이러한 방식으로 중첩을 포함함으로써 계층적이고 복잡한 데이터 콘텐츠를 작업할 때 더 많은 다재다능함을 얻을 수 있습니다.
- XML 비교
Extensible Markup Language (XML)는 기계와 인간 모두가 액세스할 수 있는 데이터를 저장하는 방법을 제공합니다. JSON과 마찬가지로 XML은 많은 프로그래밍 언어에서 사용할 수 있습니다. JSON과 달리 XML은 훨씬 더 많은 텍스트를 포함하므로 구성하는 데 더 복잡하고 시간이 많이 걸립니다. 표준 함수가 JSON을 파싱할 수 있는 반면, XML은 XML 전용 파서가 필요합니다. 게다가 XML은 배열을 사용할 수 없습니다. 동일한 데이터를 XML 형식과 JSON 형식으로 비교해 보겠습니다:

XML은 훨씬 더 많은 텍스트를 필요로 하고 더 많은 공간을 차지합니다. 또한 종료 태그가 필요한 반면, JSON은 훨씬 더 컴팩트하고 간단하게 정렬됩니다. HTML에 익숙한 사람들은 XML의 태그 사용 유사성을 쉽게 알아차릴 수 있을 것입니다.
사용할 형식을 결정하기 전에 프로젝트의 범위와 요구 사항을 평가하는 것이 항상 도움이 됩니다. JSON은 덜 장황하고 가벼우며 AJAX 앱 및 기타 상황에서 빠르게 사용할 수 있습니다. 프로젝트 유형은 사용할 가장 적합한 데이터 구조를 명확히 하는 데 도움이 됩니다.
JSON에 대해 더 알아보기
JSON은 여러 프로그래밍 언어에 걸쳐 구현될 수 있는 다재다능하고 자연스러운 형식입니다. 지원되는 언어의 전체 목록은 “Introducing JSON” 페이지에서 찾을 수 있습니다. 또한 파싱 및 호환성 정보는 “iQuery library.”
결국, 일반 JSON을 직접 작성하는 일은 그리 많지 않을 것입니다. 대신 데이터 소스에서 가져오거나 다른 데이터 파일을 JSON으로 변환하게 될 것입니다. 오픈 소스 도구인 Mr. Data Converter를 사용하면 스프레드시트 프로그램에서 찾은 CSV 또는 탭으로 구분된 데이터를 JSON으로 변환할 수 있습니다. 크리에이티브 커먼즈 라이선스가 적용된 utilities-online.info 플랫폼을 사용하면 XML을 JSON으로 또는 그 반대로 변환할 수 있습니다. 자동화된 소프트웨어를 사용할 때는 보고서를 다시 한 번 확인하여 중복을 제거하십시오.
또한 JSONLint를 사용하여 JSON을 검증하고, JFiddle 를 사용하여 다른 유형을 JSON 형식으로 변환할 때 웹 개발 컨텍스트에서 평가할 수 있습니다.
결론
점점 더 많은 API 지원(Twitter API 포함)을 받는 JSON은 데이터 편집, 저장 및 공유의 단순성을 촉진하는 경량 데이터 형식입니다. 자체 .json 파일을 생성하기보다는 다른 아울렛에서 받게 되므로, JSON의 구조보다는 프로그램에서 JSON을 사용하는 방법에 대해 생각하는 것이 더 중요합니다.
다음은 JavaScript로 프로그래밍하는 데 도움이 되는 저희 블로그의 추가 리소스입니다:
- 다음 내용을 알아보세요: Javascript에서 프로토타입과 상속이 작동하는 방식
- 자세히 알아보기: HTML에 JavaScript를 추가하는 방법.
- 자신만의 웹 애플리케이션을 구축하고 있다면, 가장 적합한 서버 설정을 선택하는 방법에 대한 저희 가이드.
즐거운 컴퓨팅 되세요!
댓글
아직 댓글이 없습니다. 첫 번째로 작성해 보세요.