간략 요약
Insomnia 8.0으로 업그레이드한 후 컬렉션에 대한 접근 권한을 잃어버렸다면, 데이터는 여전히 디스크에 있을 가능성이 높습니다. 이 가이드는 데이터를 찾고, SQLite 데이터베이스에서 복구하며, Apidog 또는 다른 대안으로 깔끔하게 마이그레이션하는 방법을 보여줍니다. 백업 파일을 덮어쓸 수 있는 추가 업데이트를 설치하기 전에 조치를 취하세요.
서론
Insomnia 8.0 업데이트는 2023년 9월에 의무적인 클라우드 로그인을 포함하여 출시되었습니다. 많은 사용자에게 이 업그레이드는 혼란스러운 결과를 초래했습니다. 애플리케이션이 로그인 화면으로 열리고 몇 달 또는 몇 년 동안 구축했던 컬렉션이 사라진 것처럼 보였습니다.
일부 데이터 손실은 실제였습니다. 특히 스크래치 스토리지가 특정 시스템에서 데이터를 손상시킨 경우였습니다. 그러나 많은 경우, 기본 SQLite 데이터베이스 파일은 디스크에 그대로 있었지만, Kong 계정 없이는 새로운 UI를 통해 접근할 수 없었습니다.
이 가이드는 두 가지 상황 모두에 해당합니다. 데이터가 여전히 존재한다면, 데이터를 추출하는 방법을 알게 될 것입니다. 스크래치 스토리지로 인해 데이터가 실제로 손실되었다면, 어떤 복구 옵션이 있는지 그리고 보다 안정적인 로컬 우선 모델을 가진 도구로 마이그레이션하여 향후 동일한 문제를 방지하는 방법을 알게 될 것입니다.
1단계: 기존 Insomnia 데이터베이스 파일 찾기
다른 작업을 수행하기 전에(재설치하거나, Kong 계정을 만들거나, Insomnia를 다시 열기 전에) 기존 데이터베이스 파일을 찾아 안전한 위치로 복사하세요.
Insomnia는 버전에 따라 그리고 운영 체제에 따라 다른 위치에 데이터를 저장했습니다.
macOS:
~/Library/Application Support/Insomnia/
Windows:
C:\Users\[Username]\AppData\Roaming\Insomnia\
Linux:
~/.config/Insomnia/
해당 디렉토리 내에서 다음 파일을 찾아보세요:
insomnia.db– 메인 데이터베이스 (이전 버전).db파일을 포함하는core/라는 디렉토리 – 8.0 이전 버전에서 일반적workspaces/– 이전 내보내기에서 가져온 JSON 파일이 포함될 수 있음
지금 바로 전체 Insomnia 애플리케이션 지원 디렉토리를 백업 위치로 복사하세요. 이 단계를 건너뛰지 마세요. 추가 업그레이드를 실행하거나 Insomnia를 제거/재설치하면 이 파일들이 덮어쓰여지거나 삭제될 위험이 있습니다.
2단계: Insomnia UI를 통해 복구 시도
아직 Kong 계정에 로그인하지 않았다면, 먼저 스크래치 스토리지 경로를 시도해보세요. Insomnia가 로그인 화면을 표시할 때, “계정 없이 사용” 또는 “로컬 저장소로 계속”과 같은 링크나 버튼을 찾아보세요. 정확한 문구는 버전에 따라 변경되었습니다.
로그인 없이 앱에 접속할 수 있다면, 즉시 모든 워크스페이스를 내보내세요:
- 왼쪽 사이드바에서 워크스페이스 이름을 클릭합니다.
- 워크스페이스 메뉴(점 세 개 또는 톱니바퀴 아이콘)로 이동합니다.
- "내보내기"를 선택합니다.
- "Insomnia v4 (JSON)" 형식을 선택합니다.
- 파일을 안전한 곳에 저장합니다.
- 모든 워크스페이스에 대해 반복합니다.
이미 Kong 계정이 있고 로그인할 수 있다면, 동일한 내보내기 프로세스를 수행합니다. 로그인된 환경에서는 동기화된 워크스페이스에 접근할 수 있으며, 이전에 동기화했다면 디스크에 있는 것보다 더 완전할 수 있습니다.
3단계: SQLite 데이터베이스에서 직접 데이터 복구
UI를 통해 데이터에 접근할 수 없다면, 데이터베이스 파일에서 직접 추출할 수 있습니다. 이를 위해서는 무료 SQLite 브라우저 도구가 필요합니다.
SQLite용 DB Browser를 설치합니다. sqlitebrowser.org에서 다운로드하세요. 이 도구는 무료 오픈 소스이며 macOS, Windows, Linux에서 사용할 수 있습니다.
데이터베이스 파일을 엽니다. DB Browser에서 파일 > 데이터베이스 열기로 이동하여 Insomnia 애플리케이션 지원 디렉토리로 이동합니다. insomnia.db 또는 그곳에서 찾을 수 있는 모든 .db 파일을 엽니다.
스키마를 탐색합니다. Insomnia 데이터베이스에는 다음을 포함하여 중요한 몇 가지 테이블이 있습니다:
Workspace– 최상위 워크스페이스RequestGroup– 워크스페이스 내의 폴더Request– 개별 요청Environment– 환경 변수 세트Response– 저장된 응답 기록 (복구 선택 사항)
데이터를 내보냅니다. "데이터 탐색" 탭에서 각 테이블을 선택하고 파일 > 내보내기 > 테이블을 CSV로 저장 옵션을 사용하여 원시 데이터를 저장합니다. 요청의 경우 주요 필드는 name, url, method, headers (JSON으로 저장됨) 및 body입니다.
컬렉션 재구성. CSV 방식은 재구축할 원시 데이터를 제공합니다. 번거롭지만 신뢰할 수 있습니다. 프로그래밍 방식의 접근을 위해서는 Python의 sqlite3 모듈을 사용하여 데이터베이스를 쿼리하고 내보내기 스크립트를 작성할 수 있습니다.
다음은 이전 Insomnia 데이터베이스에서 요청을 추출하는 최소한의 Python 스크립트입니다:
import sqlite3
import json
conn = sqlite3.connect('/path/to/insomnia.db')
cursor = conn.cursor()
cursor.execute("SELECT name, url, method, headers, body FROM Request")
rows = cursor.fetchall()
for row in rows:
print(f"Name: {row[0]}")
print(f"Method: {row[2]} {row[1]}")
if row[3]:
headers = json.loads(row[3])
for h in headers:
print(f" Header: {h.get('name')}: {h.get('value')}")
print()
conn.close()
DB Browser에서 보이는 내용에 따라 필드 이름을 조정하세요. Insomnia 버전에 따라 정확한 스키마가 달랐습니다.
4단계: 데이터베이스가 손상된 경우 백업에서 복구
데이터베이스 파일 자체가 손상된 경우, 선택지는 더 제한적입니다.
Time Machine 또는 시스템 백업을 확인합니다. macOS Time Machine, Windows 파일 히스토리, 그리고 대부분의 클라우드 백업 서비스(Backblaze, iCloud Drive 등)는 업그레이드 전 Insomnia 디렉토리의 스냅샷을 가지고 있을 수 있습니다. 8.0 이전 버전의 애플리케이션 지원 디렉토리를 별도의 위치로 복원한 다음, DB Browser를 사용하여 해당 파일을 읽으세요.
Git 기록을 확인합니다. 일부 팀은 Insomnia 내보내기 파일을 Git 저장소에서 버전 관리합니다. 조직에서 이 방법을 사용한다면, 내보내기 파일은 Git 기록에서 복구할 수 있습니다.
Insomnia 내보내기 파일을 찾아봅니다. 과거에 수동으로 컬렉션을 내보낸 적이 있다면, 해당 JSON 파일이 다운로드 폴더나 프로젝트 디렉토리에 있을 수 있습니다. 파일 이름에 "insomnia" 또는 "_collection"이 포함된 .json 확장자를 가진 파일을 파일 시스템에서 검색해보세요.
5단계: Apidog로 마이그레이션
Insomnia v4 JSON 형식으로 데이터가 준비되면(UI 내보내기를 통했든 수동으로 재구성했든), Apidog로 마이그레이션하는 데는 몇 분밖에 걸리지 않습니다.
컬렉션을 가져옵니다.
- Apidog를 열고 새 프로젝트를 생성합니다.
- 프로젝트 설정 또는 사이드바의 가져오기 옵션으로 이동합니다.
- "가져오기"를 선택하고 "Insomnia"를 선택합니다.
- 내보낸 JSON 파일을 업로드합니다.
- Apidog는 워크스페이스, 폴더, 요청 및 환경을 파싱합니다.
깔끔하게 전송되는 것:
- HTTP 요청 (GET, POST, PUT, DELETE, PATCH)
- 요청 헤더
- 요청 본문 (JSON, 폼 데이터, 멀티파트)
- URL 파라미터 및 경로 변수
- 환경 변수 및 해당 값
- 폴더 구조
수동 검토가 필요한 것:
- 사전 요청 및 사후 요청 스크립트 (JavaScript). Apidog는 유사한 스크립팅 모델을 사용하지만 구문 조정이 필요할 수 있습니다.
- Insomnia 플러그인에 의존했던 사용자 정의 인증 흐름
- 응답 테스트 어설션 – Apidog의 테스트 형식으로 다시 입력해야 합니다.
환경을 설정합니다. 가져온 후, 환경 변수가 올바르게 가져와졌는지 확인합니다. 환경 패널로 이동하여 기본 URL, API 키 및 전송된 모든 토큰을 확인하세요.
팀 접근을 확인합니다. 팀 워크스페이스를 마이그레이션하는 경우, Apidog는 선택적 클라우드 동기화 기능을 갖춘 공유 워크스페이스를 지원합니다. 데이터가 Apidog 클라우드에 동기화될지 여부를 제어할 수 있습니다. 팀의 경우, 한 번 동기화를 활성화하는 것이 마이그레이션된 컬렉션을 공유하는 가장 쉬운 방법입니다.
몇 가지 요청을 테스트합니다. 컬렉션에서 5~6개의 대표적인 요청을 선택하고 실행하여 예상대로 작동하는지 확인합니다. 인증 헤더 및 환경 변수 대체에 주의를 기울이세요.
앞으로 이러한 문제 방지하기
Insomnia 8.0 사태의 핵심 교훈은 백업 전략 없이 중요한 작업 데이터를 단일 도구에 맡기는 것은 어떤 도구를 사용하든 위험하다는 것입니다.
앞으로 자신을 보호할 수 있는 몇 가지 습관:
- 정기적으로 내보내기. 컬렉션을 백업 폴더나 Git 저장소로 매월 내보내는 일정을 잡으세요. 이것은 2분밖에 걸리지 않으며 어떤 일이 발생하더라도 복구 경로를 제공합니다.
- 로컬 우선 도구 선택. Apidog는 기본적으로 데이터를 로컬에 저장합니다. Bruno는 컬렉션을 디스크의 일반 파일로 저장합니다. 두 도구 모두 공급업체의 클라우드에 의존하지 않고 데이터를 보고 백업할 수 있게 해줍니다.
- 업그레이드 전에 데이터 모델 확인. 주요 버전이 출시될 때, 업데이트하기 전에 마이그레이션 노트를 읽으세요. 릴리스가 데이터 저장 위치나 방식을 변경한다면, 설치를 클릭하기 전에 그 의미를 이해하세요.
자주 묻는 질문 (FAQ)
Kong에 로그인하지 않고 Insomnia 데이터를 복구할 수 있나요?
네, 데이터베이스 파일이 여전히 디스크에 있다면 가능합니다. SQLite용 DB Browser를 사용하여 Insomnia 애플리케이션 지원 디렉토리의 .db 파일을 열고 테이블에서 직접 데이터를 내보내세요.
Insomnia 데이터를 내보낼 때 어떤 형식을 사용해야 하나요?
Insomnia v4 JSON 형식을 사용하세요. 이는 가장 널리 지원되는 형식이며 Apidog, Postman 및 기타 도구에서 가져올 수 있습니다.
환경 변수가 Apidog로 전송되나요?
대부분의 경우 그렇습니다. Insomnia 환경은 v4 JSON 형식의 일부로 내보내지며 Apidog가 이를 가져옵니다. 특히 민감한 토큰의 경우 가져온 환경을 검토하여 값이 올바른지 확인하세요.
Insomnia 스크래치 스토리지와 다른 도구의 로컬 스토리지의 차이점은 무엇인가요?
Insomnia의 스크래치 스토리지는 신뢰성 문제가 있는 대체 모드였습니다. Apidog와 Bruno는 로컬 스토리지를 대체가 아닌 기본 모델로 취급합니다. 데이터는 메모리에 유지되지 않고 저장할 때마다 디스크에 기록됩니다.
macOS에서 SQLite용 DB Browser를 사용할 수 있나요?
네. SQLite용 DB Browser는 프로젝트 웹사이트와 Homebrew(brew install db-browser-for-sqlite)를 통해 macOS에서 사용할 수 있습니다.
Insomnia에서 Apidog로 마이그레이션하는 데 얼마나 걸리나요?
일반적인 50-200개 요청 컬렉션의 경우, 가져오기는 5분 미만으로 소요됩니다. 스크립트 및 인증 흐름을 검토하고 조정하는 데는 복잡성에 따라 더 오래 걸릴 수 있습니다.
