Knowledge Base
A retrospective on building a macOS desktop app (Tauri + Rust + React) with an AI agent. The decision to make markdown files — not the database — the source of truth, the research I did before writing any code, the features I chose not to build, and the macOS permission bug that took the longest to crack. A story about judgment more than code.
AI 에이전트와 macOS 데스크톱 앱(Tauri + Rust + React)을 만들며 남긴 회고입니다. DB가 아니라 마크다운 파일을 진실의 원천으로 둔 결정, 구현보다 먼저 한 조사, 만들지 않기로 한 것들, 그리고 가장 오래 붙잡은 macOS 권한 버그까지 — 코드보다 판단에 관한 이야기입니다.
Semble is a Python library that splits code into chunks with tree-sitter, fuses Model2Vec static embeddings with BM25 via RRF, and applies code-aware reranking — delivering millisecond code search on CPU alone. Where CodeGraph solves the same problem with an AST knowledge graph, Semble solves it through retrieval. This post analyzes the architecture by contrasting the two approaches.
Semble은 tree-sitter로 코드를 청크로 자르고, Model2Vec 정적 임베딩과 BM25를 RRF로 융합한 뒤 코드 인지 리랭킹을 얹어, CPU에서 밀리초 만에 코드 검색을 돌리는 Python 라이브러리입니다. CodeGraph가 AST 지식 그래프로 같은 문제를 풀었다면, Semble은 검색(retrieval)으로 풉니다. 두 접근을 대조하며 구조를 분석합니다.
CodeGraph is a TypeScript tool that uses tree-sitter to parse source code, builds a local SQLite knowledge graph of symbols, edges, and files (with FTS5), and exposes that graph via an MCP server to coding agents like Claude Code, Cursor, Codex, and Hermes Agent. Instead of burning tokens navigating a codebase with grep/Read calls, agents get answers from a single codegraph_explore invocation. This post analyzes the architecture that makes that possible.
CodeGraph는 tree-sitter로 코드를 파싱해 심볼·엣지·파일을 로컬 SQLite 지식 그래프로 만들고, 이를 MCP 서버로 Claude Code·Cursor·Codex·Hermes Agent 같은 코딩 에이전트에 제공하는 TypeScript 도구입니다. 에이전트가 grep/Read로 코드베이스를 탐색하며 토큰을 태우는 대신, 한 번의 codegraph_explore 호출로 답을 받게 만드는 구조를 분석합니다.
WeKnora is a Go-based enterprise knowledge framework open-sourced by Tencent. It bundles document parsing, vectorization, hybrid search, and LLM inference into an event-driven chat pipeline, then layers a ReAct Agent and Wiki Mode on top. This analysis covers how a Python docreader gRPC service, 20+ LLM providers, 7 vector DBs, 7 IM channels, multi-tenant RBAC, and Langfuse observability are all handled as swappable components within a single monorepo.
WeKnora는 Tencent가 공개한 Go 기반 엔터프라이즈 지식 프레임워크입니다. 문서 파싱, 벡터화, 하이브리드 검색, LLM 추론을 event-driven chat pipeline으로 묶고, 그 위에 ReAct Agent와 Wiki Mode를 올립니다. Python docreader gRPC 서비스, 20여 개 LLM provider, 7종 벡터 DB, 7개 IM 채널, multi-tenant RBAC, Langfuse observability까지 한 monorepo 안에서 swappable 구성으로 다루는 구조를 분석합니다.
Paper notes on GPT-2 covering its core ideas: decoder-only Transformer scaling, WebText, next-token prediction, zero-shot task transfer, and the staged release controversy.
GPT-2 논문의 핵심 아이디어인 decoder-only Transformer scaling, WebText, next-token prediction, zero-shot task transfer, staged release 논쟁을 정리한 논문 노트.
Dify is an open-source project that brings LLM app development, a workflow canvas, a RAG pipeline, model/tool plugins, MCP, and operational observability together into a single productized platform. This post analyzes its architecture through the lens of the Flask API, Graphon workflow runtime, Celery workers, Next.js console, plugin daemon, and vector backend structure.
Dify는 LLM 앱 개발, 워크플로 캔버스, RAG 파이프라인, 모델/도구 플러그인, MCP, 운영 관측성을 하나의 제품형 플랫폼으로 묶는 오픈소스 프로젝트입니다. Flask API, Graphon workflow runtime, Celery worker, Next.js 콘솔, plugin daemon, vector backend 구조를 중심으로 분석합니다.
OpenHands productizes an AI coding agent across a local GUI, FastAPI app server, sandbox, agent-server, SDK, event store, MCP, and skill system. This analysis focuses on the boundary between the app server and GUI that the current OpenHands repository is responsible for.
OpenHands는 AI 코딩 에이전트를 로컬 GUI, FastAPI app server, sandbox, agent-server, SDK, event store, MCP, skill system으로 제품화하는 프로젝트입니다. 현재 OpenHands 저장소가 담당하는 app server와 GUI 경계를 중심으로 분석합니다.
Ruflo extends Claude Code with a CLI, MCP server, swarm coordination, AgentDB memory, hooks, background workers, a plugin marketplace, and a Web UI to create a multi-agent operations layer. This post analyzes the architecture of Ruflo — an evolution from Claude Flow — and connects it to earlier posts on agentmemory, Superpowers, and Hermes Agent.
Ruflo는 Claude Code 위에 CLI, MCP 서버, swarm coordination, AgentDB 메모리, hooks, background worker, plugin marketplace, Web UI를 얹어 다중 에이전트 운영 계층을 만드는 프로젝트입니다. Claude Flow에서 Ruflo로 확장된 구조를 기존 agentmemory, Superpowers, Hermes Agent 글과 이어서 분석합니다.
Keeping Claude Code, Codex, Gemini CLI, and OpenClaw in their own separate silos has clear limits. agentmemory collects observations via hooks, reconstructs them with BM25, vector, and graph retrieval, and creates a long-term memory layer shared across multiple agents through MCP, REST, and a viewer.
Claude Code, Codex, Gemini CLI, OpenClaw를 따로 기억시키는 방식은 한계가 분명합니다. agentmemory는 hooks로 관측을 수집하고, BM25·vector·graph 검색으로 재구성한 뒤, MCP·REST·viewer로 여러 에이전트가 공유하는 장기 기억 계층을 만듭니다.
An architecture deep-dive into Nous Research's Hermes Agent from a user perspective. Covers the CLI, messenger gateway, ACP, tool registry, skills, memory, plugins, and sub-agent structure in an accessible, flow-oriented way.
Nous Research의 Hermes Agent를 사용자 관점에서 이해하기 위한 아키텍처 분석입니다. CLI, 메신저 게이트웨이, ACP, 도구 레지스트리, 스킬, 메모리, 플러그인, 서브에이전트 구조를 쉬운 흐름으로 정리합니다.
An analysis of how Claude Code Game Studios combines 49 agents, 72 skills, hooks, rules, and templates to run a single Claude Code session like a game development studio.
Claude Code Game Studios가 49개 에이전트, 72개 스킬, 훅, 룰, 템플릿을 조합해 단일 Claude Code 세션을 게임 개발 스튜디오처럼 운영하는 방식을 분석합니다.
Paper notes covering the core ideas of BERT: the bidirectional Transformer encoder, masked language model, next sentence prediction, and the fine-tuning paradigm.
BERT 논문의 핵심 아이디어인 양방향 Transformer encoder, masked language model, next sentence prediction, fine-tuning 패러다임을 정리한 논문 노트.
A clear explanation of how Bloom filters work, how to use them correctly for user-ID duplicate checks during sign-up, and a concise implementation example.
블룸 필터의 핵심 개념과 회원가입 중복 체크에서의 올바른 사용법, 그리고 간단한 구현 예시를 정리합니다.
A comparison of encoder-only and decoder-only architectures that distinguish the BERT and GPT families.
BERT와 GPT 계열을 구분하는 encoder-only, decoder-only 구조를 비교합니다.
Explains how RNNs — the dominant architecture before Transformers — process sequences token by token, and the fundamental limitations that motivated moving beyond them.
Transformer 이전의 대표 구조인 RNN이 문장을 순서대로 처리하는 방식과 한계를 설명합니다.
Explains BERT's core training objective — the Masked Language Model — with formulas, commentary, and examples.
BERT의 핵심 학습 목표인 Masked Language Model을 수식, 해설, 예시로 설명합니다.
Explains large-scale pre-training and task-specific fine-tuning through the lens of the BERT workflow.
대규모 사전학습과 태스크별 fine-tuning이 무엇인지 BERT 흐름에 맞춰 설명합니다.
A practical guide to integrating RedisBloom into a signup duplicate-check flow, covering request routing, sharding, synchronization, rebuild strategies, and monitoring.
RedisBloom을 회원가입 중복 체크에 적용할 때 필요한 요청 플로우, 샤딩, 동기화, 재빌드, 모니터링 전략을 정리합니다.
A clear explanation of what the Transformer encoder and decoder each do, grounded in the original architecture and illustrated with simple examples.
Transformer encoder와 decoder가 각각 어떤 역할을 하는지 원래 구조와 쉬운 예시로 설명합니다.
An analysis of Superpowers — a skill library that injects disciplined development practices like TDD, debugging, brainstorming, and code review into AI coding agents — covering its architecture and design philosophy.
AI 코딩 에이전트에 TDD, 디버깅, 브레인스토밍, 코드 리뷰 같은 개발 절차를 주입하는 Superpowers의 구조와 설계 철학을 분석합니다.
A deep dive into the Playwright repository — covering the core engine, client/server protocol, fixture-based test runner, why it has become so popular, why it feels slow when paired with an LLM, and what the alternatives look like.
Playwright 저장소를 직접 분석해 core engine, client/server protocol, fixture 기반 테스트 러너, 왜 각광받는지, LLM과 함께 쓸 때 왜 느린지, 어떤 대안이 있는지까지 정리합니다.
A reading note on the Transformer paper — the core ideas, why it mattered, and what to read next.
Transformer 논문의 핵심 아이디어, 왜 중요했는지, 다음에 읽을 논문까지 연결하는 시작 노트.
Explains cross-entropy and perplexity — the metrics used to measure how wrong a model is — with formulas, commentary, and examples.
모델이 얼마나 틀렸는지 측정하는 cross-entropy와 perplexity를 수식, 해설, 예시로 설명합니다.
A walkthrough of how softmax converts raw scores into probability-like values, with formulas, explanations, and examples.
softmax가 점수를 확률처럼 바꾸는 원리를 수식, 해설, 예시로 정리합니다.
A walkthrough of vectors and the dot product — with notation, explanations, and examples — covering what you need to know before reading LLM papers.
LLM 논문을 읽기 전에 꼭 알아두면 좋은 벡터와 내적의 의미를 수식, 해설, 예시로 정리합니다.
A Map of Content page for reading core LLM papers in order, starting from the Transformer.
Transformer부터 시작해 LLM 핵심 논문을 순서대로 읽기 위한 Map of Content 페이지입니다.
Explains the role of Q, K, and V through the attention formula, a plain-language walkthrough, and a concrete example.
Q, K, V가 각각 어떤 역할을 하는지 attention 수식, 해설, 예시로 설명합니다.
Why Residual, LayerNorm, and FFN are necessary in a Transformer block — explained with equations, commentary, and examples.
Transformer 블록에서 Residual, LayerNorm, FFN이 왜 필요한지 수식, 해설, 예시로 설명합니다.
Playwright, agent-browser, Lightpanda — a comparison of the positioning and key differences among three browser automation tools, with the same task implemented in each, to provide practical guidance for choosing the right one.
Playwright, agent-browser, Lightpanda — 세 브라우저 자동화 도구의 포지셔닝과 핵심 차이를 비교하고, 동일한 태스크를 각각 구현하여 실용적인 선택 기준을 제시합니다.
An architectural analysis of Paperclip, an open-source control plane that operates AI agents as a single virtual company under an org chart, budget, and governance structure.
AI 에이전트들을 조직도, 예산, 거버넌스 체계 아래에서 하나의 회사처럼 운영하는 오픈소스 컨트롤 플레인 Paperclip의 아키텍처를 분석합니다.
How to add build-time Mermaid diagram rendering with rehype-mermaid to a Next.js + Contentlayer2 blog, with conditional loading to keep CI build times lean.
Next.js + Contentlayer2 블로그에 rehype-mermaid를 활용한 빌드 타임 Mermaid 다이어그램 렌더링을 추가하는 방법. 조건부 로딩으로 CI 빌드 시간 최적화까지.
An analysis of Steve Yegge's Beads project. A deep dive into its Dolt-backed distributed graph issue tracker architecture, designed to give AI agents structured memory, dependency management, and the ability to execute long-horizon tasks.
Steve Yegge의 Beads 프로젝트 분석. Dolt 기반 분산 그래프 이슈 트래커로 AI 에이전트의 구조화된 메모리, 의존성 관리, 장기 태스크 수행을 지원하는 아키텍처를 상세하게 다룹니다.
A deep-dive into the architecture of agent-browser, Vercel Labs' Rust-based browser automation CLI for AI agents — covering CDP-based control, the accessibility-tree Ref system, Provider abstraction, and the security model.
Vercel Labs의 Rust 기반 AI 에이전트용 브라우저 자동화 CLI agent-browser의 아키텍처 분석. CDP 기반 제어, 접근성 트리 Ref 시스템, Provider 추상화, 보안 모델 등을 상세하게 다룹니다.
A comprehensive architecture analysis of Ollama, a local LLM execution platform implemented in Go. Covers the tech stack, scheduler, model management, llama.cpp integration, and the Runner system in detail.
Go 언어로 구현된 로컬 LLM 실행 플랫폼 Ollama의 전체 아키텍처 분석. 기술 스택, 스케줄러, 모델 관리, llama.cpp 통합, Runner 시스템 등을 상세하게 다룹니다.
A comprehensive architectural analysis of LangChain, the Python-based LLM application framework. Covers the full technology stack, core modules, the Runnable interface, the callback system, and partner package structure in detail.
Python 기반 LLM 애플리케이션 프레임워크 LangChain의 전체 아키텍처 분석. 기술 스택, 핵심 모듈, Runnable 인터페이스, 콜백 시스템, 파트너 패키지 구조 등을 상세하게 다룹니다.
A comprehensive architecture analysis of NanoClaw, a TypeScript-based Personal Claude Assistant. Covers the single-process orchestrator, container-isolated agents, channel skill system, and security design in detail.
TypeScript 기반 Personal Claude Assistant NanoClaw의 전체 아키텍처 분석. 단일 프로세스 오케스트레이터, 컨테이너 격리 에이전트, 채널 스킬 시스템, 보안 설계 등을 상세하게 다룹니다.
A deep-dive into the architecture of Lightpanda, a Zig-based ultra-lightweight headless browser. Covers the technology stack, DOM engine, V8 JavaScript integration, CDP protocol, and network layer behind its 9× lower memory usage and 11× faster speed compared to Chrome.
Zig 기반 초경량 헤드리스 브라우저 Lightpanda의 전체 아키텍처 분석. Chrome 대비 9배 낮은 메모리, 11배 빠른 속도의 비결인 기술 스택, DOM 엔진, JavaScript V8 통합, CDP 프로토콜, 네트워크 레이어를 상세히 다룹니다.
A comprehensive architecture analysis of OpenClaw, a TypeScript-based Personal AI Assistant framework. Covers the technology stack, core modules, message pipeline, and channel system in detail.
TypeScript 기반 Personal AI Assistant 프레임워크 OpenClaw의 전체 아키텍처 분석. 기술 스택, 핵심 모듈, 메시지 파이프라인, 채널 시스템 등을 상세하게 다룹니다.
TIL: Ruby and Rails Knowledges
TIL: Ruby and Rails knowledges
LeetCode 201 solutions #bit manipulation #number theory
leetcode-201 solutions #bit manipulation #number theory
Practical JavaScript iteration tricks for competitive programming — arrays, Set, Map, and for...of.
JS Small tricks for Problem solving 1 - Iterating
leetcode-1239 solutions
leetcode-1239 solutions
How I tracked down and fixed a bug caused by sharing the same object reference inside a Firebase Function.
Firebase function에서 같은 객체를 참조해 에러가 난 상황을 해결합니다.
Fixing the problem of not being able to access specific pages on the Open Government Portal
정보공개포털에서 특정 페이지를 조회할 수 없는 문제 해결합니다
How to resolve the postgresql duplicate key error
postgresql duplicate key 에러를 해결합니다
A walkthrough of issues encountered when migrating Gatsby v4 to v5 and MDX v1 to v2, and how to resolve them.
Gatsby v5 to v4와 mdx v1 to v2 어떻게 해결하는 지 알아봅니다.
Learn how to fix a large number of commits that have the wrong author on GitHub.
Gihtub에서 author가 잘못된 커밋이 많이 쌓였을 때 어떻게 해결하는 지 알아봅니다.
How to attach your own domain to an Imweb landing page
아임웹 랜딩페이지에 내 도메인을 붙이는 방법을 알아봅니다
github Jekyll blog to Gatsby
github Jekyll blog to Gatsby
react-hook-form
react-hook-form
react-hook-form
react-hook-form
react-hook-form
react-hook-form
react-hook-form
react-hook-form
220313 TIL
220313 TIL
react-hook-form
react-hook-form
Jekyll errors after upgrading to Ruby 3
Ruby 3 버전업 이후 Jekyll 에러
Angular 9 to 10
Angular 9 to 10
Sentiment Analysis on News Data Using Machine Learning
머신러닝을 활용한 뉴스 데이터 긍/부정 분석
200531 TIL
200531 TIL
200525 TIL
200525 TIL
A walkthrough of the problems encountered and the solutions found while integrating Kakao SDK into a React Native iOS project.
리엑트 네이티브 IOS 프로젝트에서 카카오 SDK를 적용하면서 겪은 문제와 해결 방법을 알아봅니다.
A step-by-step guide to creating a Django project and deploying it to Google App Engine.
Django 프로젝트를 생성하고 Google App Engine에 배포하는 방법을 알아봅니다.
React's diverse ecosystem of libraries is one of its greatest strengths. This post surveys the major library options for each area of functionality you need to implement.
리엑트는 다양한 라이브러리가 장점입니다. 구현해야 할 기능 별로 다양한 라이브러리를 알아봅니다.
An overview of the AngularJS 7 architecture I applied while working on two projects.
두 프로젝트를 진행하면서 활용했던 AngularJS 7의 아키텍쳐를 알아봅니다.
Using the RubyOnRails remote feature to make asynchronous requests to the server and handle the response.
RubyOnRails remote 기능을 사용해 비동기로 서버의 응답을 요청해 봅니다.
How to set a default option value when using AngularJS forms.
AngularJS의 폼을 사용할 때 option 기본값을 설정합니다.
Notes and thoughts from sessions I attended at NDC 2019.
NDC 2019에서 들은 강의와 생각을 정리합니다.
A summary of technical interview questions and answers from a KAKAO interview.
KAKAO 기술 면접 질문과 답변을 정리합니다.
A summary of the questions and answers from a NAVER technical interview.
NAVER 기술 면접 질문과 답변을 정리합니다.
Renewing the SCCC club homepage as a Jekyll blog.
SCCC 소모임 홈페이지를 지킬 블로그로 리뉴얼합니다.
Build a GitHub Pages blog with Jekyll and style it however you like
Jekyll로 깃헙 블로그를 생성하고 스타일을 멋대로 입혀봅니다
A walkthrough of the Samsung Codeground practice problem — Dart Game.
삼성 codeground 연습문제 다트게임을 풀어봅니다.
Building a login feature using Spring Boot Restful API and token-based authentication.
Spring Boot Restful API와 토큰을 활용해 로그인 기능을 만들어 봅니다.
Installing Spring Boot and experimenting with its basic features
Spring Boot를 설치하고 기본 기능을 사용해 봅니다
Installing Spring Boot and exploring its basic features
Spring Boot를 설치하고 기본 기능을 사용해 봅니다
A step-by-step guide to generating an SSH key, registering it with GitHub, and pushing your first commit
Github에 ssh-key를 추가하고 push하는 과정을 설명합니다
At a new company
새로운 회사에서
React Book Recommend
React Book Recommend
Django Template Numeric For Loop
Django Template Numeric For Loop
React Book Recommend
React Book Recommend
Jekyll default page
Jekyll default page