데이터 저장
PinSlip의 핵심 철학: 로컬 우선. 이 장에서는 메모가 어디에, 어떤 형식으로 저장되는지, 어떻게 백업하고 어떻게 이전하는지 다룹니다.
8.1 vault 디렉터리는 어디에 있는가
기본 위치
시스템 | 경로 |
|---|---|
Windows |
|
macOS |
|
Linux |
|
변경 방법
최초 실행 시 선택
이후에는 설정 → 저장 위치 → 위치 변경에서 변경
전환하면 모든 메모 창을 닫고, 서비스를 재시작하며, 인덱스를 다시 생성하며, 수 초가 소요됩니다.
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 등 민감 파일 제외각 디렉터리의 용도
디렉터리 | 용도 |
|---|---|
| 정식 메모. 자유롭게 하위 폴더를 만들어 분류할 수 있습니다. |
| 퀵 캡처 임시 저장 영역. 플랫 구조 (하위 폴더 없음). |
| 이미지 통합 보관. 허용 형식: png / jpg / gif / webp. |
| 휴지통. 삭제된 파일은 먼저 여기에 도달합니다. |
| 런타임 파일. 백업 시 제외할 것을 권장 (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 필드
필드 | 타입 | 의미 |
|---|---|---|
|
| 태그 목록 |
|
| 항상 위 고정 여부 |
|
| 색상 ( |
|
| 접힘 여부 |
|
| 소속 그룹 ID (그룹이 없으면 작성하지 않음) |
|
| 글자 크기 비율 (기본 100%는 필드 생략) |
|
| 생성 출처 ( |
|
| 생성 시간 (ISO 8601) |
|
| 업데이트 시간 (ISO 8601) |
파일 명명 규칙
제목 슬러그-생성일 yyyymmdd-id.md
예:
my-idea-20260731-abcd1234.mdslug는 사용할 수 없는 문자\/:*?"<>|를 정리하고, rune 단위로 30자까지 자름제목이 바뀌면 → 파일명이 자동으로 변경됨
기존
<id>.md명명 방식과도 호환됨
제목 유추
메모에 명시적인 제목이 없을 때, PinSlip은 본문의 첫 번째 유효한 줄을 제목으로 사용합니다.
Markdown 구조 마커 (
#/-/>/- [ ]) 제거인라인 래핑 (
**bold**/__bold__/~~strike~~/*italic*/_italic_/code) 제거줄 전체 링크 / 줄 전체 이미지 건너뜀
git conflict markers 건너뜀
rune 단위로 30자까지 자름
서버와 렌더러의 알고리즘이 동일하여 파일명이 일치합니다.
8.4 이미지 경로
이미지는 attachments/에 저장되며, 메모에는 상대 경로가 기록됩니다.
메모가 notes/ 루트 디렉터리에 있을 때는 위와 같이 그대로 기록됩니다.
중첩 폴더의 상대 경로
메모가 notes/work/project/에 있을 때는 ../을 추가합니다.
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 이전
새 컴퓨터로 이전
새 컴퓨터에 PinSlip 설치
vault 디렉터리 (
.pinslip/제외) 를 새 컴퓨터로 복사PinSlip 실행 → 새 위치 선택 → 인덱스 재구성 대기
Git 동기화를 사용한다면 더 간단합니다. 같은 리포지토리를 입력하면 → 모든 메모를 자동으로 clone
다른 폴더로 이전
설정 → 저장 위치 → 위치 변경
새 디렉터리를 선택하면 PinSlip이 모든 메모 창을 닫고, Go 서비스를 재시작하며, 인덱스를 다시 생성
기존 vault는 자동으로 삭제되지 않습니다 (수동으로 삭제하면 됨)
8.7 프라이버시
모든 메모는 로컬 디스크에만 존재
PinSlip은 메모 내용을 어떤 곳으로도 업로드하지 않음
MCP 서비스 및 Git 동기화를 켠 경우에만 외부 통신이 발생
모든 외부 기능을 끄면, PinSlip은 완전한 오프라인 로컬 애플리케이션이 됨
8.8 데이터 복구
실수로 삭제한 메모
일반 메모 / 그룹 / 폴더 →
.trash/확인찾을 수 없으면 → 백업 (Git 동기화 히스토리 / 백업 사본) 확인
인덱스가 손상된 경우
<vault>/.pinslip/pinslip.db삭제PinSlip 재시작 → 자동으로 전체 인덱스 재구성 (메모 내용은 영향받지 않음)
vault 전체가 손상된 경우
백업에서 vault 디렉터리 전체 복구
또는 Git 리포지토리에서 다시 clone