Bear 통합: 승인된 계획 자동 저장
학습 목표
Bear 통합을 활성화하면 계획을 승인할 때마다 Plannotator가 자동으로 Bear 노트에 계획을 저장합니다:
- 자동 생성된 제목(계획에서 추출)
- 스마트 태그(프로젝트명, 키워드, 프로그래밍 언어)
- 완전한 계획 내용
이렇게 하면 승인된 모든 계획을 한 곳에서 관리하여 나중에 검토하고 지식을 축적할 수 있습니다.
현재 겪고 있는 문제
다음과 같은 상황을 겪어보셨을 것입니다:
- AI가 생성한 계획이 좋지만 나중에 참고하기 위해 저장하고 싶음
- Bear에 계획을 수동으로 복사하여 붙여넣는 것이 너무 번거로움
- 다른 프로젝트의 계획이 섞여 있어 태그 관리가 안 됨
Bear 통합을 사용하면 이러한 문제가 자동으로 해결됩니다.
이 방법이 필요한 상황
- Bear를 주요 노트 앱으로 사용하는 경우
- 승인된 계획을 지식 베이스로 아카이빙해야 하는 경우
- 태그를 통해 과거 계획을 빠르게 검색하고 싶은 경우
Bear란?
Bear는 macOS용 Markdown 노트 앱으로 태그, 암호화, 동기화 등의 기능을 지원합니다. 아직 설치하지 않았다면 bear.app에서 확인하세요.
🎒 시작 전 준비
핵심 개념
Bear 통합의 핵심은 x-callback-url 프로토콜입니다:
- Plannotator UI에서 Bear 통합 활성화(브라우저 localStorage에 저장)
- 계획 승인 시 Plannotator가
bear://x-callback-url/createURL 전송 - 시스템이
open명령을 사용하여 자동으로 Bear를 열고 노트 생성 - 계획 내용, 제목, 태그가 자동으로 입력됨
주요 특징:
- vault 경로 구성 불필요(Obsidian처럼 vault를 지정할 필요 없음)
- 스마트 태그 생성(최대 7개)
- 계획 승인 시 자동 저장
Obsidian과의 차이점
Bear 통합은 더 간단하며 vault 경로를 구성할 필요가 없고 스위치만 있으면 됩니다. 하지만 Obsidian은 저장 폴더를 지정하고 더 많은 사용자 정의가 가능합니다.
따라하기
1단계: Plannotator 설정 열기
AI Agent가 계획을 생성하고 Plannotator UI를 열면 오른쪽 상단의 ⚙️ Settings 버튼을 클릭합니다.
확인해야 할 것: 여러 구성 옵션이 포함된 설정 패널이 팝업됩니다
2단계: Bear 통합 활성화
설정 패널에서 Bear Notes 섹션을 찾아 스위치 버튼을 클릭합니다.
이유 스위치가 회색(비활성화)에서 파란색(활성화)으로 변경되고 동시에 브라우저의 localStorage에 저장됩니다.
확인해야 할 것:
- Bear Notes 스위치가 파란색으로 변경됨
- 설명 텍스트: "Auto-save approved plans to Bear"
3단계: 계획 승인
계획 검토를 완료한 후 하단의 Approve 버튼을 클릭합니다.
이유 Plannotator가 Bear 설정을 읽고 활성화되어 있으면 승인과 동시에 Bear의 x-callback-url을 호출합니다.
확인해야 할 것:
- Bear 앱이 자동으로 열림
- 새 노트 창이 팝업됨
- 제목과 내용이 이미 자동으로 입력됨
- 태그가 자동으로 생성됨(
#으로 시작)
4단계: 저장된 노트 확인
Bear에서 새로 생성된 노트를 확인하여 다음을 확인합니다:
- 제목이 올바른지(계획의 H1에서 가져옴)
- 내용이 완전한지(계획 전체 텍스트 포함)
- 태그가 합리적인지(프로젝트명, 키워드, 프로그래밍 언어)
확인해야 할 것: 다음과 같은 노트 구조:
## User Authentication
[완전한 계획 내용...]
#plannotator #myproject #authentication #typescript #api체크포인트 ✅
- [ ] Settings에서 Bear Notes 스위치가 활성화됨
- [ ] 계획 승인 후 Bear가 자동으로 열림
- [ ] 노트 제목이 계획의 H1과 일치함
- [ ] 노트에 완전한 계획 내용이 포함됨
- [ ] 태그에
#plannotator와 프로젝트명이 포함됨
문제 해결
Bear가 자동으로 열리지 않음
원인: 시스템 open 명령이 실패했을 수 있습니다:
- Bear가 설치되지 않았거나 App Store에서 다운로드하지 않음
- Bear의 URL scheme이 다른 앱에 의해 가로채짐
해결책:
- Bear가 정상적으로 설치되었는지 확인
- 터미널에서 수동으로 테스트:
open "bear://x-callback-url/create?title=test"
태그가 예상과 다름
원인: 태그는 자동으로 생성되며 규칙은 다음과 같습니다:
- 필수:
#plannotator - 필수: 프로젝트명(git 저장소명 또는 디렉토리명에서 추출)
- 선택: H1 제목에서 최대 3개의 키워드 추출(불용어 제외)
- 선택: 코드 블록에서 프로그래밍 언어 태그 추출(json/yaml/markdown 제외)
- 최대 7개 태그
해결책:
- 태그가 예상과 다르면 Bear에서 수동으로 편집 가능
- 프로젝트명이 잘못되었다면 git 저장소 구성 또는 디렉토리명 확인
승인했지만 저장되지 않음
원인:
- Bear 스위치가 활성화되지 않음(Settings 확인)
- 네트워크 오류 또는 Bear 응답 시간 초과
- 계획 내용이 비어 있음
해결책:
- Settings에서 스위치가 파란색(활성화 상태)인지 확인
- 터미널에 오류 로그가 있는지 확인(
[Bear] Save failed:) - 계획을 다시 승인
태그 생성 메커니즘 상세 설명
Plannotator는 스마트 태그를 생성하여 Bear에서 계획을 빠르게 검색할 수 있도록 합니다. 다음은 태그 생성 규칙입니다:
| 태그 소스 | 예시 | 우선순위 |
|---|---|---|
| 고정 태그 | #plannotator | 필수 |
| 프로젝트명 | #myproject, #plannotator | 필수 |
| H1 키워드 | #authentication, #api | 선택(최대 3개) |
| 프로그래밍 언어 | #typescript, #python | 선택 |
불용어 목록(태그로 사용되지 않음):
the,and,for,with,this,that,from,intoplan,implementation,overview,phase,step,steps
프로그래밍 언어 제외(태그로 사용되지 않음):
json,yaml,yml,text,txt,markdown,md
예시: 태그 생성 과정
계획 제목이 "Implementation Plan: User Authentication System in TypeScript"이고 코드 블록에 Python과 JSON이 포함되어 있다고 가정합니다:
- 고정 태그:
#plannotator - 프로젝트명:
#myproject(git 저장소명 가정) - H1 키워드:
implementation→ 제외(불용어)plan→ 제외(불용어)user→ 유지 →#userauthentication→ 유지 →#authenticationsystem→ 유지 →#systemtypescript→ 유지 →#typescript
- 프로그래밍 언어:
python→ 유지 →#pythonjson→ 제외(제외 목록)
최종 태그: #plannotator #myproject #user #authentication #system #typescript #python(7개, 상한선 도달)
Obsidian 통합과 비교
| 기능 | Bear 통합 | Obsidian 통합 |
|---|---|---|
| 구성 복잡도 | 간단(스위치만) | 중간(vault 및 폴더 선택 필요) |
| 저장 | Bear 앱 내부 | 지정된 vault 경로 |
| 파일명 | Bear가 자동 관리 | Title - Mon D, YYYY H-MMam.md |
| Frontmatter | 없음(Bear 미지원) | 있음(created, source, tags) |
| 크로스 플랫폼 | macOS만 | macOS/Windows/Linux |
| x-callback-url | ✅ 사용 | ❌ 파일 직접 작성 |
선택 방법
- macOS만 사용하고 Bear를 선호한다면: Bear 통합이 더 간단함
- 크로스 플랫폼이 필요하거나 저장 경로를 사용자 정의하려면: Obsidian 통합이 더 유연함
- 둘 다 사용하고 싶다면: 동시에 활성화 가능(계획 승인 시 두 곳에 모두 저장됨)
이번 강의 요약
- Bear 통합은 x-callback-url 프로토콜을 통해 작동하며 구성이 간단함
- Settings에서 스위치만 켜면 되고 경로를 지정할 필요 없음
- 계획 승인 시 자동으로 Bear에 저장됨
- 스마트 태그 생성, 프로젝트명, 키워드, 프로그래밍 언어 포함(최대 7개)
- Obsidian 통합에 비해 Bear가 더 간단하지만 기능은 적음
다음 강의 예고
다음 강의에서는 **원격/Devcontainer 모드**를 배웁니다.
배울 내용:
- 원격 환경(SSH, devcontainer, WSL)에서 Plannotator를 사용하는 방법
- 고정 포트 및 포트 포워딩 구성
- 원격 환경에서 브라우저를 열어 검토 페이지 보기
부록: 소스 코드 참조
소스 코드 위치 보기
업데이트: 2026-01-24
| 기능 | 파일 경로 | 라인 |
|---|---|---|
| Bear 구성 인터페이스 | packages/server/integrations.ts | 18-20 |
| Bear에 저장 | packages/server/integrations.ts | 234-257 |
| 태그 추출 | packages/server/integrations.ts | 34-74 |
| 제목 추출 | packages/server/integrations.ts | 94-105 |
| Bear 설정 인터페이스 | packages/ui/utils/bear.ts | 15-17 |
| Bear 설정 읽기 | packages/ui/utils/bear.ts | 22-26 |
| Bear 설정 저장 | packages/ui/utils/bear.ts | 31-33 |
| UI 설정 컴포넌트 | packages/ui/components/Settings.tsx | 496-518 |
| 승인 시 Bear 호출 | packages/editor/App.tsx | 512-514 |
| 서버 Bear 처리 | packages/server/index.ts | 250-257 |
주요 함수:
saveToBear(config: BearConfig): x-callback-url을 통해 계획을 Bear에 저장extractTags(markdown: string): 계획 내용에서 스마트 태그 추출(최대 7개)extractTitle(markdown: string): 계획의 H1 제목에서 노트 제목 추출getBearSettings(): localStorage에서 Bear 통합 설정 읽기saveBearSettings(settings): Bear 통합 설정을 localStorage에 저장
주요 상수:
STORAGE_KEY_ENABLED = 'plannotator-bear-enabled': localStorage의 Bear 설정 키명
Bear URL 형식:
bear://x-callback-url/create?title={title}&text={content}&open_note=no