intellij를 사용하고 있는데, TODO와 FIXME를 이용해서 작업 진행에 대해서 잘 체크해보려고 시도해 보았다. 그런데 그동안 전혀 생각하지도 않았던 문제에 봉착했다. 사용하는 파일중에 json이 있었던 것이다. intellij에서 TODO나 FIXME (혹은 또다른 커스텀 코멘트)는 주석라인에서만 동작한다. 그런데 json 파일에 // (코멘트)를 추가했더니 아래와 같은 warning이 떴다.
1 |
// Line comments are not included in standard but nonetheless allowed. |
json 공식 규격에서 line comment는 제공되지 않는다는 이야기였다. (다만 조금 느슨하게 사용할 수는 있도록 되어 있다)
내가 그동안 관심이 없었던 것이지, 원체 json 진영에서도 왈가왈부했던 주제라서 구글링으로도 쉽게 찾아낼 수 있었다.
그 중에서 가장 official하게 볼 수 있는 것은 Douglas Crockford의 코멘트1이다.
I removed comments from JSON because I saw people were using them to hold parsing directives, a practice which would have destroyed interoperability. I know that the lack of comments makes some people sad, but it shouldn’t.
그런데 곰곰히 생각해보면, json도 data의 형식을 나타내는 포맷이라서…
마치 SQL DB record에 comment가 존재하지 않는 것과 동일한 선상으로 생각하면 어찌보면 당연한 얘기이다.
다만 json에 comment를 사용하고 싶다면 약간의 변칙(?)을 이용할 수 있다. 2
1 2 3 4 5 6 7 8 |
{ "_comment_name_": "name of the item", "name": "Pie", "_comment_id_": "a unique identifier", "id": "pi-56hf9z", "_comment_category_": "a comma-seperated list of categories", "category": "food,pastry" } |
변칙은 되나 TODO나 FIXME는 안되겠네ㅎㅎㅎ json에 주석이 없는줄은 몰랐음
오 너도 몰랐다니!! 나만 모르는 게 아니었군 🙂
js를 자주 쓰는 사람들은 minify나 등등 플러그인을 사용해서 주석을 소스에서만 사용하고 deploy할 때 제거하는 식으로 처리하더라. 난 js 전문가는 아니라서 그냥 안 쓰는걸로 ㅎㅎ