Zotero 10 업데이트 후 Better BibTeX 인용키가 바뀌었을 때: Quarto·LaTeX 복구 절차

논문 원고에서 인용은 저자명이나 제목이 아니라 짧은 식별자로 연결된다. Zotero에서 보이는 자료가 그대로 남아 있어도 Better BibTeX 인용키가 바뀌면 Quarto의 [@키], R Markdown의 Pandoc 인용, LaTeX의 \cite{키}가 새로 내보낸 참고문헌 파일과 연결되지 않는다.

이때 가장 위험한 대응은 원인을 확인하지 않은 채 전체 라이브러리의 키를 다시 생성하는 것이다. 한 원고의 오류를 고치려다 이미 제출했거나 공동연구자가 관리하는 여러 저장소의 인용까지 어긋날 수 있기 때문이다.

이 글은 2026년 9월 7일 한국 시간 기준 Zotero, Better BibTeX, Quarto, Pandoc의 공식 자료와 공개된 기능을 바탕으로 작성한 사전 복구 가이드다. 실제 Zotero 7·8·9·10 라이브러리를 순차 업그레이드한 사용 기록은 제공되지 않았으므로, 메뉴 표시와 마이그레이션 대화상자의 분기별 결과는 별도 재현 검증이 필요하다.

핵심 결론

첫째, Zotero 10이 네이티브 Citation Key 필드를 처음 도입한 것은 아니다. Better BibTeX 공식 문서에 따르면 전환의 기준점은 Zotero 8이며, Zotero 10은 2026년 8월 17일 공개됐다. Zotero 7에서 곧바로 Zotero 10으로 이동했거나 Better BibTeX를 뒤늦게 갱신한 사용자는 이 전환을 Zotero 10 업데이트 문제로 체감할 수 있다.

둘째, 깨진 원고가 있다면 기존 키를 먼저 보존하는 편이 안전하다. 새 키가 더 보기 좋다는 이유만으로 재생성하지 말고, 업데이트 전 BibTeX 파일과 현재 Citation Key를 대조해 어떤 키가 실제 원고에서 사용됐는지 확인해야 한다.

셋째, 복구 방법은 영향 범위에 따라 결정한다. 여러 원고가 기존 키를 공유한다면 Zotero의 키를 이전 값으로 복원하는 편이 유리하고, 새 명명 규칙으로 조직 전체를 전환하기로 결정했다면 구키와 신키의 대응표를 만든 뒤 원고를 일괄 치환해야 한다.

넷째, 복구 완료 기준은 Zotero 화면이 아니라 전체 렌더링 결과다. 중복 키, 참고문헌 파일에 없는 키, 잘못된 자료로 연결된 키를 점검하고 Quarto·R Markdown·LaTeX 원고를 처음부터 다시 빌드해야 한다.

검토 방법

이번 검토에서는 Zotero 10 공식 발표와 Zotero 버전 기록으로 출시 시점과 변경 범위를 확인했다. 네이티브 Citation Key 이전 방식과 생성 규칙은 Better BibTeX 공식 문서, Citation Keys 안내, 변경 기록을 기준으로 검토했다.

원고 측 연결 구조는 Quarto 인용 문서와 Pandoc 사용자 안내서를 확인했다. 다음 표와 절차는 제품 순위를 매기는 비교가 아니라, 기존 식별자를 보존하면서 마이그레이션 위험을 줄이기 위한 작업 순서다.

전체 복구 절차 비교표

단계 확인 대상 권장 조치 주요 실패 조건
1. 동결 Zotero 동기화와 자동 내보내기 대량 수정 전 자동 동작을 잠시 멈춘다 잘못된 키가 서버와 저장소에 확산됨
2. 백업 데이터 디렉터리, 기존 .bib, 원고 서로 다른 위치에 복사하고 Git 커밋을 남긴다 .bib 내보내기만 라이브러리 백업으로 오인함
3. 비교 구 .bib 키, 현재 Citation Key 자료별 구키·신키 대응표를 작성한다 제목만 비교해 동명이거나 중복된 자료를 혼동함
4. 판단 영향을 받는 원고와 공동연구자 키 복원 또는 원고 치환 중 하나를 선택한다 두 방식을 일부씩 적용해 기준이 섞임
5. 탐지 .qmd, .Rmd, .tex, .bib 사용 키와 제공 키의 차집합을 구한다 Quarto 교차참조나 이메일을 인용키로 잘못 셈
6. 검증 렌더 로그와 최종 참고문헌 캐시를 배제하고 전체 원고를 다시 빌드한다 경고가 없다는 이유로 잘못 연결된 자료를 놓침

