8. 데이터 저장

8/23/2026

데이터 저장

PinSlip의 핵심 철학: 로컬 우선. 이 장에서는 메모가 어디에, 어떤 형식으로 저장되는지, 어떻게 백업하고 어떻게 이전하는지 다룹니다.


8.1 vault 디렉터리는 어디에 있는가

기본 위치

시스템

경로

Windows

C:\Users\<사용자>\Documents\PinSlip

macOS

~/Documents/PinSlip

Linux

~/Documents/PinSlip

변경 방법

  • 최초 실행 시 선택

  • 이후에는 설정 → 저장 위치 → 위치 변경에서 변경

전환하면 모든 메모 창을 닫고, 서비스를 재시작하며, 인덱스를 다시 생성하며, 수 초가 소요됩니다.


8.2 디렉터리 구조

사용자가 선택한 디렉터리/
├── notes/              # 모든 메모 (.md, 하위 폴더 생성 가능)
├── inbox/              # 퀵 캡처 메모 (플랫)
├── attachments/        # 이미지 첨부 파일 (png/jpg/gif/webp)
├── .trash/             # 휴지통
└── .pinslip/           # 런타임 파일
    ├── settings.json   # 설정 파일
    ├── pinslip.db      # 검색 인덱스 데이터 파일
    ├── groups.json     # 메모 그룹 등록 정보
    ├── git-sync.json   # Git 동기화 설정 (token 포함)
    ├── mcp.json        # MCP 디스커버리 파일
    └── .gitignore      # git-sync.json 등 민감 파일 제외

각 디렉터리의 용도

디렉터리

용도

notes/

정식 메모. 자유롭게 하위 폴더를 만들어 분류할 수 있습니다.

inbox/

퀵 캡처 임시 저장 영역. 플랫 구조 (하위 폴더 없음). notes/로 수동으로 이동하면 inbox에서 벗어납니다.

attachments/

이미지 통합 보관. 허용 형식: png / jpg / gif / webp.

.trash/

휴지통. 삭제된 파일은 먼저 여기에 도달합니다.

.pinslip/

런타임 파일. 백업 시 제외할 것을 권장 (token 등 민감 정보 포함).


8.3 파일 형식

각 메모는 .md 파일 하나이며, YAML frontmatter + Markdown 본문으로 구성됩니다.

---
tags: [work, ideas]
pin: true
color: yellow
collapsed: false
group: g-abc123
zoom: 1.0
created: 2026-07-30T14:00:00+08:00
updated: 2026-07-31T09:30:00+08:00
source: browser-extension
---
​
# 작업 목록
​
- [ ] 일일 보고서 작성
- [ ] 고객에게 이메일 회신
- [ ] 이번 주 notes 정리

frontmatter 필드

필드

타입

의미

tags

string[]

태그 목록

pin

boolean

항상 위 고정 여부

color

string

색상 (yellow / pink / green / blue / purple / orange)

collapsed

boolean

접힘 여부

group

string

소속 그룹 ID (그룹이 없으면 작성하지 않음)

zoom

number

글자 크기 비율 (기본 100%는 필드 생략)

source

string

생성 출처 (note / quick-capture / browser-extension / mcp)

created

string

생성 시간 (ISO 8601)

updated

string

업데이트 시간 (ISO 8601)

파일 명명 규칙

제목 슬러그-생성일 yyyymmdd-id.md

  • 예: my-idea-20260731-abcd1234.md

  • slug는 사용할 수 없는 문자 \/:*?"<>|를 정리하고, rune 단위로 30자까지 자름

  • 제목이 바뀌면 → 파일명이 자동으로 변경됨

  • 기존 <id>.md 명명 방식과도 호환됨

제목 유추

