리서치

북마크 내보내기 파일이 가져와지지 않을 때: 직접 측정한 결과

북마크 도구를 바꾸는 일은 늘 같은 결말로 끝납니다. 내보내고, 업로드하고, ‘북마크를 찾을 수 없음’이 뜨거나, 모두 가져왔는데 폴더가 뭉개지고 날짜가 사라지는 결말입니다. 저희는 추측을 멈추고 실제 공개된 내보내기 파일을 가져오기 기능에 넣어 무엇이 들어가고 무엇이 깨지는지 정확히 측정했습니다.

Marqly Team 작성 · 해시로 고정한 공개 파일 · 재현 가능한 실행

작성: Marqly Team · 2026년 10월 6일 업데이트 · 테스트 기준(영문)

북마크 도구를 바꾸는 일은 늘 같은 결말로 끝납니다. 내보내고, 업로드하고, 가져오기 기능이 ‘북마크를 찾을 수 없음’이라고 말하거나, 전부 가져오긴 했는데 폴더가 뭉개지고 날짜가 사라집니다. 저희는 추측을 멈췄습니다. 실제로 공개된 내보내기 파일을 북마크 가져오기 기능에 통과시켜 무엇이 로드되고 무엇이 깨지는지 정확히 측정했습니다. 파일, 파서, 실행 과정은 모두 재현 가능하며 날짜가 기록되어 있습니다.

핵심 발견

  • 261개 중 0개. 포켓의 실제 ril_export.html은 아무것도 파싱되지 않았습니다. 가져오기 기능이 읽는 Netscape 형식이 아니라 ul 목록이기 때문입니다.
  • 43개 중 43개. Chrome의 HTML 내보내기는 완벽하게 가져와졌습니다. 폴더는 그대로이고 태그는 없었습니다(Chrome은 태그를 내보내지 않습니다).
  • 412개 중 306개. Raindrop 내보내기는 모든 항목이 파싱되었지만, 설명 연결 버그로 메모가 달린 항목의 약 4분의 3에서 메모가 엉뚱한 곳에 붙었습니다. 이후 수정되었습니다.
  • 날짜는 유지되지 않습니다. 추가 날짜는 읽힌 뒤 저장 단계에서 버려졌으며, 시간순 기록은 내보내기 파일에만 남습니다.
  • 안전하게 실패하는 것은 제대로 동작하는 것입니다. 잘못된 파일은 절반만 가져오는 대신 명확한 오류를 냈습니다.

방법: 배포된 파서를 그대로 jsdom 환경에 복사해, 해시로 고정한 공개 내보내기 파일에 돌렸습니다. node run.mjs로 모든 숫자를 재현할 수 있습니다. 전체 절차는 테스트 기준(영문)을 참고하세요.

핵심: ‘HTML이면 된다’는 말로는 부족합니다

사람들은 .html 북마크 파일이면 모두 서로 호환된다고 생각합니다. 그렇지 않습니다. 실제로는 (최소) 두 가지 서로 다른 HTML 형태가 있고, 가져오기 기능은 보통 그중 하나만 읽습니다.

무엇을 시험했나

작성자들이 직접 공개한 실제 내보내기 파일 6개를(바이트가 모호하지 않도록 SHA-256으로 고정) 우리 제품이 사용하는 것과 같은 Netscape DL 파서에 넣었습니다. 코퍼스와 해시는 아래에서 내려받을 수 있습니다. 누구의 데이터도 수집하지 않았고, 사람들이 이미 자신의 저장소에 공개해 둔 파일만 사용했습니다.

측정 결과(2026-09-26 실행, Netscape DL 가져오기 기능)

원본 앱 파일 유형 항목 수 가져오기 기능의 동작
Chrome(확장 프로그램 내보내기) Netscape DL 43 43/43 파싱. 폴더 유지. Chrome에는 태그가 없어 태그는 오지 않았습니다.
Raindrop.io(사용자 내보내기) Netscape DL 412 412/412 파싱. 그러나 설명 연결 버그로 메모가 달린 항목 중 306/412(약 4분의 3)에서 메모가 잘못 설정됨. 이후 수정, 아래 참고.
포켓(공식 ril_export.html) UL/LI 목록, DL 아님 261 0/261 파싱. 구조적으로는 유효한 HTML이지만 가져오기 기능이 읽는 북마크 형식이 아닙니다. ‘북마크를 찾을 수 없음’으로 안전하게 실패합니다.
이름이 잘못 붙었거나 손상된 압축 파일 2개 깨진 HTML — 북마크 0개와 명확한 검증 오류. 충돌 없음, 절반만 가져온 라이브러리 없음.

2026년 10월 5일 기준으로 확인한 출처: Raindrop의 자체 가져오기 도움말은 ‘Pocket — HTML 파일로 내보내기’를 받는다고 적고 있습니다. 이는 Raindrop의 파서에는 맞는 말이지만 저희 가져오기 기능과는 다른 가져오기 기능입니다. 저희 논점은 바로 ‘HTML’이 서로 호환되지 않는 여러 형태를 포괄한다는 것입니다. Firefox의 내보내기 문서는 저희가 깔끔하게 읽을 수 있었던 Netscape HTML을 설명합니다. 저희는 저희의 가져오기 기능만 측정했으며, 다른 서비스가 같은 파일에서 실패하는지는 시험하지 않았고 그렇다고 주장하지도 않습니다.

