Mac에서 iMessage 대화 전체를 내보내는 방법
메시지 앱에 내보내기 명령이 없는 이유, 그래도 되는 무료 방법들, Mac에 동기화된 적 없는 기록을 얻는 법, 그리고 몇 년 뒤에도 열리는 앨범으로 끝내는 법.
· 4 min read
macOS의 메시지 앱에는 내보내기 명령이 없습니다. 처음부터 없었습니다. 이 질문을 검색하면 상위 결과가 Apple 지원 게시글과 Reddit 글인데, 기본 기능이 이 문제를 얼마나 잘 해결해 왔는지를 그것으로 알 수 있습니다.
실제로 되는 방법은 다음과 같습니다.
대화는 어디에 있나
Mac에서 메시지 앱은 모든 것을 ~/Library/Messages/chat.db의 SQLite 데이터베이스에 보관하고, 첨부 파일은 ~/Library/Messages/Attachments/에 둡니다. macOS는 둘 다 보호합니다. 시스템 설정에서 전체 디스크 접근 권한을 받지 못한 앱은 읽을 수 없고, 그 폴더는 기본적으로 Finder에서 숨겨져 있습니다.
여기서 두 가지가 따라 나오며, 이 주제를 둘러싼 혼란의 대부분이 이것으로 설명됩니다.
- 메시지를 내보내는 도구는 전체 디스크 접근 권한이 필요합니다. 그 자체는 위험 신호가 아니라 macOS가 허용하는 유일한 방법입니다. 중요한 것은 그 도구가 파일을 읽은 다음에 무엇을 하느냐입니다.
- 이 데이터베이스는 Apple의 비공개 내부 구현입니다. 구조가 macOS 버전 사이에서 예고 없이 바뀝니다. 내보내기 도구에 업데이트가 필요한 이유가 그것이고, 내보낸 앨범이 결코 Apple의 형식이어서는 안 되는 이유도 같습니다.
방법 1: PDF로 프린트 (무료, 기본 기능, 제한적)
- 메시지 앱을 열고 대화를 선택합니다.
- Command + 위쪽 화살표를 누른 채 대화 맨 위까지 올라가, 오래된 메시지가 더 불러와지지 않을 때까지 계속합니다.
- 파일 › 프린트, 그다음 PDF › PDF로 저장.
이 방법은 되고, 짧은 대화라면 이것이 정답입니다. 실제 한계가 둘 있습니다. 스크롤로 대화 전체를 불러와야 하는데 몇 년치라면 고역이라는 점, 그리고 PDF는 재생되는 비디오나 오디오를 담지 못한다는 점입니다.
방법 2: 데이터베이스를 직접 조회 (무료, 기술적)
chat.db는 표준 SQLite 파일이므로 직접 조회할 수 있습니다. 먼저 터미널에 전체 디스크 접근 권한을 준 다음:
sqlite3 ~/Library/Messages/chat.db
손으로 하다 걸려 넘어지는 함정이 셋 있습니다.
- 시간 값은 Unix 시간이 아닙니다. 메시지 앱은 2001-01-01부터의 나노초를 저장하므로
datetime(message.date/1000000000 + 978307200, 'unixepoch')가 필요합니다. text는 종종 NULL입니다. 요즘 메시지는 내용을 단순한text열이 아니라attributedBody, 즉 직렬화된 Apple typedstream에 담습니다. 이것을 제대로 해독하는 일이 이 문제 전체에서 가장 어려운 부분이고, 이진 데이터를 순진하게 UTF-16으로 다루면 거의 맞아 보이는 쓰레기가 나옵니다.- 읽기 전용으로 여십시오.
file:...?mode=ro를 쓰면 실수로 던진 질의가 사용 중인 메시지 데이터베이스에 절대 쓰지 못합니다.
이 경로를 손이 아니라 제대로 밟고 싶다면, imessage-exporter가 무료·오픈 소스이며 typedstream 해독을 올바르게 처리합니다.
방법 3: 앨범으로 내보내기 (대부분이 실제로 원하는 것)
대부분이 바라는 결과는 간직할 수 있는 폴더입니다. 대화 전체가, 특별한 소프트웨어 없이 읽히고, 사진과 비디오가 온전한 상태로 들어 있는 폴더.
즉 다음을 만들어 내는 내보내기입니다.
- 양쪽의 모든 메시지가 순서대로, 시간 표시와 함께.
- 모든 첨부 파일이 원본 품질로 복사되어, 문서 안에 축소되어 들어가지 않은 상태로.
- 그것을 만든 도구에 기대지 않는 형식. 평범한 HTML, JSON, Markdown은 모두 해당합니다. 독자 형식의 데이터베이스는 아닙니다.
이 부류에는 imessage-exporter, iMazing, Decipher TextMessage, 그리고 이 사이트를 만든 Message Album이 있습니다. Message Album이 특히 힘을 준 지점이 마지막 항목입니다. 내보낸 결과는 프레임워크도 CDN도 외부 서체도 서버도 없는 자족적인 오프라인 웹사이트이며, SHA-256 체크섬 매니페스트가 함께 담깁니다. 보관하는 물건이 의존하던 무언가가 사라졌다는 이유로 작동을 멈춰서는 안 된다는 생각에서 나온 것입니다.
Mac에 동기화된 적 없는 기록 얻기
대부분의 안내가 건너뛰는 단계이고, 내보낸 결과가 불완전하게 나오는 흔한 이유이기도 합니다.
Mac에는 그 Mac으로 동기화된 메시지만 있습니다. 그 Mac을 갖기 전에 시작된 대화이거나, iCloud 메시지가 오래된 첨부 파일을 내려놓았다면, Mac 자체 보관함에서 내보낼 때 조용히 빠지는 것이 생깁니다.
해결책은 iPhone 백업에서 내보내는 것입니다.
- iPhone이나 iPad를 연결하고 Finder를 엽니다.
- 사이드바에서 기기를 선택합니다.
- 지금 백업을 선택합니다. 암호화된 백업과 그렇지 않은 백업 모두 메시지를 담습니다. 건강 등 보호된 데이터도 원한다면 로컬 백업 암호화에 체크하십시오.
- 내보내기 도구를 Mac의 보관함이 아니라 그 백업으로 향하게 하십시오.
백업에는 전화기에 있는 것이 담기고, 그것은 대개 Mac까지 도달한 것보다 많습니다.
내보내기가 완전한지 어떻게 아는가
어떤 도구를 쓰든 한 가지만 물어보십시오. 무언가가 빠져 있을 때 이 도구는 어떻게 하는가?
로컬에 한 번도 다운로드되지 않은 첨부 파일, 그리고 해독할 수 없는 Apple 내부 메시지 내용은 둘 다 흔한 일입니다. 그것들을 명시적인 경고로 보고하는 도구는 내가 무엇을 갖고 있는지 알려 줍니다. 조용히 버리는 도구는 완전해 보이지만 실은 아닌 앨범을 남기고, 특정 사진을 찾으러 가는 그날까지 알아채지 못합니다.
개수도 확인하십시오. 도구가 원본에서 몇 개를 읽고 출력에 몇 개를 썼는지 알려 준다면, 그 두 숫자는 같아야 하거나 차이가 설명되어야 합니다.
그다음 앨범을 어떻게 할 것인가
한 곳에만 있는 앨범은 보관된 것이 아니라 놓여 있는 것입니다. 다른 곳에도 복사하십시오. 외장 디스크, 다른 컴퓨터, 원하는 클라우드 저장소. 좋은 내보내기는 평범한 파일이 담긴 평범한 폴더이므로, 이 일은 폴더 하나를 복사하는 것에 지나지 않습니다.
내보내기에 체크섬이 포함되어 있다면 매니페스트도 함께 보관하십시오. 5년 뒤에 눈앞의 사본이 온전한지 확인할 수 있는 유일한 수단입니다.