<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tools on philipjkim</title><link>https://philipjkim.cc/tags/tools/</link><description>Recent content in Tools on philipjkim</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Thu, 23 Jul 2026 13:03:11 +0900</lastBuildDate><atom:link href="https://philipjkim.cc/tags/tools/index.xml" rel="self" type="application/rss+xml"/><item><title>Marp: Markdown으로 발표 슬라이드를 만들고 Git으로 관리하기</title><link>https://philipjkim.cc/posts/20260723-marp-markdown-presentation/</link><pubDate>Thu, 23 Jul 2026 13:03:11 +0900</pubDate><guid>https://philipjkim.cc/posts/20260723-marp-markdown-presentation/</guid><description>&lt;p&gt;&lt;em&gt;이 글은 Claude Opus 4.8 을 이용해 초안이 작성되었으며, 이후 퇴고를 거쳤습니다.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;발표 자료를 만들 때마다 PowerPoint나 Keynote를 열면서 &amp;ldquo;코드는 Git으로 관리하는데 슬라이드는 왜 바이너리 파일로 주고받아야 하지?&amp;ldquo;라는 생각을 해본 개발자라면, 이 글이 도움이 될 것입니다. 이미 README와 기술 문서를 Markdown으로 쓰고 있다면, 슬라이드도 같은 방식으로 만들 수 있습니다. 이 글에서는 &lt;strong&gt;Marp&lt;/strong&gt; (Markdown Presentation Ecosystem)을 소개합니다.&lt;/p&gt;
&lt;h2 id="marp란-무엇인가"&gt;Marp란 무엇인가&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://marp.app/"&gt;Marp&lt;/a&gt;은 Markdown 파일을 발표 슬라이드로 변환해주는 오픈소스 도구 모음입니다. 핵심 아이디어는 단순합니다:&lt;/p&gt;</description></item><item><title>Agentic Coding 시대의 Repo 부트스트래핑 가이드 Part 2: Go + Templ + HTMX To-Do 앱으로 직접 만들어 보기</title><link>https://philipjkim.cc/posts/20260528-repo-bootstrapping-guide-02/</link><pubDate>Thu, 28 May 2026 19:03:00 +0900</pubDate><guid>https://philipjkim.cc/posts/20260528-repo-bootstrapping-guide-02/</guid><description>&lt;p&gt;&lt;em&gt;이 글은 Claude Opus 4.7 을 이용해 초안이 작성되었으며, 이후 퇴고를 거쳤습니다.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="../20260528-repo-bootstrapping-guide-01/"&gt;Part 1&lt;/a&gt; 에서는 2026년 5월 기준 de-facto 가 된 spec 문서들의 지형도와 best practices 를 정리했습니다. 2편에서는 가상의 Go + Templ + HTMX 기반 To-Do 앱 &lt;code&gt;gotodo&lt;/code&gt; 를 새로 부트스트래핑한다고 가정하고, 각 문서를 실제로 어떻게 채우는지 발췌 형태로 따라갑니다.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="가상-프로젝트-gotodo"&gt;가상 프로젝트: &lt;code&gt;gotodo&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;스택은 다음과 같습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Go 1.23&lt;/strong&gt; — 표준 라이브러리 중심&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://templ.guide"&gt;templ&lt;/a&gt;&lt;/strong&gt; — Go 네이티브 SSR 템플릿 (type-safe)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://htmx.org"&gt;HTMX 2.0&lt;/a&gt;&lt;/strong&gt; — 클라이언트 JS 최소화&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQLite + &lt;code&gt;modernc.org/sqlite&lt;/code&gt;&lt;/strong&gt; — CGO 없는 순수 Go 드라이버&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;목표는 단순합니다. 할 일 추가/완료/삭제만 되는 SSR 미니멀 앱. 1인 로컬 사용을 가정합니다.&lt;/p&gt;</description></item><item><title>Agentic Coding 시대의 Repo 부트스트래핑 가이드 Part 1: AGENTS.md 와 spec 문서 지형도</title><link>https://philipjkim.cc/posts/20260528-repo-bootstrapping-guide-01/</link><pubDate>Thu, 28 May 2026 19:02:00 +0900</pubDate><guid>https://philipjkim.cc/posts/20260528-repo-bootstrapping-guide-01/</guid><description>&lt;p&gt;&lt;em&gt;이 글은 Claude Opus 4.7 을 이용해 초안이 작성되었으며, 이후 퇴고를 거쳤습니다.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="들어가며-readme-한-장으로-안-되는-시대"&gt;들어가며: README 한 장으로 안 되는 시대&lt;/h2&gt;
&lt;p&gt;신규 서비스를 위한 git repo 를 막 만들었다고 합시다. 2년 전이라면 &lt;code&gt;README.md&lt;/code&gt; 한 장에 빌드 명령과 디렉터리 구조를 적고, 나머지는 코드와 머릿속에서 합의된 관행으로 굴러갔습니다. 새 팀원이 들어오면 옆 자리 동료가 30분쯤 설명해 주고, 그걸로 충분했습니다.&lt;/p&gt;
&lt;p&gt;지금은 그 &amp;ldquo;옆 자리 동료&amp;rdquo; 역할의 절반 이상을 Claude Code, Codex CLI, Gemini CLI, Cursor 같은 에이전트가 맡고 있습니다. 그런데 에이전트는 옆 자리에 앉지 않습니다. 매 세션마다 처음 합류한 신입처럼 repo 에 들어와서, 우리가 적어 둔 텍스트만 읽고 일을 시작합니다. &lt;strong&gt;에이전트에게 &amp;ldquo;이 프로젝트는 이런 곳이고, 이런 규칙으로 일한다&amp;rdquo; 를 전달하는 문서가 부실하면, 에이전트가 만드는 결과물의 품질은 운에 좌우됩니다.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Superpowers 플러그인 가이드 Part 4: 명시 호출 vs 자동 트리거 — 실전 가이드와 한계</title><link>https://philipjkim.cc/posts/20260520-superpowers-plugin-guide-04/</link><pubDate>Wed, 20 May 2026 16:58:00 +0900</pubDate><guid>https://philipjkim.cc/posts/20260520-superpowers-plugin-guide-04/</guid><description>&lt;p&gt;&lt;em&gt;이 글은 Claude Opus 4.7 을 이용해 초안이 작성되었으며, 이후 퇴고를 거쳤습니다.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="../20260520-superpowers-plugin-guide-01/"&gt;1편&lt;/a&gt; 에서 개요와 설치를, &lt;a href="../20260520-superpowers-plugin-guide-02/"&gt;2편&lt;/a&gt; 에서 핵심 워크플로우를, &lt;a href="../20260520-superpowers-plugin-guide-03/"&gt;3편&lt;/a&gt; 에서 품질 보증 스킬을 다뤘습니다. 마지막 4편에서는 실전에서 가장 자주 부딪히는 질문에 답합니다.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;이거 그냥 두면 알아서 다 해주는 건가요, 아니면 매번 &lt;code&gt;/superpowers:xxx&lt;/code&gt; 로 호출해야 하나요?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;답은 &lt;strong&gt;&amp;ldquo;대부분 자동이지만, 의도적으로 명시 호출해야 더 잘 작동하는 케이스가 있다&amp;rdquo;&lt;/strong&gt; 입니다. 이 글에서는 두 모드의 비교 분석, 트러블슈팅, 커스터마이즈 방법, 그리고 Java/Go 백엔드 개발 현장에서의 실용 팁과 한계를 정리합니다.&lt;/p&gt;</description></item><item><title>Superpowers 플러그인 가이드 Part 3: 품질 보증 스킬 — TDD, Systematic Debugging, Verification, Code Review</title><link>https://philipjkim.cc/posts/20260520-superpowers-plugin-guide-03/</link><pubDate>Wed, 20 May 2026 16:57:00 +0900</pubDate><guid>https://philipjkim.cc/posts/20260520-superpowers-plugin-guide-03/</guid><description>&lt;p&gt;&lt;em&gt;이 글은 Claude Opus 4.7 을 이용해 초안이 작성되었으며, 이후 퇴고를 거쳤습니다.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="../20260520-superpowers-plugin-guide-01/"&gt;1편&lt;/a&gt; 에서 Superpowers 의 개요와 설치를, &lt;a href="../20260520-superpowers-plugin-guide-02/"&gt;2편&lt;/a&gt; 에서 핵심 워크플로우를 다뤘습니다. 3편은 그 워크플로우 안에서 작동하면서 &lt;strong&gt;에이전트의 합리화와 빠져나갈 구멍을 차단&lt;/strong&gt; 하는 품질 보증 스킬들을 자세히 들여다봅니다.&lt;/p&gt;
&lt;p&gt;이 스킬들은 모두 &amp;ldquo;Iron Law&amp;rdquo; 라는 이름의 명문화된 규칙을 갖고 있다는 공통점이 있습니다. 그리고 각 스킬의 문서 안에는 &lt;strong&gt;&amp;ldquo;Red Flags&amp;rdquo; 표&lt;/strong&gt; 가 들어 있어, 에이전트가 빠져나가려 할 때 흔히 하는 합리화의 패턴들을 그대로 박아두었습니다. 이게 결과적으로 모델의 행동을 바꿉니다.&lt;/p&gt;</description></item><item><title>Superpowers 플러그인 가이드 Part 2: 핵심 워크플로우 — Brainstorming부터 Subagent-driven Development까지</title><link>https://philipjkim.cc/posts/20260520-superpowers-plugin-guide-02/</link><pubDate>Wed, 20 May 2026 16:56:00 +0900</pubDate><guid>https://philipjkim.cc/posts/20260520-superpowers-plugin-guide-02/</guid><description>&lt;p&gt;&lt;em&gt;이 글은 Claude Opus 4.7 을 이용해 초안이 작성되었으며, 이후 퇴고를 거쳤습니다.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="../20260520-superpowers-plugin-guide-01/"&gt;1편&lt;/a&gt; 에서는 Superpowers 가 무엇이고 어떻게 자동 트리거되는지를 다뤘습니다. 2편은 가장 핵심이라고 할 수 있는 &lt;strong&gt;개발 워크플로우 전체&lt;/strong&gt; 를 깊게 들여다봅니다.&lt;/p&gt;
&lt;p&gt;전체 흐름은 다음과 같습니다.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-mermaid" data-lang="mermaid"&gt;flowchart LR
 A[brainstorming] --&amp;gt; B[using-git-worktrees]
 B --&amp;gt; C[writing-plans]
 C --&amp;gt; D{독립 태스크?}
 D --&amp;gt;|yes| E[subagent-driven-development]
 D --&amp;gt;|no/사람 체크포인트 선호| F[executing-plans]
 E --&amp;gt; G[finishing-a-development-branch]
 F --&amp;gt; G

 style A fill:#90EE90,color:#000000
 style B fill:#87CEEB,color:#000000
 style C fill:#FFD700,color:#000000
 style D fill:#FFB6C1,color:#000000
 style E fill:#DDA0DD,color:#000000
 style F fill:#DDA0DD,color:#000000
 style G fill:#FFA07A,color:#000000
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;이 글에서는 각 스킬이 실제로 무엇을 하는지, 그리고 &lt;strong&gt;Go 기반 백엔드 서비스에 새 API 엔드포인트를 추가&lt;/strong&gt; 하는 시나리오를 따라가며 흐름을 체험해 봅니다.&lt;/p&gt;</description></item><item><title>Superpowers 플러그인 가이드 Part 1: 소개, 설치, 그리고 철학</title><link>https://philipjkim.cc/posts/20260520-superpowers-plugin-guide-01/</link><pubDate>Wed, 20 May 2026 16:55:00 +0900</pubDate><guid>https://philipjkim.cc/posts/20260520-superpowers-plugin-guide-01/</guid><description>&lt;p&gt;&lt;em&gt;이 글은 Claude Opus 4.7 을 이용해 초안이 작성되었으며, 이후 퇴고를 거쳤습니다.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="들어가며"&gt;들어가며&lt;/h2&gt;
&lt;p&gt;Claude Code, Codex CLI, Cursor 등 코딩 에이전트(coding agent)를 매일 쓰는 백엔드 개발자라면 한 번쯤은 이런 경험이 있을 겁니다. &amp;ldquo;간단한 기능 하나만 추가해줘&amp;rdquo; 라고 했더니, 요구사항 정리 없이 코드를 우다다 쏟아내다가 절반쯤에서 길을 잃고, 테스트도 빠진 채 &amp;ldquo;완료했습니다&amp;rdquo; 라고 보고하는 경우 말입니다. 모델은 똑똑한데, 작업 방식이 들쭉날쭉해서 결과의 품질이 운에 좌우됩니다.&lt;/p&gt;
&lt;p&gt;Jesse Vincent 가 만든 &lt;strong&gt;&lt;a href="https://github.com/obra/superpowers"&gt;Superpowers&lt;/a&gt;&lt;/strong&gt; 는 바로 이 지점을 노린 플러그인입니다. 모델을 더 똑똑하게 만드는 게 아니라, 모델이 &lt;strong&gt;언제, 어떤 순서로, 어떤 규율로&lt;/strong&gt; 일해야 하는지를 강제하는 &amp;ldquo;방법론(methodology)&amp;rdquo; 자체를 플러그인 형태로 주입합니다.&lt;/p&gt;</description></item><item><title>AI 툴 소개: GitHub Spec Kit: AI 에이전트 개발을 위한 명세서</title><link>https://philipjkim.cc/posts/20250917-introduction-to-spec-kit/</link><pubDate>Wed, 17 Sep 2025 10:02:47 +0900</pubDate><guid>https://philipjkim.cc/posts/20250917-introduction-to-spec-kit/</guid><description>&lt;p&gt;GitHub Spec Kit은 코드와 상호작용하는 AI 에이전트 및 모델 개발자를 위한 명세(spec) 모음입니다. 이 명세들은 AI 에이전트가 파일 시스템과 상호작용하고, 명령을 실행하며, 사용자와 소통하는 방식에 대한 &lt;strong&gt;모범 사례(best practice)를 정의&lt;/strong&gt;합니다.&lt;/p&gt;
&lt;p&gt;이러한 표준을 채택함으로써, 우리는 AI 에이전트 개발 생태계가 더욱 강력하고 상호 운용 가능하도록 만들 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;원문: &lt;a href="https://github.com/github/spec-kit"&gt;https://github.com/github/spec-kit&lt;/a&gt; (Translated by Google Gemini)&lt;/em&gt; (2025-09-17 기준)&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-명세-기반-개발이란-무엇입니까"&gt;🤔 명세 기반 개발이란 무엇입니까?&lt;/h2&gt;
&lt;p&gt;명세 기반 개발은 전통적인 소프트웨어 개발의 &lt;strong&gt;판도를 뒤집습니다&lt;/strong&gt;. 수십 년 동안 코드가 왕이었습니다 — 명세는 코딩이라는 &amp;ldquo;진짜 작업&amp;quot;이 시작되면 만들어졌다가 버려지는 비계(scaffolding)에 불과했습니다. 명세 기반 개발은 이를 변화시킵니다: &lt;strong&gt;명세가 실행 가능해지며&lt;/strong&gt;, 단지 구현을 안내하는 것을 넘어 직접 작동하는 구현체를 생성합니다.&lt;/p&gt;</description></item></channel></rss>