왜 인용키 하나가 바뀌면 원고가 깨지는가

Quarto와 Pandoc은 원고의 인용 식별자를 참고문헌 데이터의 항목 식별자와 대조한다. 예를 들어 원고에 [@kimOpenScience2024]가 있으면 연결된 .bib 또는 다른 참고문헌 데이터에도 같은 식별자가 있어야 한다. Quarto 공식 문서도 원고에 인용 문법, 참고문헌 데이터, 필요시 CSL 스타일이 있어야 한다고 설명한다.

LaTeX에서도 원리는 같다. \cite{kimOpenScience2024}가 있는데 .bib에는 kimResearch2024만 있다면 BibTeX 또는 Biber가 이전 항목을 찾지 못한다. 문제의 핵심은 서지정보가 사라진 것이 아니라 원고와 참고문헌 사이의 외래키가 달라진 데 있다.

따라서 화면에서 저자, 연도, 제목이 정상적으로 보이는지만 확인해서는 충분하지 않다. 같은 자료가 새 키로 존재해도 원고는 자동으로 그것이 이전 자료와 동일하다는 사실을 알지 못한다.

Zotero 네이티브 Citation Key와 Better BibTeX의 역할

Better BibTeX 공식 안내는 Zotero 8부터 네이티브 Citation Key 필드가 BBT의 기존 키 저장 위치를 대체했다고 밝힌다. Zotero 7 시대에는 BBT가 자체 데이터베이스에서 키를 관리했고, 고정한 키는 Extra 필드에도 기록될 수 있었다. 따라서 과거의 모든 키가 Extra에 남아 있었다고 가정해서는 안 된다.

현재 구조에서는 Zotero가 Citation Key 필드를 제공하고 Better BibTeX가 키 생성 공식, 충돌 회피, BibTeX·BibLaTeX 내보내기와 자동 내보내기 기능을 담당한다. 네이티브 필드로 옮겨진 키는 동기화될 수 있다는 장점이 있지만, 기존 BBT 저장소와 네이티브 필드에 서로 다른 값이 함께 존재했다면 마이그레이션 선택이 필요할 수 있다.

Zotero 10의 공식 변경 기록에는 Citation Key 마이그레이션이 주요 사용자 기능으로 기재돼 있지 않다. 그러므로 “Zotero 10이 키를 새로 만들었다”고 단정하기보다, Zotero 8 이후의 필드 전환, Better BibTeX 버전 변경, 생성 공식 변경 또는 Refresh 실행이 같은 시점에 일어났는지 구분해야 한다.

업데이트 전 반드시 백업할 것

1. Zotero 데이터 디렉터리

Zotero 공식 백업 문서는 Zotero를 종료한 뒤 zotero.sqlite, storage와 하위 폴더를 포함한 데이터 디렉터리 전체를 복사하라고 안내한다. 동기화는 서버의 최신 상태도 바꿀 수 있으므로 시점별 백업을 완전히 대신하지 않는다.

공식 문서는 BibTeX나 RIS 내보내기를 정확한 라이브러리 백업으로 사용하지 말라고 경고한다. 내보내기와 재가져오기는 추가·수정 날짜를 바꾸거나 워드프로세서 문서의 기존 연결을 끊을 수 있기 때문이다.

2. 마지막으로 정상 작동한 참고문헌 파일

원고와 함께 사용했던 references.bib는 복구에서 매우 중요하다. 완전한 Zotero 백업은 아니지만 각 항목 첫 줄의 식별자가 당시 원고가 참조한 키를 보여 주므로, 구키를 복원하는 기준표가 된다.

