Concept Card - 개념검색, 분석과 요약부터 조판과 출력까지 자동화

소개

책이나 자료를 읽다가 모르는 개념을 만나면 검색을 합니다. 그런데 여기서 진짜로 잃는 건 검색에 쓴 3분, 5분이 아니라, 몰입 상태에서 빠져나왔다가 다시 돌아오는 비용이었습니다.
탭을 5개 열고 스크롤하고 정리하는 사이 원래 읽던 흐름을 놓치고, 가끔은 검색하다 만난 다른 글로 30분이 그냥 사라지고 삼천포로 빠지기도 합니다.

그래서 "정보를 빨리 찾는 도구"가 아니라 "찾는 행위 자체를 없애는 도구"를 만들어보기로 했습니다.
입력창에 단어 한 줄만 넣으면, 저는 그 즉시 손을 떼고 읽던 것으로 돌아갑니다.
20초쯤 뒤 옆 프린터에서 AI가 분석한 내용이 종이 카드로 나오고, 동시에 Obsidian에도 기록됩니다.
단어는 점착메모 한 장(정의·어원·핵심·회상 단서), 개념·질문은 A5 카드 한 장(핵심·배경·예시·흔한 오해)으로 나뉩니다.

핵심 목표는 "원클릭"이 아니라 집중력을 잃지 않고 "손을 뗄 수 있는가" 였습니다. 입력 이후 분석부터 조판, 두 가지 프린터로 인쇄까지 안정적으로 자동화 시키는것 이었습니다.

Mac의 오렌지 카드 앱 스크린샷
  1. 이렇게 웹 인터페이스에 [메모] 또는 [A5카드]를 선택하고 궁금한 내용을 입력 - 보내기 (이후 자동실행)

  2. Claude CLI로 내용을 분석

  3. 점착메모지 또는 A5카드에 맞게 출력사이즈 조판

  4. 메모프린터(점착메모지) or 캐논프린터(A5용지)로 출력

  5. 옵시디언의 지정 폴더에 저장

한국어 텍스트가 적힌 노란색 스티커 메모

부족한 집중력을 조금이나마 지킬수 있게 되기를

한국어 텍스트 편집기의 스크린샷

옵시디언에 저장까지 자동으로 추가되도록 설정하였습니다.

진행 방법

<하드웨어>

캐논 프린터, 네모닉 메모프린터, 구동은 맥OS

프린터와 카드를 들고 있는 손의 사진

<단계별 도구>

검정색 배경에 한자가 표시됩니다.

단계 : 접수 / 도구: FastAPI
웹인터페이스에서 요청을 받자마자 작업번호만 즉시 반환
(분석하는 시간을 기다리게 하면 그동안 딴짓하게 되어 애초의 목적이 깨짐)

────────────────────────────────────────

단계: 대기열 / 도구: asyncio, 워커 1개
프린터가 물리적으로 하나뿐이라 동시에 두 장이 겹치면 종이에 섞여 나옴 → 일부러 병렬화하지 않음

────────────────────────────────────────

단계: 분석 / 도구: Claude Code CLI
API 키 없이 claude -p "<프롬프트>" --model <모델명> 형태로 서브프로세스 호출. 이미 쓰던 구독을 그대로 활용해 별도 과금 없이 처리

────────────────────────────────────────

단계: 조판 / 도구: WeasyPrint
인쇄물을 좌표 계산 대신 HTML/CSS로 만들고 PDF로 변환

────────────────────────────────────────

단계: 인쇄 / 도구: CUPS(lp) + Github 오픈소스 드라이버(Swift, 직접 수정)
OS 표준 인쇄 큐를 그대로 사용

────────────────────────────────────────

단계: 기록 / 도구: Jinja2 → Obsidian 마크다운
프롬프트·조판·노트 서식을 파일 하나(YAML)에서 함께관리

<실제로 사용한 프롬프트 전문>

① 점착메모용 프롬프트 (cards/memo.md)

너는 개념 카드 사전이다. 입력된 단어·개념을 분석해 JSON만 출력한다.

이 카드는 손바닥만 한 점착메모다. 나중에 이 메모만 보고도 개념이 되살아나야 하므로,

사전적 정의만 나열하지 말고 그 개념을 이해하는 데 실제로 도움이 되는 것을 담는다.

규칙:

- JSON 객체 하나만 출력한다. 설명, 인사말, 마크다운 코드펜스를 붙이지 않는다.

- definition은 한 문장, 45자 이내. 무엇인지 바로 알 수 있게.

- 여러 분야에서 쓰이는 말이면 IT·학술·비즈니스 등 전문 맥락의 뜻을 우선한다.

(예: "배리어"는 일반적인 장벽이 아니라 동시성 프로그래밍의 동기화 지점)

- 추측해서 지어내지 않는다. 모르는 항목은 빈 문자열/빈 배열로 두고, 아는 것만 채운다.

- 표제어 자체가 무엇인지 모르면 definition에 "확인 필요"라고 적는다.

출력 형식: {output_schema}

입력: {input}

② A5 카드용 프롬프트 (cards/a5.md)

너는 개념 카드 편집자다. 입력된 개념·주장을 심층 분석해 JSON만 출력한다.

규칙:

- JSON 객체 하나만 출력한다. 설명, 인사말, 마크다운 코드펜스를 붙이지 않는다.