놓치기 쉬운 세 가지 실패

  • 설명이 엉뚱한 링크에 붙었습니다. Raindrop 내보내기는 각 북마크 아래에 DD 메모를 중첩해 둡니다. 배포된 파서가 일부 메모를 이웃 항목에 붙였고, 설명 필드에서 412건 중 306건이 달랐습니다. 파일이 ‘잘 가져와진 것처럼’ 보이면서 미묘하게 틀릴 수 있다는 점이 가장 나쁜 종류의 이전 버그입니다. 눈치채지 못하기 때문입니다. 수정으로 412건 중 258건이 바로잡혔고, 나머지는 원래 메모가 없는 항목입니다.
  • 원래 저장 날짜가 버려집니다. 파서는 ADD_DATE/created 타임스탬프를 읽지만 저장 단계에서 버려서 가져온 모든 항목이 가져온 날짜를 갖게 됩니다. 이 파일이 유일한 시간순 기록입니다. 나중에 알게 되도록 두지 않고 분명히 말씀드립니다. Marqly로 가져오면 저장 날짜는 유지되지 않습니다. (위에서 본 Raindrop CSV 명세는 created를 가져올 수 있다고 보여 주며, 형식과 도구가 서로 다르다는 또 하나의 신호입니다.)
  • 안전하게 실패하는 것은 기능입니다. 포켓 HTML 0/261 결과와 손상된 압축 파일 실행은 일부만 쓰는 대신 ‘북마크를 찾을 수 없음’을 냈습니다. 라이브러리의 절반을 조용히 가져오는 가져오기 기능이 거부하는 기능보다 더 위험합니다.

도구를 옮기는 중이라면

  • 포켓을 떠나는 중이라면 가져오기 기능에 ril_export.html을 넘겨 놓고 잘 되었다고 가정하지 마세요. 내보내기 압축 파일에서 list.csv를 찾아 그것을 가져오거나, 먼저 북마크 파일 뷰어 또는 포켓 내보내기 변환기로 두 파일을 미리 확인하세요. 구체적인 구조는 포켓 내보내기 파일에는 무엇이 들어 있나에서 볼 수 있습니다.
  • 브라우저의 Netscape HTML 내보내기(Chrome/Edge/Firefox/Safari)가 가장 이식성이 높습니다. Marqly를 포함해 거의 모든 도구가 읽는 형식입니다.
  • 무엇을 고르든 내보내기 파일은 보관하세요. 날짜와 원래 구조는 왕복하면서 거의 살아남지 못합니다.

방법과 재현성

테스트 기준(영문)에 따른 절차입니다. 시험 대상 파서는 저희 서비스의 실제 북마크 파서를 그대로 복사한 것이고, 시험 파일은 실제로 공개된 내보내기 파일(제3자의 dotfiles와 코퍼스)이며 SHA-256으로 정확한 바이트를 고정했습니다. 각 항목은 파일이 선언한 내용(URL, 제목, 태그, 설명, 폴더, 날짜)과 필드 단위로 대조했습니다. 이는 하나의 가져오기 기능을 실제 입력으로 시험한 충실도 검사이며 서비스 간 비교가 아닙니다. 코퍼스나 방법이 바뀌면 날짜가 적힌 변경 메모와 함께 이 페이지를 갱신하겠습니다.

코퍼스 목록 내려받기(CSV, SHA-256 고정)

이것으로 고쳐지는 라이브러리를 원하신다면

Marqly는 브라우저 HTML 내보내기와 포켓의 list.csv를 읽은 뒤, Pro의 AI 의미 기반 검색(영문)으로 의미만으로 저장 항목을 찾게 해 줍니다. 가이드: 포켓 이전, Raindrop 이전, 브라우저 북마크 이전.

이 연구에 대한 자주 묻는 질문

포켓 내보내기는 왜 가져와지지 않았나요?

포켓의 실제 ril_export.html은 ul 목록이어서 가져오기 기능이 읽는 Netscape 형식이 아니었습니다. 261개 항목 중 0개가 파싱되었고, 파일은 안전하게 실패하며 ‘북마크를 찾을 수 없음’ 메시지를 냈습니다. 내보내기 ZIP 안의 list.csv를 가져오세요.

가져오면 원래 저장 날짜가 유지되나요?

아니요. 파서는 ADD_DATE/created 타임스탬프를 읽지만 저장 단계에서 버려서, 가져온 모든 항목이 가져온 날짜를 갖습니다. 내보내기 파일이 유일한 시간순 기록이므로 반드시 보관하세요.

다른 서비스의 가져오기 기능도 같은 문제를 보이나요?

저희는 Marqly의 가져오기 기능만 측정했고 다른 서비스가 같은 파일에서 실패하는지는 시험하지 않았습니다. 그렇다고 주장하지도 않습니다. 이 연구는 하나의 가져오기 기능을 실제 입력에 대해 시험한 충실도 검사이며 서비스 간 비교가 아닙니다.

홈 · Marqly