Original article: JSON Comment Example — How to Comment in JSON Files

JSON 파일에 주석을 더하는 것이 어렵게 느껴졌다면 그럴만한 이유가 있다. JSON은 주석을 지원하지 않는다.

"저는 JSON에서 주석을 없앴습니다. 사람들이 해석 지시 사항들을 표기하기 위해 주석을 이용하는 것을 본 이후로요. 이런 식으로 사용하게 된다면 상호 호환성을 방해하게 되기 때문입니다."라고 문자 기반의 데이터 포맷을 확산시킨 더글라스 크록포드는 말한다.

하지만 아직 방법은 있다. 이 포스트에서는 JSON 파일에 어떻게 주석을 달 수 있는지에 대한 그 방법을 살펴보겠다.

데이터를 주석 형식으로 더하기

주석을 지원하지 않는 JSON 파일에 주석을 사용하기 위한 제 2의 방법은 JSON 파일에 주석 역할을 하는 데이터를 더하는 것이다.

예시를 통해 살펴보자. 다음과 같은 정보를 담고 있는 JSON 파일을 확인해보자.

{
   "sport": "basketball",
   "coach": "Joe Smith",
   "wins": 15,
   "losses": 5
}

여기 또 다른 예가 있다. 이번에는 언더스코어(__) 두 개를 처음과 끝에 사용한다.

 "__comment2__": "this is another comment",

이 언더스코어들이 파일에서 주석과 데이터를 구분할 수 있게 해준다.

주의할 점

기억해야 할 중요한 사항이 있다.

우리가 JSON 파일에 더한 주석들은 JSON 객체에 포함된다. 다시 말해, 이 주석들은 데이터로 인식된다.

이게 무슨 뜻인지 설명하기 위해 예시를 들어보자.

우리가 갖고 있는 파일 data.json에 이런 코드가 있다.

{
   "_comment1": "this is my comment",
   "sport": "basketball",
   "coach": "Joe Smith",
   "wins": 15,
   "losses": 5
}

이제 read_comments.py 파일에서 그 데이터를 읽는다고 해보자.

import json
with open("data.json", mode="r") as j_object:
   data = json.load(j_object)
print(data)

결과에서 보이듯이 우리 주석을 포함하고 있다.

{'_comment1': 'this is my comment', 'sport': 'basketball', 'coach': 'Joe Smith', 'wins': 15, 'losses': 5}

심지어 주석의 값(value)인 this is my comment를 빼내 올 수 도 있다.

import json
with open("data.json", mode="r") as j_object:
   data = json.load(j_object)
   print(data["_comment1"])

여기서 기억해야 할 것은 주석은 개발자의 눈에만 주석인 것이지 컴퓨터에게는 주석이 아니라는 점이다.

다른 형식의 주석

이 JSON 주석 관행은 프로그램이 실행될 때 일반적으로 무시되는 파이썬과 같은 프로그래밍 언어의 주석과는 다르다.

# python code 예시
# Here's my comment
word = "house"
for letter in word:
   print(letter)

위의 파이썬 프로그램을 실행하면 "house"라는 단어의 글자들은 보이지만 주석은 보이지 않는다. 주석은 실행되지 않은 것이다.

주석을 다는 또다른 방법

JSMin을 이용하는 것 또한 다른 방법이다.

필요없는 공백이나 주석을 자바스크립트 파일들에서 없애주는 툴이다. 하지만 JSON 파일에도 사용할 수 있다. JSMin은 JSON 파일이 parse되기 전에
파일에 있는 주석들을 지워준다.

이렇듯 JSON 파일들에 주석을 더할 수 있는 방법들이 있다. 완벽한 해결책은 아니지만, 필요한 경우 문서를 포함할 수 있는 방법이 있다는 것을 참고하자.

프로그래밍을 배우는 최고의 방법에 대해서 글을 씁니다(amymhaddad.com)