자동 내보내기를 쓰고 있었다면 현재 파일로 덮어쓰기 전에 이전 Git 커밋, 클라우드 파일 버전, 운영체제 백업을 확인한다. 자동 내보내기 경로가 원고 저장소 안에 있다면 키 변경이 이미 커밋됐는지도 살펴봐야 한다.

3. 원고 저장소와 빌드 기록

.qmd, .Rmd, .tex뿐 아니라 프로젝트 설정 파일, 부록, 장별 파일, 생성 스크립트를 함께 보존한다. 논문 본문만 검색하면 별도 장과 표 설명, 슬라이드, 보충자료에 남은 구키를 놓칠 수 있다.

기존 키와 현재 키를 비교하는 순서

  1. 업데이트 전 .bib 사본에서 각 항목의 구키와 DOI, 제목, 연도를 추출한다.
  2. Zotero 항목 목록에서 Citation Key 열을 표시할 수 있는지 확인하고 현재 키를 기록한다.
  3. 항목 세부정보의 네이티브 Citation Key와 Extra 필드에 남은 이전 형식의 값을 확인한다.
  4. 현재 설정으로 새 .bib를 별도 파일명에 내보내 구 파일과 비교한다.
  5. 구키, 신키, DOI 또는 Zotero 항목 식별자를 한 행에 둔 대응표를 만든다.

DOI가 있는 학술논문은 DOI를 대조 기준으로 삼기 쉽지만, 책·보고서·학위논문에는 DOI가 없을 수 있다. 이 경우 제목만 사용하지 말고 저자, 연도, 자료 유형을 함께 확인해야 한다. 중복 등록된 항목은 같은 DOI를 가질 수 있으므로 Zotero의 중복 항목 정리 여부도 별도로 기록한다.

키 유지, 다시 생성, 중복 해소 중 무엇을 선택할까

상황 우선 선택 이유
완성 단계 원고가 여러 편 있음 기존 키 복원 원고와 과거 .bib를 고치지 않고 연결을 유지하기 쉬움
새 프로젝트이며 기존 인용이 거의 없음 새 공식 적용 가능 영향 범위가 작고 운영 규칙을 통일하기 쉬움
연구실 공용 라이브러리 공동 대응표 작성 후 결정 개인의 일괄 Refresh가 다른 구성원의 원고에 영향을 줄 수 있음
서로 다른 자료가 같은 키를 사용함 한쪽 키만 변경 중복 키를 유지하면 내보내기와 인용 해석이 불안정해짐
키가 보기 싫지만 원고는 정상임 변경 보류 미관보다 기존 원고의 재현성이 중요함

기존 키 복원은 현재 Zotero Citation Key에 과거 값을 다시 넣고 새 .bib에 동일하게 출력되는지 확인하는 방식이다. 여러 원고가 한 키를 공유한다면 수정 지점이 Zotero 한곳으로 모인다는 장점이 있다.

원고 치환은 새 키를 기준으로 모든 소스 파일을 바꾸는 방식이다. 명명 정책을 의도적으로 개편할 때는 적합하지만 구키와 신키가 일대일로 대응한다는 보장이 있어야 한다. 키에 정규식 특수문자가 포함돼 있거나 비슷한 키가 중첩돼 있다면 단순 문자열 치환이 엉뚱한 부분을 바꿀 수 있다.

Better BibTeX 키 패턴을 안전하게 다루는 법

공식 문서가 제시하는 현재 기본 패턴은 auth.lower + shorttitle(3,3) + year다. 첫 저자명, 제목 일부, 연도를 결합하고 충돌 시 문자 접미사를 붙이는 방식이다. 표준 Zotero BibTeX 내보내기에서 사용하던 키에 가깝게 이전하려는 사용자를 위해 zotero.clean도 안내한다.

