Posts
YEONGUK LEE
Cancel

Secret Key 없이 CLI 인증 만들기 — Clerk + Loopback 서버 패턴

CLI 도구에 인증이 필요해졌다 MCP 서버를 만들면서 사용자별 데이터를 분리해야 하는 시점이 왔다. stdio 모드에서는 로컬 파일만 다루니까 인증이 필요 없었는데, HTTP Gateway를 띄우고 원격에서도 접근 가능하게 만들면서 “이 요청이 누구 건지” 알아야 했다. 전통적으로 CLI 도구의 인증은 두 가지 중 하나다. API Key를 환경변...

Claude Code Hooks로 플러그인 자동화 파이프라인 만들기

Hooks라는 게 있더라 Claude Code 플러그인을 만들다 보면 “세션이 시작될 때 이것저것 자동으로 해줬으면” 하는 순간이 온다. JWT 토큰 갱신, 로컬 서버 기동, 설정 파일 검증 같은 것들. 매번 사용자한테 “먼저 이거 실행해주세요”라고 안내하는 건 좋은 경험이 아니다. Claude Code에는 Hooks라는 기능이 있다. 특정 이벤트...

Claude Code로 148개 API를 자동 구현한 이야기 — AI 개발팀 3가지 모드

반복 코딩을 AI에 맡기기로 했다 백엔드 프로젝트에서 도메인 CRUD를 구현하는 일은 패턴이 정해져 있다. Service 로직 작성하고, DAO 만들고, 쿼리 작성하고, 상수 등록하고, 테스트 돌리고. 하나만 하면 금방인데 이게 30개, 50개, 100개가 넘어가면 달라진다. 패턴은 같은데 도메인마다 미묘하게 다른 부분이 있어서 완전한 코드 생성기를...

자연어 한 줄로 소프트웨어를 만드는 6-Agent 파이프라인 설계기

“주문 관리 시스템을 만들어줘.” 이 한 줄을 넣으면 요구사항 정의서, ERD, 백엔드 명세, 프론트엔드 컴포넌트 명세가 쏟아져 나오는 시스템을 만들었다. 6개의 에이전트가 릴레이처럼 산출물을 넘기면서 동작하는 구조인데, 만드는 과정에서 생각보다 많은 삽질이 있었다. 사용자 자연어 입력 ↓ BA 에이전트 → 요구사항 정의서 (PR...

LangChain 프롬프트 템플릿 패턴 정리 (TypeScript) — Few-shot, Partial, Pipeline

LLM 애플리케이션에서 프롬프트는 코드와 동일한 수준으로 관리해야 합니다. 하드코딩된 문자열로 시작했다가 기능이 복잡해지면 프롬프트가 스파게티가 되는 경험을 하게 됩니다. LangChain의 프롬프트 템플릿 시스템은 이 문제를 구조적으로 해결합니다. 이 글에서는 실무에서 자주 사용하는 세 가지 패턴을 정리합니다. FewShotPromptTem...

LangChain으로 구조화된 LLM 출력 제어하기 (TypeScript)

LLM을 프로덕션에 도입할 때 가장 자주 맞닥뜨리는 문제 중 하나는 출력 형식의 불안정성입니다. 모델에게 JSON으로 응답해달라고 요청해도 따옴표가 어긋나거나, 필드 이름이 달라지거나, 아예 다른 형식으로 응답하는 경우가 생깁니다. LangChain은 이 문제를 두 가지 방법으로 해결합니다. .withStructuredOutput() — 모델...

Obsidian 볼트를 Claude Code로 자동화한 이야기

노트 앱을 넘어서 Obsidian을 쓰기 시작한 건 메모를 모아두기 위해서였다. 그런데 기록이 늘어나면서 단순 메모장을 넘어 재정 관리, 여행 계획, 투자 기록, 건강 기록까지 들어가기 시작했고, 어느 순간 “이 데이터를 좀 더 체계적으로 다룰 수 없을까?” 하는 생각이 들었다. Claude Code를 볼트에 연결하면서 상황이 바뀌었다. 마크다운 ...

iPad에서 Mac Mini의 Claude Code를 원격 실행하기 — Tailscale + tmux 가이드

Claude Code를 쓰다 보면 자연스럽게 드는 생각이 있다. “이걸 iPad에서도 쓸 수 있으면 좋겠는데.” 터미널 기반이라 iOS에서 직접 돌리는 건 안 되지만, 집에 Mac Mini를 하나 켜놓고 SSH로 접속하면 이야기가 달라진다. 지금 내 환경은 이렇다. 자택 Mac Mini에 Tailscale과 tmux를 깔아놓고, iPad의 Termi...

KrisFlyer 마일리지, 어디에 쓰는 게 가장 이득일까

카드 발급 1년, 마일이 쌓이기 시작했다 작년 5월에 신한카드 싱가포르항공 더 베스트를 발급받았다. 해외 결제가 잦은 편이라 국내 항공사 마일보다 SIA 쪽이 낫겠다 싶었고, 결제금액 1,500원당 2마일(기본)이라는 적립률이 마음에 들었다. 부스터마일즈까지 합치면 일반 국내 결제도 3마일/1,500원이 된다. 발급 후 약 10개월이 지나니 누적 ...

Windows 전용 Electron 앱을 macOS로 확장한 이야기 — node-pty 제거부터 Apple Silicon 지원까지

배경 사내 CI/CD 데스크톱 도구가 있다. AWS Lambda, ECS Fargate, API Gateway 등 클라우드 리소스의 배포·관리·모니터링을 GUI 환경에서 수행하는 Electron + Nuxt 2 앱이다. 문제는 이 도구가 Windows 전용이었다는 점이다. 팀 내 macOS 사용자(특히 Apple Silicon Mac)가 늘어나면서...