공유한 HTML의 차트가 비어 있다면 내 PC에만 있는 파일 경로, 외부 데이터 접근, 실행에 필요한 라이브러리를 각각 확인한다. 파일을 보냈다고 해서 그 파일이 참조하는 데이터와 실행 환경까지 전달되지는 않는다.
따라서 확인할 것은 파일 확장자가 아니다. 수신자의 환경에 차트를 다시 표시할 코드·연결·권한이 모두 있는지부터 봐야 한다. HTML로 내보냈다는 사실만으로 오프라인 열람이나 다른 사람의 열람이 보장되지는 않는다.
파일 밖에 남은 의존성을 나눈다

한 갈래는 차트 라이브러리다. Plotly는 Plotly.js를 포함한 상호작용 HTML 파일을 만들 수 있다고 안내한다. 이 경우 파일 하나로 전달하기는 쉬워지지만 기본 출력은 5MB를 넘을 수 있다. 반대로 라이브러리를 외부에서 불러오도록 만들었다면 수신 환경의 인터넷 연결과 스크립트 로드 조건이 필요하다. Plotly의 인터랙티브 HTML 내보내기 문서는 라이브러리 포함 방식과 템플릿 삽입 방식을 구분한다.
다른 갈래는 게시 서버다. Tableau의 내장 뷰에는 서버 또는 Cloud의 URL과 게시된 뷰 정보가 필요하다. HTML에 내장 코드가 있더라도 수신자가 해당 서버에 연결할 수 없거나 뷰가 게시돼 있지 않으면 차트는 표시되지 않는다. 이는 파일을 전달하는 일과 서버에서 뷰를 제공하는 일이 서로 다른 조건임을 보여준다. Tableau의 뷰 내장 코드 안내에서 내장 코드의 구성 방식을 확인할 수 있다.
데이터 권한도 별도로 남는다. Google Cloud 문서는 보고서를 볼 수 있는 권한과 원본 데이터 접근 권한이 같은 문제가 아닐 수 있다고 설명한다. 사용자 인증 정보가 필요한 데이터 소스라면 보고서 링크를 열 수 있어도 수신자가 원본 위치에 접근하지 못해 데이터가 표시되지 않을 수 있다. Looker와 Data Studio에서 공유하는 용어 및 개념은 이 구분을 설명한다.
작성자 환경 밖에서 먼저 시험한다
작성자 컴퓨터에서 보인다는 결과만으로는 부족하다. 로그인하지 않은 새 브라우저 프로필에서 파일이나 링크를 열어 본다. 오프라인 열람이 목적이면 인터넷 연결을 끈 상태에서도 확인한다. 이 검사는 도구별 설정을 확정하는 방법은 아니지만, 작성자 계정·캐시·네트워크가 문제를 가리고 있는지 가르는 데 쓸 수 있다.
오프라인에서만 비고 온라인에서 보인다면 외부 라이브러리나 게시 서버 의존성을 우선 의심할 만하다. 작성자에게만 보인다면 데이터 권한과 공유 권한을 분리해 점검한다. 일부 차트만 비면 그 차트에 연결된 데이터 소스나 필터 조건이 다른지도 확인한다. 이 세 경우는 원인을 확정하는 규칙이 아니라, 재내보내기 전에 확인할 범위를 좁히는 분류다.
전달 목적에 따라 공유 방식을 고른다
인터넷 없이 같은 화면을 전달해야 하고 차트에 필요한 라이브러리와 데이터가 파일에 포함돼 있다면 독립 HTML이 맞을 수 있다. 다만 외부 API나 서버 콜백으로 갱신되는 대시보드까지 독립 실행을 보장하는 방식은 아니다. 실제 생성 파일의 크기와 전달 채널의 첨부 제한도 함께 확인해야 한다. Plotly가 언급한 5MB 이상은 모든 HTML의 고정 크기가 아니라 Plotly.js를 포함한 기본 출력에서 생길 수 있는 규모다.
최신 데이터, 필터, 드릴다운이 필요하면 게시된 보고서 링크나 내장이 더 적합하다. 이때는 서버 연결과 게시 상태, 보고서 권한, 원본 데이터 권한을 따로 확인한다. 링크가 열린다는 사실만으로 수신자에게 데이터가 보인다고 판단할 수는 없다.
수신자가 결과를 읽기만 하면 되고 상호작용이나 갱신이 필요 없다면 PDF나 이미지처럼 정적인 형식으로 전달할 수도 있다. 이는 HTML의 표시 문제를 해결하는 방법이라기보다 브라우저 실행·서버 연결·권한에 대한 의존성을 줄이는 선택이다. 전달 전에는 정적 결과가 최신 데이터로 만들어졌는지 확인해야 한다.

차트가 비는 문제는 HTML이라는 형식만으로 판단하기 어렵다. 파일에 포함된 JavaScript, 게시 서버 연결, 원본 데이터 접근 권한 중 무엇이 수신자에게 제공되지 않았는지 구분하면 재내보낼지, 공유 방식을 바꿀지 판단할 수 있다.