중요한 점은 패턴을 편집했다고 기존 키가 즉시 모두 바뀌지는 않는다는 것이다. 공식 문서에 따르면 변경된 패턴은 이후 생성·수정되는 항목에 적용되며, 기존 항목을 새 공식으로 바꾸려면 항목을 선택해 Better BibTeX의 Refresh를 실행해야 한다.

따라서 복구 과정에서는 전체 라이브러리 Refresh를 먼저 누르지 않는다. 테스트용 복제 라이브러리나 소수 항목에서 구키·신키와 충돌 접미사를 확인한 뒤 적용 범위를 결정해야 한다. 특히 저자명, 제목, 연도를 키 재료로 쓰면 메타데이터 교정이 키 변경 조건이 될 수 있으므로 현재의 자동 채우기·변경 시 재설정 관련 옵션도 확인해야 한다.

Quarto·R Markdown·LaTeX에서 깨진 키 찾기

원고에 있는 키와 .bib의 키를 집합으로 비교한다

가장 확실한 원리는 단순하다. 모든 원고에서 사용한 인용 식별자 집합을 만들고, .bib에 정의된 식별자 집합을 만든 뒤 원고 집합에서 .bib 집합을 뺀 값을 찾는다. 남은 값이 참고문헌 파일에 없는 후보 키다.

다만 Quarto에는 @fig-, @tbl-, @eq-, @sec- 같은 교차참조가 있고 본문에는 이메일 주소도 있을 수 있다. 단순히 @로 시작하는 문자열을 모두 수집하면 오탐이 생기므로 대괄호 인용 문맥, 세미콜론으로 묶인 복수 인용, 서술형 인용을 함께 고려해야 한다.

렌더와 컴파일 로그를 보조 증거로 사용한다

Quarto는 기본적으로 Pandoc의 citeproc을 사용하며 PDF에서는 설정에 따라 natbib 또는 biblatex를 선택할 수 있다. 같은 .qmd 파일이라도 cite-method에 따라 경고가 발생하는 단계와 문구가 달라질 수 있다.

LaTeX 원고는 .log 파일의 undefined citation 경고와 최종 PDF의 물음표 표시를 확인한다. 그러나 증분 빌드와 보조 파일 때문에 과거 결과가 남을 수 있으므로 복구 검증에서는 임시 빌드 산출물을 정리한 뒤 전체 컴파일을 수행하는 편이 안전하다.

구체적인 정규식과 셸 명령은 운영체제, 사용 중인 셸, Quarto 버전에 따라 따옴표와 이스케이프 처리가 달라진다. 자동 치환 명령은 복사본에서 먼저 실행하고 Git diff로 변경 범위를 검토해야 한다.

키가 이미 바뀐 원고를 복구하는 두 방법

방법 A: Zotero 키를 이전 값으로 복원

  1. 정상 작동했던 .bib에서 구키를 확보한다.
  2. DOI와 제목을 이용해 Zotero의 동일 항목을 찾는다.
  3. 현재 Citation Key를 구키로 되돌린다.
  4. Better BibTeX 형식으로 별도 .bib를 내보낸다.
  5. 구키가 그대로 출력되는지와 중복 여부를 확인한다.
  6. 기존 원고를 수정하지 않고 전체 렌더링한다.

이 방법은 원고 수가 많고 기존 키가 이미 연구실의 비공식 식별자 역할을 할 때 적합하다. 반면 현재 라이브러리에 같은 키가 이미 있다면 먼저 충돌 대상을 해결해야 한다.

방법 B: 원고를 새 키로 일괄 치환

  1. 구키와 신키의 확정된 대응표를 만든다.
  2. 원고 저장소 전체를 새 Git 브랜치나 복사본으로 분리한다.
  3. 긴 키와 유사 키를 포함한 치환 순서를 검토한다.
  4. .qmd, .Rmd, .tex, 부록과 설정 파일을 치환한다.
  5. diff에서 인용 외 문자열이 바뀌지 않았는지 확인한다.
  6. 모든 출력 형식을 다시 빌드하고 참고문헌을 육안 검토한다.

