데이터를 가져오는 두 가지 방법
KOBIS 데이터는 무료이고, 파일로 받을 때는 로그인도 필요 없습니다. 같은 데이터라도 가져오는 방법에 따라 속도와 수고가 달라집니다.
| 오픈 API 호출 | 엑셀 파일 내려받기 | |
|---|---|---|
| 방식 | 날짜 하루씩, 영화 한 편씩 주소(URL)로 요청 | 역대 상위 500편 표를 파일 하나로 한 번에 받기 |
| 준비 | 회원가입 후 인증키 발급 필요 | 없음 — 버튼 한 번 |
| 속도 | 기간이 길수록 수천 번 호출 — 느림 | 파일 하나 — 빠름 |
| 적합한 상황 | 매일 새 순위를 자동으로 받아야 할 때 | 전체를 놓고 집계·비교할 때 |
KOBIS도 오픈 API를 제공하지만, 인증키 없이 요청하면 "유효하지않은 키값입니다."라는 답만 돌아옵니다. 게다가 API는 "그날의 박스오피스 10위"처럼 하루 단위로 답하기 때문에, 역대 순위를 만들려면 수천 일치를 요청해 합쳐야 합니다.
오늘처럼 "연도별 평균을 비교"하는 작업은 전체 데이터가 필요하므로 파일 내려받기가 유리합니다. 통계정보 → 역대 박스오피스 → 엑셀 버튼으로 받은 파일 하나면 충분합니다.
💡 파일을 못 받았다면 — 수업용으로 같은 날(2026-09-28) 받아 둔 사본이 있습니다. 원본 엑셀 파일 · 정리한 CSV
엑셀인데, 엑셀이 아니다
받은 파일 이름은 KOBIS_역대_박스오피스_내역(공식통계_기준)_2026-09-28.xls입니다. 엑셀 프로그램으로 열면 잘 보이는데, 파이썬에서 엑셀로 읽으려 하면 이런 오류가 납니다.
ValueError: Excel file format cannot be determined, you must specify an engine manually.
파일 속을 열어 보면 진짜 엑셀이 아니라 웹페이지(HTML)에 표를 담고 확장자만 .xls로 붙인 파일입니다. 공공 사이트의 "엑셀 다운로드"에서 흔히 만나는 모습입니다. 이럴 때 Claude Code에 오류 메시지를 그대로 보여 주면, 파일 속을 확인하고 웹페이지 표로 읽는 방법으로 바꿔 줍니다.
"KOBIS에서 받은 역대 박스오피스 .xls 파일을 읽어줘. 엑셀로 안 읽히면 파일 속이 실제로 어떤 형식인지 확인하고 맞는 방법으로 읽어서, 몇 편이 들어 있는지와 열 이름을 알려줘."
💡 전처리도 여기서 함께. 결측치·중복·형태가 다른 값을 맞추는 작업까지 같은 대화 안에서 Claude Code에 시킬 수 있습니다.
데이터 소스는 한 곳이 아니다
오늘은 KOBIS 한 곳을 쓰지만, 실제 분석에선 여러 소스를 섞는 경우가 많습니다. 어디서 오든 Claude Code에 "여기서 가져와줘"라고 말하는 방식은 같습니다.
| 소스 | 예시 | 가져오는 방법 |
|---|---|---|
| API | KOBIS 오픈 API, 날씨·환율 API | 인증키를 받아 주소(URL)로 요청 |
| 통계 사이트 파일 | KOBIS 역대 박스오피스, 통계청 KOSIS | 엑셀·CSV 버튼으로 내려받기 |
| 공공데이터 | 공공데이터포털, 서울 열린데이터광장 | 파일 다운로드 또는 오픈 API |
| 내 파일 | 업무 엑셀, 설문 결과 CSV | 폴더에 넣고 파일명을 알려주기 |
전처리 — 분석할 수 있는 모양으로 다듬기
받은 데이터를 바로 계산할 수 있는 경우는 드뭅니다. 이 파일에서도 네 가지 손질이 필요했습니다.
| 손질 | 박스오피스 데이터에서 |
|---|---|
| 군더더기 걷어내기 | 표 위의 제목·조회일·출처 네 줄을 빼고, 거의 비어 있는 "서울 기준" 열 두 개를 지우기 |
| 형태 맞추기 | 개봉일(2014-07-30)을 날짜로 바꾸고 개봉 연도 열 만들기 |
| 단위 맞추기 | 매출액 135748398910(원)을 억 원 단위로, 관객 수를 만 명 단위로 |
| 빈 값 표시하기 | 2008년 이전 개봉작 99편의 매출 0을 "기록 없음"(결측)으로 바꾸기 — 0으로 두면 평균 매출이 엉터리로 낮아짐 |
"읽어 온 박스오피스 표를 분석하기 좋게 전처리해줘. 1) 비어 있는 열은 지우고 2) 개봉일에서 개봉 연도 열을 만들고 3) 매출액은 억 원, 관객 수는 만 명 단위 열을 추가하고 4) 매출액이 0인 행은 결측으로 바꾼 뒤 몇 개인지 알려줘."
수집은 코드를 외우는 일이 아니라, 무엇을 어떻게 가져올지 판단하는 일입니다. 판단만 서면 실행은 자연어로 시키면 됩니다.