분석 도구 호환성·가독성·파일 크기·시간 4가지 축으로 비교. 결론: 분석 목적이면 항상 JSON.
Instagram 공식 데이터 내보내기 화면에서 마지막에 묻는 질문 — "Format: HTML or JSON?". 많은 사용자가 이 단계에서 망설이거나, "예쁘게 보이는" HTML을 선택했다가 분석 도구가 파일을 받지 않아 다시 요청하게 됩니다. 이 글은 두 형식의 차이를 4가지 축에서 정리하고, 어떤 용도에는 어떤 걸 받아야 하는지 명확히 결론짓습니다. 한 줄 결론: 자동 분석이 목적이면 JSON, 사람이 직접 읽을 거면 HTML.
| 비교 축 | HTML | JSON |
|---|---|---|
| 분석 도구 호환 | 거의 0% | 100% |
| 사람 가독성 | 높음 (브라우저로 바로 열림) | 낮음 (텍스트 편집기 필요) |
| 파일 크기 | 1.5~2.5배 큼 | 작음 |
| 처리 시간 | JSON 대비 1.3~1.8배 | 빠름 |
| 스키마 안정성 | HTML 마크업 변경 잦음 | 키 이름 변경 드뭄 |
| 데이터 완전성 | 동일 | 동일 |
두 형식 모두 같은 정보를 담습니다. 차이는 "어떻게 표현하는가"뿐입니다. 그래서 데이터 완전성 자체는 같고, 위 표의 다른 모든 항목에서 JSON이 분석에 압도적으로 유리합니다.
CheckMate를 포함한 대부분의 도구는 JSON만 받습니다. 이유는 셋입니다.
HTML은 의미보다 표시 형식을 우선합니다. 같은 "팔로워 username"이 한 페이지에서는 <a class="_a6-p"> 안에, 다른 페이지에서는 <span data-name="follower"> 안에 들어가는 식으로 마크업이 다릅니다. Meta가 마크업을 한 번이라도 바꾸면 HTML 파서는 곧장 깨집니다. JSON은 relationships_followers[].string_list_data[].value 같은 키 경로가 거의 변하지 않아 파서가 안정적입니다.
JSON은 단일 패스 파싱으로 끝나지만 HTML은 DOM 트리를 만들고 셀렉터로 탐색해야 합니다. 5만 명 팔로워 기준 우리 측정으로 JSON 파싱은 평균 80ms, HTML 파싱은 평균 240ms입니다. 클라이언트에서 처리하는 도구는 이 차이가 사용자 체감에 직접 영향을 줍니다.
HTML 파싱은 인코딩·이모지·줄바꿈 같은 엣지 케이스에서 오류가 잦습니다. 한국어 username이 깨져서 잡히거나 한 줄에 두 username이 붙어 있는 식의 문제가 흔합니다. JSON은 UTF-8 보장에 구조가 일관돼 이런 문제가 거의 없습니다.
한 사용자(예: example_user)가 팔로워 목록에 있을 때 두 형식이 어떻게 표현하는지 비교해 보겠습니다.
{
"title": "",
"media_list_data": [],
"string_list_data": [
{
"href": "https://www.instagram.com/_u/example_user",
"value": "example_user",
"timestamp": 1696000000
}
]
}
<div class="_a6-g">
<div class="_a6-i">
<a href="https://www.instagram.com/_u/example_user"
class="_a6-p">example_user</a>
<div class="_a6-q">2023-09-29</div>
</div>
</div>
HTML 쪽은 데이터를 보여주는 부수적인 클래스 이름과 div 중첩이 같이 들어 있습니다. 클래스 이름은 Meta가 자주 바꿔(우리 관측으로 분기당 1~2회), 어제 잘 동작하던 HTML 파서가 오늘 갑자기 빈 결과를 내는 일이 흔합니다.
실용적으로는 거의 항상 JSON이 정답입니다. "사람이 직접 보는 용도"라면 JSON을 받고, 나중에 분석 도구의 결과를 이미지로 저장하는 편이 더 효율적입니다.
Stack Overflow나 GitHub에서 instagram-html-to-json 같은 변환 스크립트가 검색됩니다. 기술적으로 가능합니다. 다만 실용적으로는 권장하지 않습니다.
결론은 단순합니다. HTML로 받았다면 JSON으로 다시 요청하세요. 옵션 외에 다른 모든 항목은 그대로 두고 형식만 JSON으로 바꿔서 재요청하면 됩니다. 일반적으로 5분~24시간 안에 도착합니다(48시간 이상 늦으면 지연 해결 가이드를 보세요).
Instagram 데이터 요청 화면에서 형식 선택은 마지막 화면 우측에 있습니다. 작은 드롭다운이라 놓치기 쉽습니다.
정상 동작입니다. CheckMate를 비롯한 거의 모든 분석 도구는 JSON만 지원합니다. HTML은 사람이 보기 위한 형식이라 구조 파싱이 까다롭고 도구마다 결과가 들쭉날쭉해 지원하지 않습니다. JSON으로 다시 요청하세요(처리 시간 5분~24시간).
예. HTML은 브라우저로 열어 사람이 읽기 좋게 만든 형식이고, JSON은 기계가 처리하기 좋은 형식입니다. 두 형식 모두 같은 데이터를 담고 있지만, 자동 분석은 거의 항상 JSON을 요구합니다.
기술적으로 가능하지만 권장하지 않습니다. HTML 파싱 결과가 도구마다 달라 데이터 누락이 흔합니다. JSON으로 다시 요청하는 것이 5분~24시간이면 끝나고 정확합니다. 본문 5번 섹션에서 변환을 권하지 않는 이유를 자세히 설명합니다.
없습니다. 한 요청에 한 형식만 선택할 수 있습니다. 두 형식이 모두 필요하다면 두 번 요청해야 합니다.
대략 HTML이 JSON 대비 1.5~2.5배 큽니다. HTML은 태그·CSS·embedded image가 포함되기 때문입니다. 분석 목적이라면 JSON이 다운로드·처리 모두 빠릅니다.