자료 A의 구키가 자료 B의 신키가 되는 순환 관계가 있다면 순차 치환이 값을 덮어쓸 수 있다. 이 경우 임시 식별자를 거치는 방식이나 대응표를 한 번에 처리하는 스크립트가 필요하며, 이 부분은 실제 샘플 저장소에서 반드시 검증해야 한다.

공동연구·그룹 라이브러리 운영 규칙

  • Citation Key 생성 패턴과 Better BibTeX 주요 설정을 연구실 문서에 기록한다.
  • 제출 중인 원고가 있으면 전체 Refresh와 패턴 변경을 동결한다.
  • 키를 수동 변경할 수 있는 담당자와 승인 절차를 정한다.
  • 자동 내보낸 .bib를 원고 저장소에서 버전 관리한다.
  • 키 변경 커밋에는 구키·신키 대응표와 영향받는 원고를 남긴다.
  • 자료를 복제할 때 생성되는 중복 키를 점검한다.

Better BibTeX 변경 기록에는 복제된 항목의 Citation Key를 비워 중복을 방지하는 수정도 기재돼 있다. 다만 팀 구성원의 Zotero와 BBT 버전이 다르면 같은 동작을 기대하기 어려우므로 업데이트 시점도 공동으로 관리하는 편이 좋다.

무료 사용자와 유료 사용자의 차이

Zotero 프로그램과 Better BibTeX, Quarto는 기본적으로 무료로 사용할 수 있다. Quarto는 공식 FAQ에서 오픈소스 도구임을 밝히고 있으며, Citation Key 복구 기능을 쓰기 위해 별도의 Better BibTeX 유료 요금제가 필요한 것은 아니다.

비용 차이는 주로 Zotero 파일 동기화 용량에서 생긴다. 2026년 9월 7일 Zotero 공식 가격표에는 300MB 무료, 2GB 연 20달러, 6GB 연 60달러, 무제한 연 120달러가 표시돼 있다. 그룹 파일은 그룹 소유자의 저장 용량을 사용한다.

다만 유료 저장 공간도 시점별 백업은 아니다. 잘못 바뀐 키가 동기화되면 서버의 최신 상태도 갱신될 수 있으므로 무료·유료 사용자 모두 로컬 데이터 디렉터리와 원고 저장소의 독립 백업이 필요하다.

주요 한계와 주의사항

  • 이 글은 Zotero 10 자체가 Citation Key 변경을 일으켰다고 단정하지 않는다. 공식 기록상 네이티브 필드 전환은 Zotero 8에서 시작됐다.
  • 과거에 고정하지 않은 BBT 키가 Extra 필드에 모두 남아 있다고 기대해서는 안 된다.
  • .bib 파일은 구키를 확인하는 유용한 자료지만 Zotero 라이브러리 전체를 정확하게 복원하는 백업은 아니다.
  • 누락 키 탐지만으로 잘못된 연결을 찾을 수는 없다. 신키가 존재하지만 다른 자료를 가리키는 경우에는 DOI와 제목 대조가 필요하다.
  • 자동 내보내기가 켜져 있으면 복구 중간 상태가 정상 파일을 덮어쓸 수 있다.
  • Quarto citeproc, natbib, biblatex와 순수 LaTeX의 경고 및 빌드 절차는 서로 다르다.

업데이트 후 검증 체크리스트

  1. 현재 Zotero와 Better BibTeX 버전을 기록했는가?
  2. Zotero 데이터 디렉터리 전체를 닫힌 상태에서 백업했는가?
  3. 마지막 정상 .bib와 현재 .bib를 별도 파일로 보존했는가?
  4. 원고에서 사용한 키 중 .bib에 없는 키가 남아 있지 않은가?
  5. .bib 안에 중복된 엔트리 키가 없는가?
  6. 구키와 신키가 올바른 DOI·제목에 연결되는가?
  7. Quarto HTML·PDF 또는 LaTeX 전체 빌드가 완료되는가?
  8. 본문 인용 수와 최종 참고문헌 항목이 예상 범위와 일치하는가?
  9. 공동연구자의 저장소와 자동 내보내기 파일도 갱신됐는가?

자주 묻는 질문