- definition은 한두 문장으로 핵심을 잡는다.

- 확실하지 않은 내용은 단정하지 말고 그 항목을 빈 배열/빈 문자열로 둔다.

출력 형식: {output_schema}

입력: {input}

{output_schema}는 아래처럼 항목 구성(blocks)에서 자동으로 만들어집니다. 이 항목 목록 하나가 AI에게 요구하는 JSON 형식·인쇄 조판·Obsidian 노트 서식 세 가지를 동시에 결정합니다.

blocks:

- key: background

title: 배경 # 카드에 인쇄될 소제목

style: text # list(글머리) | text(문단)

drop: 2 # 한 장 넘치면 버리는 순서

hint: "이 개념이 왜 등장했는지 2~3문장"

<이후 진행할 사항들>

  • 이번 참여 스터디는 24시간 홈랩에서 돌아가는 AI서버 구축 테마입니다.
    본래 취지는 이것을 서버로 만들어두고 로컬 내의 구성원들이 함께 이용하게 하려는 의도였는데, 놀랍게도 Nemonic 프린터는 USB전용이었습니다. (당연히 Wifi로 연결될 것으로 오판했습니다 😅)
    방향을 전환하여 우선 개인버전으로 만들었습니다.
    추후 구성원들 모두 Nemonic을 하나씩 앞에 두고, 각각 서버의 웹페이지를 사용하여 점착메모는 각자의 Nemonic에, A5카드는 캐논 프린터로 구동시키도록 발전 시켜보아야 겠습니다.

  • 가장 중요한 분석/요약 성능을 높이기 위해, 분석 패턴이나 스키마에 대한 디벨롭도 계속해 나갈 예정입니다.

결과와 배운 점

1.의외로 조판에 손이 많이 갔습니다.

조판테스트와 최적화에 용지 소모가 많이 되었습니다. '조판'이라는것이 어떠한 프로세스로 이루어지는지 전혀 미지의 영역이었기에 어렵기도 하고, 클코(Opus5)도 실수가 계속 반복되었습니다.
이런 문제해결은 참 익숙치가 않은데, 지피터스 회원님들께서 좋은 조언을 해주셨으면 좋겠습니다.

흰색 테이블에 포스트잇 메모

2.제일 중요한 것이 아니라 제일 모르겠는 것부터 만져야 한다.

이 프로젝트에서 제일 중요한 건 AI 분석 품질이었지만, 제일 불확실한 건 "이 프린터가 내 명령을 받아줄까"였습니다.
처음(v1) 버전은 기획→화면→AI 분석→조판까지 다 만든 뒤 마지막에 인쇄를 시도했다가 실패했고, 실패 원인이 아키텍처 전제 자체에 있어서 통째로 버려야 했습니다. 후반부에 자꾸 반복해서 실패를 바로잡으려 하니 컨텍스트도 꽉차고 토큰도 많이 소모되었습니다.

그래서 v2에서는 파이썬 코드를 한 줄도 쓰기 전에 lp -d <프린터> test.pdf 한 줄로 "종이가 나오는가"부터 확인했습니다.
결과적으로 문제 4개(파일 거부, 조용한 실패, 잘림, 여백 버그)가 전부 이 단계에서 걸렸고, 설계를 갈아엎지 않고 넘어갈 수 있었습니다.

향후 프로젝트에서는 불확실성에 대해 순서를 매기고 인덱싱 하여, 불확실한 문제부터 해결하도록 순서를 정하려고 합니다. 이것을 필요시 프로젝트의 Claude.md에 넣을 수 있도록 템플릿 초안을 만들어 보았습니다.

'''

## 착수 순서: 불확실성 먼저

여러 단계로 나뉘는 작업(신규 기능, 새 프로젝트, 낯선 외부 연동·하드웨어 등)을 시작할 때 적용한다.

한두 단계짜리 단순 작업에는 적용하지 않는다.

(1) 단계 나열 — 작업을 몇 개 단계로 쪼개 목록으로 제시한다.

(2) 불확실성 평가 후 사용자 확인 — 각 단계에 아래 표시를 붙여 사용자에게 보여주고, 동의나 조정을 받는다.

- 🔴 해봐야 안다 (외부 API·하드웨어·서드파티 문서 의존 등)

- 🟡 될 것 같지만 세부 방식은 불확실

- 🟢 방법이 검증되어 있다 (표준 라이브러리, 이미 해본 패턴)

- 판단 기준은 "중요한가"가 아니라 "이게 틀리면 나머지가 다 무의미해지는가". 핵심 기능이어도 방법이 검증돼 있으면 뒤로, 부수적이어도 성립 여부가 불투명하면 먼저.

(3) 불확실한 순서대로 착수 — 🔴 → 🟡 → 🟢. 전체 설계를 세우기 전에 최소 단위(스크립트 한 줄, 짧은 프로토타입)로 먼저 "되는지"만 확인한다.

(4) 막히면 그 자리에서 설계를 고친다 — 확인 안 된 가정 위에 다음 단계를 쌓지 않는다.

'''

3.사용된 기술 스택은 정리하고 추후 프로젝트에 응용 및 복습할 수 있도록 각각 tech.md와 tech-learning.md로 정리해 두었습니다.

읽어주셔서 감사합니다. 많은 조언 부탁드리겠습니다.

1
1개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.