Skip to content

Bear 통합: 승인된 계획 자동 저장

학습 목표

Bear 통합을 활성화하면 계획을 승인할 때마다 Plannotator가 자동으로 Bear 노트에 계획을 저장합니다:

  • 자동 생성된 제목(계획에서 추출)
  • 스마트 태그(프로젝트명, 키워드, 프로그래밍 언어)
  • 완전한 계획 내용

이렇게 하면 승인된 모든 계획을 한 곳에서 관리하여 나중에 검토하고 지식을 축적할 수 있습니다.

현재 겪고 있는 문제

다음과 같은 상황을 겪어보셨을 것입니다:

  • AI가 생성한 계획이 좋지만 나중에 참고하기 위해 저장하고 싶음
  • Bear에 계획을 수동으로 복사하여 붙여넣는 것이 너무 번거로움
  • 다른 프로젝트의 계획이 섞여 있어 태그 관리가 안 됨

Bear 통합을 사용하면 이러한 문제가 자동으로 해결됩니다.

이 방법이 필요한 상황

  • Bear를 주요 노트 앱으로 사용하는 경우
  • 승인된 계획을 지식 베이스로 아카이빙해야 하는 경우
  • 태그를 통해 과거 계획을 빠르게 검색하고 싶은 경우

Bear란?

Bear는 macOS용 Markdown 노트 앱으로 태그, 암호화, 동기화 등의 기능을 지원합니다. 아직 설치하지 않았다면 bear.app에서 확인하세요.

🎒 시작 전 준비

핵심 개념

Bear 통합의 핵심은 x-callback-url 프로토콜입니다:

  1. Plannotator UI에서 Bear 통합 활성화(브라우저 localStorage에 저장)
  2. 계획 승인 시 Plannotator가 bear://x-callback-url/create URL 전송
  3. 시스템이 open 명령을 사용하여 자동으로 Bear를 열고 노트 생성
  4. 계획 내용, 제목, 태그가 자동으로 입력됨

주요 특징:

  • 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에서 가져옴)
  • 내용이 완전한지(계획 전체 텍스트 포함)
  • 태그가 합리적인지(프로젝트명, 키워드, 프로그래밍 언어)

확인해야 할 것: 다음과 같은 노트 구조:

markdown
## User Authentication

[완전한 계획 내용...]

#plannotator #myproject #authentication #typescript #api

체크포인트 ✅

  • [ ] Settings에서 Bear Notes 스위치가 활성화됨
  • [ ] 계획 승인 후 Bear가 자동으로 열림
  • [ ] 노트 제목이 계획의 H1과 일치함
  • [ ] 노트에 완전한 계획 내용이 포함됨
  • [ ] 태그에 #plannotator와 프로젝트명이 포함됨

문제 해결

Bear가 자동으로 열리지 않음

원인: 시스템 open 명령이 실패했을 수 있습니다:

  • Bear가 설치되지 않았거나 App Store에서 다운로드하지 않음
  • Bear의 URL scheme이 다른 앱에 의해 가로채짐

해결책:

  1. Bear가 정상적으로 설치되었는지 확인
  2. 터미널에서 수동으로 테스트: open "bear://x-callback-url/create?title=test"

태그가 예상과 다름

원인: 태그는 자동으로 생성되며 규칙은 다음과 같습니다:

  • 필수: #plannotator
  • 필수: 프로젝트명(git 저장소명 또는 디렉토리명에서 추출)
  • 선택: H1 제목에서 최대 3개의 키워드 추출(불용어 제외)
  • 선택: 코드 블록에서 프로그래밍 언어 태그 추출(json/yaml/markdown 제외)
  • 최대 7개 태그

해결책:

  • 태그가 예상과 다르면 Bear에서 수동으로 편집 가능
  • 프로젝트명이 잘못되었다면 git 저장소 구성 또는 디렉토리명 확인

승인했지만 저장되지 않음

원인:

  • Bear 스위치가 활성화되지 않음(Settings 확인)
  • 네트워크 오류 또는 Bear 응답 시간 초과
  • 계획 내용이 비어 있음

해결책:

  1. Settings에서 스위치가 파란색(활성화 상태)인지 확인
  2. 터미널에 오류 로그가 있는지 확인([Bear] Save failed:)
  3. 계획을 다시 승인

태그 생성 메커니즘 상세 설명

Plannotator는 스마트 태그를 생성하여 Bear에서 계획을 빠르게 검색할 수 있도록 합니다. 다음은 태그 생성 규칙입니다:

태그 소스예시우선순위
고정 태그#plannotator필수
프로젝트명#myproject, #plannotator필수
H1 키워드#authentication, #api선택(최대 3개)
프로그래밍 언어#typescript, #python선택

불용어 목록(태그로 사용되지 않음):

  • the, and, for, with, this, that, from, into
  • plan, implementation, overview, phase, step, steps

프로그래밍 언어 제외(태그로 사용되지 않음):

  • json, yaml, yml, text, txt, markdown, md
예시: 태그 생성 과정

계획 제목이 "Implementation Plan: User Authentication System in TypeScript"이고 코드 블록에 Python과 JSON이 포함되어 있다고 가정합니다:

  1. 고정 태그: #plannotator
  2. 프로젝트명: #myproject(git 저장소명 가정)
  3. H1 키워드:
    • implementation → 제외(불용어)
    • plan → 제외(불용어)
    • user → 유지 → #user
    • authentication → 유지 → #authentication
    • system → 유지 → #system
    • typescript → 유지 → #typescript
  4. 프로그래밍 언어:
    • python → 유지 → #python
    • json → 제외(제외 목록)

최종 태그: #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.ts18-20
Bear에 저장packages/server/integrations.ts234-257
태그 추출packages/server/integrations.ts34-74
제목 추출packages/server/integrations.ts94-105
Bear 설정 인터페이스packages/ui/utils/bear.ts15-17
Bear 설정 읽기packages/ui/utils/bear.ts22-26
Bear 설정 저장packages/ui/utils/bear.ts31-33
UI 설정 컴포넌트packages/ui/components/Settings.tsx496-518
승인 시 Bear 호출packages/editor/App.tsx512-514
서버 Bear 처리packages/server/index.ts250-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 형식:

typescript
bear://x-callback-url/create?title={title}&text={content}&open_note=no