Zotero 10으로 업데이트하면 모든 BBT 키가 자동으로 바뀌나?

그렇게 단정할 근거는 없다. 공식 자료에서 네이티브 Citation Key 전환은 Zotero 8과 연결돼 있으며, Zotero 10 변경 기록은 검색·읽기 기능과 여러 개선 사항을 중심으로 설명한다. 건너뛴 버전, BBT 업데이트, 마이그레이션 선택, Refresh 실행을 함께 조사해야 한다.

Extra에서 Citation Key 줄이 사라졌다면 키가 삭제된 것인가?

반드시 그렇지는 않다. Zotero가 기존에 고정된 키를 네이티브 Citation Key 필드로 옮겼을 수 있다. 현재 필드와 내보낸 .bib를 확인한 뒤 판단해야 한다.

새 키가 더 일관돼 보이는데 전체 Refresh를 실행해도 되나?

기존 원고가 하나라도 있다면 먼저 영향 조사가 필요하다. Refresh는 패턴 변경을 기존 항목에 적용하는 동작이므로 원고와 .bib를 백업하고 대응표를 만든 후 제한된 범위에서 시작해야 한다.

원고에서 구키를 모두 신키로 바꾸는 것이 빠르지 않나?

한 편의 짧은 원고에는 빠를 수 있다. 그러나 논문 여러 편, 학위논문 장별 파일, 공동 저장소가 같은 키를 쓰고 있다면 Zotero 쪽에서 기존 키를 복원하는 편이 수정 범위가 작을 수 있다.

렌더링 오류가 사라지면 복구가 끝난 것인가?

아니다. 존재하는 다른 키로 잘못 치환했을 경우 렌더링은 성공하면서 엉뚱한 자료가 인용될 수 있다. DOI, 제목, 저자와 최종 참고문헌을 표본 또는 전수 대조해야 한다.

Zotero 동기화만 켜 두면 이전 상태로 돌아갈 수 있나?

동기화는 백업과 목적이 다르다. Zotero 공식 문서도 서버에는 최신 상태가 저장되고 한 번의 동기화로 서버 사본이 바뀔 수 있다고 설명한다. 시점별 복구를 위해서는 별도 데이터 디렉터리 백업이 필요하다.

최종 판단

Zotero 10 업데이트 뒤 Citation Key 문제가 보이더라도 해결의 출발점은 새 키 생성이 아니라 마지막으로 정상 작동한 식별자를 찾는 것이다. 특히 Zotero 7에서 최근 버전으로 이동한 라이브러리는 Zotero 8에서 시작된 네이티브 필드 전환과 Better BibTeX 마이그레이션을 함께 살펴야 한다.

원고가 많을수록 기존 키 복원이 기본 선택에 가깝고, 새로운 명명 정책은 영향 범위와 대응표를 확보했을 때만 적용하는 편이 안전하다. 복구는 백업, 키 비교, 결정, 누락 탐지, 전체 빌드, 서지정보 대조의 순서로 진행해야 한다.

검증이 더 필요한 부분

  • Zotero 7과 당시 BBT 버전에서 Zotero 10 및 최신 BBT로 직접 이동할 때 표시되는 마이그레이션 대화상자와 선택별 결과
  • 기존 BBT 키와 네이티브 Citation Key가 동시에 존재할 때 덮어쓰기·유지 선택이 실제 .bib 출력에 미치는 영향
  • 현재 BBT의 자동 채우기와 변경 시 키 재설정 옵션이 메타데이터 수정 후 키에 미치는 영향
  • macOS, Windows, Linux에서 Citation Key 열과 메뉴의 실제 한국어 표시
  • Quarto citeproc·natbib·biblatex 및 순수 LaTeX에서 누락 키가 출력하는 정확한 경고 문구
  • 순환 대응과 부분 문자열을 포함한 구키·신키 일괄 치환 스크립트의 안전성
  • 개인 라이브러리와 그룹 라이브러리 사이에서 같은 키가 있을 때 현재 BBT가 충돌 범위를 계산하는 방식

출처 및 확인일

함께 읽을 글