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/ — 커스텀 에이전트(서브에이전트...

공고 알림봇 만들기 (2편) — 인증키가 필요 없는 공공 API도 있습니다

1편에서 "봇은 10분인데 보낼 내용을 가져오는 게 본체"라고 했죠. 그 첫 관문이 인증키였어요. 그런데 여기서부터 예상이 빗나갔습니다.

지난 편 → 1편 — 손으로 찾다 지쳤습니다

공공데이터포털에 다 있는 줄 알았어요

공공 데이터는 공공데이터포털(data.go.kr) 에서 받는다고 알고 있었어요. 회원가입하고, 쓰고 싶은 API에 "활용신청"을 하면 인증키를 받는 구조죠.

실제로 임대주택 쪽은 정말 그랬어요. LH와 마이홈은 신청하니 자동승인으로 즉시 키가 나왔습니다. 심사 대기도 없었어요. 개발계정 기준으로 LH는 하루 1만 건, 마이홈은 하루 1천 건까지 호출할 수 있는데, 알림봇 하나 돌리는 데는 넘치는 양이에요.

"어, 생각보다 쉽네?" 싶었죠. 그런데 그건 네 가지 경우 중 하나였을 뿐이었어요.

키를 안 줬는데 그냥 됐어요

창업 공고를 가져오려고 K-Startup을 보는데, 아무리 찾아도 인증키 얘기가 안 나왔어요. 신청 절차를 못 찾은 건가 싶어서 한참 헤맸죠.

그래서 일단 키 없이 그냥 호출해봤어요.

되더라고요.

K-Startup API는 인증 없이 그대로 응답을 줍니다. 키 발급 절차 자체가 없는 거예요. 처음엔 제가 뭘 잘못 이해한 줄 알았는데, 몇 번 더 확인해도 계속 됐어요. "안 되는 이유"를 찾느라 쓴 시간이 "그냥 해보기"보다 길었던 셈이죠.

키 이름이 기관마다 달랐어요

문제는 키가 필요한 곳들도 서로 안 맞았다는 거예요. 파라미터 이름이 제각각이었어요.

소스인증 방식파라미터 이름발급처
K-Startup불필요——
LH · 마이홈키 필요serviceKey공공데이터포털 (자동승인)
기업마당키 필요crtfcKey기업마당 자체 포털
든든전세(HUG)키 필요API_KEYHUG 자체 포털
중소벤처24심사 필요—사실상 기관용

serviceKey, crtfcKey, API_KEY. 하는 일은 똑같이 "나 인증된 사용자야"인데 이름이 셋 다 달라요. 그러니 소스를 하나 붙일 때마다 문서를 새로 읽어야 했어요.

"통합 포털"이 통합이 아니었어요

여기서 이상한 걸 발견했어요. 기업마당과 든든전세는 공공데이터포털에서 키를 받을 수가 없었어요. 각자 자기 사이트에 가서 따로 발급받아야 했죠.

공공데이터포털에 목록은 올라와 있어요. 그런데 실제 API는 자기네 포털에서 운영하고, 포털엔 "여기로 가세요" 하는 링크만 걸어둔 형태였어요. 통합 포털인데 통합이 껍데기인 거죠.

기관 계열로 묶어보면 더 이상해요.

  • LH와 마이홈은 둘 다 국토교통부 계열인데 엔드포인트도 다르고 응답 형식도 달라요.
  • 기업마당과 중소벤처24는 둘 다 중소벤처기업부 계열인데 서로 따로 놉니다.

기관마다 예산 따로, 시스템 따로 만들다 보니 이렇게 된 거예요.

개인에겐 문을 안 열어주는 곳도 있어요

중소벤처24는 결국 포기했습니다. 심사를 받아야 하는데 사실상 기관 대상이라 개인이 발급받기 어려운 구조였어요.

다행히 기업마당과 공고가 상당히 겹쳐서, 없어도 큰 손실은 아니라고 판단했어요. "안 되는 건 붙이지 않는다" 도 선택이니까요. 여기에 시간을 더 쓰는 건 의미가 없었어요.

정리 — 이 마찰이 봇의 존재 이유였어요

인증키 하나만 봐도 네 갈래였어요. 없는 곳, 자동승인인 곳, 자기 포털에서 따로 주는 곳, 개인에겐 안 주는 곳.

처음엔 이게 그냥 짜증이었어요. 그런데 정리하다 보니 생각이 바뀌었어요. 통합이 잘 돼 있었으면 애초에 봇을 만들 이유가 없었겠죠. 앱 하나로 다 보였을 테니까요.

흩어져 있다는 게 불편의 원인이면서, 동시에 제가 만든 것의 존재 이유였어요.

다음 편

키는 받았는데 이번엔 주소가 없었어요. 공공데이터포털 목록에도, 안내 문서에도 없는 API를 어떻게 찾아냈는지. → 3편 — 목록에 없는 API를 직접 찾아냈습니다


(이전 편: 1편 — 손으로 찾다 지쳤습니다)

댓글