메모에 명시적인 제목이 없을 때, PinSlip은 본문의 첫 번째 유효한 줄을 제목으로 사용합니다.

  • Markdown 구조 마커 (# / - / > / - [ ]) 제거

  • 인라인 래핑 (**bold** / __bold__ / ~~strike~~ / *italic* / _italic_ / code) 제거

  • 줄 전체 링크 / 줄 전체 이미지 건너뜀

  • git conflict markers 건너뜀

  • rune 단위로 30자까지 자름

서버와 렌더러의 알고리즘이 동일하여 파일명이 일치합니다.


8.4 이미지 경로

이미지는 attachments/에 저장되며, 메모에는 상대 경로가 기록됩니다.

![png](attachments/screenshot.png)

메모가 notes/ 루트 디렉터리에 있을 때는 위와 같이 그대로 기록됩니다.

중첩 폴더의 상대 경로

메모가 notes/work/project/에 있을 때는 ../을 추가합니다.

![png](../attachments/screenshot.png)

PinSlip이 이 ../ 접두사를 자동으로 유지합니다.

  • 메모를 다른 깊이의 폴더로 이동하면 → 서버가 첨부 파일 경로를 자동으로 다시 작성

  • 이렇게 하면 Obsidian / VS Code에서 같은 디렉터리를 열어도 이미지가 정상적으로 표시됨


8.5 백업

백업 방법

vault 디렉터리 전체를 그대로 복사하면 됩니다.

vault는 .md 파일 묶음과 이미지 묶음으로 구성되어, 어떤 독점 형식에도 의존하지 않습니다.

백업 권장 사항

  • 전체 백업: vault 전체를 외장 하드 드라이브 / 클라우드 드라이브로 복사

  • 증분 백업: Git 동기화 (06-Sync 참조) 사용을 권장하며, 자동으로 버전 관리가 진행됨

  • 수동 백업: CopyOnSave / Time Machine / Windows 파일 히스토리

백업 시 .pinslip/는 제외할 것을 권장

  • token 포함 (git-sync.json)

  • 프로세스 정보 포함 (mcp.json)

  • 인덱스 포함 (pinslip.db, 시작 시 자동으로 재구성됨)

  • 제외한 뒤 재설치하면 다시 초기화하면 됩니다 (어떤 메모 내용도 잃지 않음)

백업 시 반드시 백업해야 할 대상

  • notes/ (모든 메모 + 태그 + 색상 + 항상 위 고정)

  • inbox/ (퀵 캡처)

  • attachments/ (이미지)

  • groups.json (그룹 순서, 선택 사항; 잃어버려도 그룹 순서만 흐트러질 뿐, 메모는 frontmatter에서 복구됨)


8.6 이전

새 컴퓨터로 이전

  1. 새 컴퓨터에 PinSlip 설치

  2. vault 디렉터리 (.pinslip/ 제외) 를 새 컴퓨터로 복사

  3. PinSlip 실행 → 새 위치 선택 → 인덱스 재구성 대기

  4. Git 동기화를 사용한다면 더 간단합니다. 같은 리포지토리를 입력하면 → 모든 메모를 자동으로 clone

다른 폴더로 이전

  • 설정 → 저장 위치 → 위치 변경

  • 새 디렉터리를 선택하면 PinSlip이 모든 메모 창을 닫고, Go 서비스를 재시작하며, 인덱스를 다시 생성

  • 기존 vault는 자동으로 삭제되지 않습니다 (수동으로 삭제하면 됨)


8.7 프라이버시

  • 모든 메모는 로컬 디스크에만 존재

  • PinSlip은 메모 내용을 어떤 곳으로도 업로드하지 않음

  • MCP 서비스 및 Git 동기화를 켠 경우에만 외부 통신이 발생

  • 모든 외부 기능을 끄면, PinSlip은 완전한 오프라인 로컬 애플리케이션이 됨


8.8 데이터 복구

실수로 삭제한 메모

  • 일반 메모 / 그룹 / 폴더 → .trash/ 확인

  • 찾을 수 없으면 → 백업 (Git 동기화 히스토리 / 백업 사본) 확인

인덱스가 손상된 경우

  • <vault>/.pinslip/pinslip.db 삭제

  • PinSlip 재시작 → 자동으로 전체 인덱스 재구성 (메모 내용은 영향받지 않음)

vault 전체가 손상된 경우

  • 백업에서 vault 디렉터리 전체 복구

  • 또는 Git 리포지토리에서 다시 clone

관련 글

이런 글도 좋아하실 거예요