Claude Code 플러그인, 통째로 깔지 않고 알맹이만 빼왔다

지난 편 → 6편 — 챗GPT랑 클로드, 왜 서로 대화는 못 시킬까 Claude Code로 한동안 일하다 보면, 남이 만들어 둔 도구를 가져다 쓰고 싶어지는 순간이 옵니다. 마켓플레이스에 올라온 플러그인 중 하나가 눈에 들어왔습니다. 코드를 필요 이상으로 부풀리지 않게, "게으른 시니어 개발자"처럼 최소로만 짜도록 붙잡아 주는 도구였습니다. 마음에 들었습니다. 그런데 막상 설치하려니 손이 멈췄습니다. 제가 원한 건 그 안에 담긴 원칙 하나 였는데, 플러그인은 그것 말고도 이런저런 것들을 통째로 데려옵니다. 안 쓸 기능까지 제 환경에 얹히는 게 영 내키지 않았습니다. 그래서 깔지 않고, 열어서 필요한 알맹이만 빼내기로 했습니다. 그러려면 먼저 "플러그인"과 "스킬"이 뭐가 다른지부터 알아야 했습니다. 스킬과 플러그인은 뭐가 다른가 한 줄로 하면 이렇습니다. 스킬은 부품 하나, 플러그인은 부품을 담은 상자. 스킬(Skill) 은 최소 단위입니다. SKILL.md 라는 마크다운 파일 하나가 전부고, 필요하면 옆에 보조 파일(스크립트·데이터)을 둘 수 있습니다. 두는 곳도 단순합니다. 개인용: ~/.claude/skills/<이름>/SKILL.md 프로젝트용: .claude/skills/<이름>/SKILL.md 파일 맨 위 frontmatter에 "이 스킬을 언제 써야 하는지"를 적어두면, Claude가 상황을 보고 알아서 불러 씁니다. 아니면 /스킬이름 으로 직접 부를 수도 있습니다. 말하자면 "이 일은 이렇게 처리해라"라고 적어둔 지침 한 장 입니다. 플러그인(Plugin) 은 그 부품들을 담아 배포하는 상자입니다. .claude-plugin/plugin.json 이라는 매니페스트를 중심으로, 여러 종류의 구성요소를 한 번에 묶습니다. skills/ — 스킬들 agents/ — 커스텀 에이전트(서브에이전트...

AI로 만들어본 것들 (3편) — 문서 민감정보 자동 마스킹 도구 만들기

결론부터: 문서에서 민감정보를 가리는 일을 매번 손으로 하면 번거롭습니다. 파이썬(PyMuPDF)으로 자동 마스킹 도구를 AI에게 짜달라고 해서 만들었어요. 다만 "무엇을 가릴지"는 사람이 판단해야 합니다 — 너무 많이 가리면 그 서류가 쓸모없어지거든요. (제가 그랬습니다.)

지난 편 → 2편 — Gemini와 Claude로 레거시 코드베이스 지도 만들기

매번 손으로 가리는 게 귀찮았습니다

어떤 문서를 제출할 일이 생기면, 그 안의 민감정보(주소 일부, 번호 등)를 가려야 할 때가 있습니다. 캡처 떠서 그림판으로 검은 칠을 하거나, PDF 편집기를 여는 식이죠.

한두 번이면 괜찮은데, 여러 장이거나 반복되면 일입니다. 위치도 매번 조금씩 어긋나고요. "이거 자동화하면 되잖아" 싶었습니다.

AI에게 마스킹 스크립트를 시켰습니다

직접 라이브러리를 찾아 헤매는 대신, AI(Claude Code)에게 요구사항을 줬습니다. "PDF를 이미지로 렌더링하고, 지정한 영역에 검은 사각형을 덮어씌우는 파이썬 스크립트를 만들어줘." 라이브러리는 PyMuPDF를 골라줬어요.

핵심 흐름은 단순했습니다.

  • PDF 페이지를 이미지로 렌더링 (원본 PDF 텍스트를 남기지 않으려고 — 이미지로 만들면 검은 칠 밑의 글자가 복사되지 않습니다)
  • 가릴 영역을 좌표로 지정해서 검은 사각형을 덮음
  • 결과를 이미지 파일로 저장

여기서 하나 배웠어요. PDF 위에 그냥 검은 박스를 얹으면 위험합니다. 박스 밑의 텍스트가 그대로 남아 있어서, 복사하거나 도구로 열면 가린 내용이 튀어나옵니다. 그래서 이미지로 굽는(rasterize) 게 확실합니다. 이건 AI가 알려준 게 아니라, "이렇게 하면 밑의 글자가 남지 않냐"고 되물으며 확인한 부분이었어요.

진짜 함정 — 너무 많이 가리면 서류가 무효가 됩니다

여기가 이 편에서 제일 솔직해야 할 부분입니다. 도구는 잘 만들었는데, 제가 판단을 틀렸습니다.

"민감하니까 최대한 가리자"는 생각으로 넉넉하게 마스킹했어요. 그런데 그 문서를 받는 쪽에서 "가려진 부분이 우리가 꼭 확인해야 하는 항목"이라며 반려했습니다. 안전하게 가린다고 가린 게, 정작 그 서류의 존재 이유(확인)를 막아버린 거죠. 결국 덜 가린 버전으로 다시 만들어 냈습니다.

교훈이 명확했어요. 자동화 도구는 "어떻게 가릴지"를 해결하지, "무엇을 가릴지"는 해결하지 못합니다. 무엇을 가리고 무엇을 남길지는 그 서류의 목적을 아는 사람이 판단해야 합니다. 도구는 시키는 대로 정확히 가릴 뿐이고요.

정리 — 자동화는 도구, 판단은 사람

이 편의 교훈은 이렇습니다.

  • 반복되는 편집은 자동화할 값이 있다. AI에게 요구사항만 주면 스크립트는 금방 나옵니다
  • 가린 것이 진짜 가려졌는지 확인하라. 이미지로 굽지 않으면 밑의 글자가 남습니다 (AI 답을 그대로 믿지 말고 되물어 검증)
  • 무엇을 가릴지는 도구가 아니라 사람의 판단이다. 너무 가리면 서류가 무효가 됩니다

AI는 마스킹 도구를 몇 분 만에 만들어줬습니다. 그런데 그 도구를 어디에, 얼마나 쓸지를 잘못 판단한 건 저였어요. 1편·2편과 같은 결론에 또 닿습니다 — AI는 도구를 만들고, 판단은 사람이 한다.

다음 편

AI를 도구로 엮어 만든 이야기를 세 편에 걸쳐 풀었습니다. 그리고 그 "이어서 기록하겠다"의 다음 편이 나왔습니다 → 4편 — 간이과세 확인 도구, 판정의 69%를 포기했습니다

댓글