Profile img

Jaeyeol Lee

@kodingwarrior@hackers.pub · 695 following · 504 followers

Neovim Super villain. 풀스택 엔지니어 내지는 프로덕트 엔지니어라고 스스로를 소개하지만 사실상 잡부를 담당하는 사람. CLI 도구를 만드는 것에 관심이 많습니다.

Hackers' Pub에서는 자발적으로 바이럴을 담당하고 있는 사람. Hackers' Pub의 무궁무진한 발전 가능성을 믿습니다.

그 외에도 개발자 커뮤니티 생태계에 다양한 시도들을 합니다. 지금은 https://vim.kr / https://fedidev.kr 디스코드 운영 중

Blog
kodingwarrior.github.io
mastodon
@kodingwarrior@silicon.moe
Github
@malkoG
0
0
3

Jaeyeol Lee shared the below article:

`X-Frame-Options` 의 악몽에서 깨어나세요, 프록시 서버 개발기

소피아 @async3619@hackers.pub

`X-Frame-Options` 헤더로 인해 발생하는 웹 사이트 임베딩 제한을 프록시 서버 개발을 통해 해결하는 과정을 다룹니다. 저자는 실시간 영상 스트리밍 방식의 지연 시간 문제를 극복하기 위해 `iframe`을 활용한 직접 임베딩 방식을 선택했으며, 이 과정에서 마주한 다양한 기술적 난제를 해결해 나갑니다. 단순히 응답 헤더를 제거하는 수준을 넘어, 상대 경로 문제를 해결하기 위한 URL 구조 재설계와 React 및 Vue와 같은 단일 페이지 애플리케이션(SPA)의 라우팅 시스템을 속이기 위한 고난도의 JavaScript 후킹 기법을 소개합니다. 특히 Babel을 이용해 소스코드를 추상 구문 트리(AST)로 분석하고 실행 시점에 `window.location` 접근을 가로채는 방식은 브라우저 보안 제약을 창의적으로 우회하는 통찰을 제공합니다. 이 글은 외부 웹 서비스를 자사 서비스에 매끄럽게 통합하려는 개발자들에게 프록시 서버 설계와 JavaScript 내부 동작 원리에 대한 깊이 있는 경험을 공유하며 기술적 돌파구를 제시합니다.

Read more →
4

2026년 병오년 새해를 맞아 식탁보 1.16.0 버전을 출시했습니다. 이번 버전에서는 폴더 마운트 기능, 그리고 백그라운드 비동기 다운로드를 구현하여 이전보다 최대 30~40% 이상 빨라진 환경 구축 속도를 달성했습니다.

코딩 AI 어시스턴트의 도움을 받아 계속해서 빠른 출시와 적극적인 기능 반영을 이어 나가도록 하겠습니다. 많은 공유와 후원을 계속 부탁드리겠습니다!

https://github.com/yourtablecloth/TableCloth/releases/tag/v1.16.0

5

2025 Q4 Review

Jaeyeol Lee @kodingwarrior@hackers.pub

이번 분기 회고는 예상치 못한 기회와 성장을 통해 삶의 궤적이 변화한 과정을 생생하게 담고 있습니다. 저자는 오픈소스 소프트웨어 아카데미(OSSCA) 활동과 웹 브라우저를 밑바닥부터 구현하는 스터디, 그리고 VIMRC 2025 행사 주최 등 왕성한 대외 활동을 이어오며 기술적 내실을 다졌습니다. 특히 구직 과정에서 미국 스타트업의 실무 테스트(Work trial)를 거쳐 정식 멤버로 합류하게 된 경험은 이 글의 핵심적인 전환점입니다. Python과 FastAPI, React 기술 스택을 활용하며 AI 도구를 적극적으로 도입한 업무 환경에서 얻은 인사이트와 전 직장 대비 대폭 향상된 처우 등 구체적인 성과를 공유합니다. 나아가 향후 해외 컨퍼런스 참여와 Python 생태계 기여, 그리고 비즈니스 가치를 창출하는 엔지니어로의 도약이라는 원대한 목표를 제시합니다. 이 글은 꾸준한 기술적 탐구와 커뮤니티 활동이 어떻게 실제적인 커리어 성장과 글로벌 기회로 연결될 수 있는지를 보여주는 귀중한 기록입니다.

Read more →
14
3

최근 보안의 화두는 제로트러스트지만, 정작 가장 민감한 공동인증서 파일은 여전히 NPKI라는 고전적인 디렉터리 구조 속에 노출되어 있습니다.

OS 수준의 암호화 기술인 BitLocker나 VBS의 이점을 전혀 활용하지 못하는 현 상황을 개선해보고자, Windows 인증서 저장소를 백엔드로 활용하는 방식을 고민 중입니다. macOS의 Keychain 시스템처럼 인증서를 시스템 보안 영역 내부로 끌어들임으로써, 파일 탈취 위험을 획기적으로 낮추는 것이 목표입니다.

인프라 자체를 바꿀 순 없어도, 엔드포인트 단에서 '방어의 밀도'를 높이는 유의미한 시도가 될 것 같습니다. :-D

https://forum.dotnetdev.kr/t/npki/14187

4

Claude Code Subagent를 가만 살펴봤는데, 내가 일하는 방식 그리고 다른 사람에게 위임할 수 있는 방식을 잘 정의하면 그럭저럭 쓸만한 것 같음. 생각을 글로 잘 정리하는 버릇을 들여야겠다.

Claude Code Subagent를 가만 살펴봤는데, 내가 일하는 방식 그리고 다른 사람에게 위임할 수 있는 방식을 잘 정의하면 그럭저럭 쓸만한 것 같음. 생각을 글로 잘 정리하는 버릇을 들여야겠다.

3
2

Jaeyeol Lee shared the below article:

Agent Skill도 Tool Use로 시작합니다.

자손킴 @jasonkim@hackers.pub

Anthropic(앤스로픽)이 공개한 Agent Skill은 에이전트가 특정 업무를 수행할 때 필요한 절차적 지식과 맥락을 효율적으로 전달하기 위한 오픈 스탠다드입니다. 이 기능은 작업 지시문과 스크립트, 리소스를 재사용 가능한 단위로 패키징하여 대규모 언어 모델이 겪는 컨텍스트 낭비와 일관성 저하 문제를 해결합니다. 핵심 원리인 점진적 공개(progressive disclosure)를 통해 초기에는 메타데이터만 로드하고, 필요할 때만 상세한 SKILL.md 파일과 리소스를 동적으로 호출하여 효율적인 컨텍스트 관리를 구현합니다. 실제 dev-browser Skill의 동작 과정을 보면, 에이전트가 지시문을 해석하여 실시간으로 코드를 생성하고 도구를 체이닝하는 구체적인 메커니즘을 확인할 수 있습니다. 또한 컨텍스트 분리를 목적으로 하는 서브에이전트(subagent)나 외부 시스템 연동을 위한 모델 컨텍스트 프로토콜(Model Context Protocol, MCP)과의 비교를 통해 각 기술의 고유한 역할을 명확히 구분합니다. 단순히 도구를 제공하는 수준을 넘어 도구의 올바른 사용법을 가르치는 Agent Skill은 에이전트의 실행 능력을 최적화하고 지능적인 업무 자동화를 완성하는 핵심적인 메타 도구입니다.

Read more →
7
3

Jaeyeol Lee shared the below article:

MCP도 Tool Use를 사용합니다.

자손킴 @jasonkim@hackers.pub

MCP(Model Context Protocol)가 도구 사용(Tool Use) 메커니즘과 어떻게 결합하여 에이전트의 역량을 확장하는지 내장 도구인 서브에이전트(Subagent) 예시와 함께 심층적으로 다룹니다. LLM 입장에서는 내장 도구와 MCP 도구가 동일한 인터페이스로 인식되지만, 실제로는 실행 주체와 프로세스 경계에 따른 통신 방식에서 차이가 발생함을 설명합니다. 특히 다양한 외부 시스템을 유연하게 통합하기 위해 도입된 네이밍 규칙과 실행 흐름을 분석하며, 도구의 제공자와 사용자를 분리하는 MCP 아키텍처의 구조적 이점을 강조합니다. 또한 단순한 기능 호출을 넘어 데이터베이스 스키마와 같은 정적 정보를 제공하는 리소스(Resources), 재사용 가능한 프롬프트(Prompts), 그리고 서버가 역으로 LLM의 판단을 요청하는 샘플링(Sampling) 등 도구 사용 이상의 고급 기능들을 소개합니다. 이 글은 MCP가 기술적으로 어떻게 도구 사용을 확장하는지 명확히 규명하며, 클라우드 및 로컬 환경의 다양한 도구를 연결하여 강력한 AI 생태계를 구축하려는 이들에게 중요한 이정표를 제시합니다.

Read more →
4

Jaeyeol Lee shared the below article:

Subagent는 Tool Use입니다.

자손킴 @jasonkim@hackers.pub

Subagent는 Tool Use 메커니즘을 확장하여 특정 작업에 최적화된 독립적인 AI 에이전트를 운용하는 고도화된 방식입니다. 메인 에이전트가 'Task' 도구를 호출하면 전용 시스템 프롬프트와 제한된 도구 세트를 가진 새로운 메시지 루프가 생성되며, 각 Subagent는 자신의 독립적인 컨텍스트 내에서 전문화된 작업을 수행한 뒤 그 결과를 메인 에이전트에게 전달합니다. YAML 설정과 마크다운 본문으로 정의되는 Subagent는 탐색이나 설계 등 목적에 따라 가벼운 모델인 Haiku나 강력한 성능의 Opus를 취사선택할 수 있어 작업의 효율성을 극대화하며, 메인 대화의 컨텍스트가 불필요한 정보로 오염되는 것을 방지합니다. 비록 메인 대화 히스토리를 직접 공유하지는 않지만 CLAUDE.md와 같은 프로젝트 컨벤션을 자동으로 참조하여 일관성을 유지하며 복잡한 워크플로우를 자율적으로 해결합니다. 이러한 구조는 단순한 API 호출을 넘어 LLM이 또 다른 전문 LLM을 도구처럼 활용함으로써 AI 에이전트의 문제 해결 능력을 다각화하고 시스템의 확장성을 한 단계 높여주는 핵심적인 설계 패턴입니다.

Read more →
3
0
0
1

@kodingwarriorJaeyeol Lee 말씀해주신 것 듣고 Hugo로 한 번 해보고 있습니다. 아직 Gemini에 검색해보기만 했는데, 검색이나 태그를 이용한 필터링 같은 것도 모두 static site generator로 할 수 있는 것 같군요?! 저는 이런 걸 하려면 무조건 서버가 있어야 하는 줄로만 알았습니다..

1
1
6

LLM 도움이면 못할 것도 없을 듯 하여 블로그를 직접 만들고 싶은데, 스프링부트 + 그냥JS로 만들어도 괜찮을지 모르겠습니다. (사실 아는 게 그것 뿐입니다..) 혹시 조금 더 편리하고 좋은 스택이 있을까요?

1

LLM 도움이면 못할 것도 없을 듯 하여 블로그를 직접 만들고 싶은데, 스프링부트 + 그냥JS로 만들어도 괜찮을지 모르겠습니다. (사실 아는 게 그것 뿐입니다..) 혹시 조금 더 편리하고 좋은 스택이 있을까요?

0

Jaeyeol Lee shared the below article:

도커로 구축한 랩에서 혼자 실습하며 배우는 네트워크 프로토콜 입문 #5-1 TLS

자손킴 @jasonkim@hackers.pub

OSI 7계층 모델의 상위 계층이 현대 TCP/IP 모델에서 애플리케이션 계층으로 통합된 배경과 함께 네트워크 보안의 핵심인 TLS 프로토콜의 작동 원리를 깊이 있게 다룹니다. 도청, 변조, 스푸핑과 같은 보안 위협을 방어하기 위해 TLS가 사용하는 암호화, 해싱, 디지털 인증서 기술을 상세히 살펴보고, 특히 최신 표준인 TLS 1.3에서 성능과 보안성을 극대화한 X25519 키 교환과 Ed25519 디지털 서명 알고리즘의 메커니즘을 분석합니다. 대칭키 암호화의 키 전달 문제를 해결하는 과정부터 전방 비밀성(Forward Secrecy)의 중요성, 그리고 메시지 인증 코드(MAC)를 통한 데이터 무결성 보장까지 현대 암호학 기술이 어떻게 조화를 이루어 안전한 통신 채널을 구축하는지 명확하게 설명합니다. 이 글은 복잡한 보안 프로토콜의 내부 구조를 이해하고 더 안전한 애플리케이션을 설계하려는 개발자에게 실질적인 기술적 통찰을 제공합니다.

Read more →
6
0

백엔드 개발자 입장에서는 Agent Skills 를 숙지해둘 필요가 있을 것 같다.

프로덕션에서 쓰면 당연히 안되겠지만, 로컬개발환경에서 데이터를 생성할때 데이터를 생성하는 과정 자체를 skills.md 에다가 xxx 목적으로는 이런 스크립트를 실행하면 된다같은 메뉴얼 비슷한 프롬프트를 먹여주면 자기가 알아서 서커스를 해준다.

python 기반의 어플리케이션이라면 아래와 같은 커맨드를 AI 에이전트가 직접 말아서 실행해준다.

$ poetry run python -c "
import json
from todo_app.models  import Todo

# Make incomplete todos as complete
todos = Todo.filter(is_completed=False)
todos.update(is_completed=True)

Ruby, Perl, Node 등등 어떤 런타임에서 돌아가도 상관없다. 몇몇 웹 프레임워크는 콘솔 기능이 내장되어 있어서 개발자 생산성에 유의미한 영향을 주기는 했지만, LLM 에이전트가 그 격차를 또 줄여주고 있는 것 같다.

어떤 데이터를 세팅하기 위해서 손으로 타이핑할 필요도 없고 LLM 에이전트가 그냥 가이드라인대로 자기가 스크립트를 짜고 직접 실행하게 하면 된다...

Docker compose로 띄우고 있다고? 그러면 이것도 LLM 에이전트가 이런식으로 서커스를 해준다.

cat script.rb | docker compose exec -T web rails runner -
6

Jaeyeol Lee shared the below article:

Hackers' Pub 신고(flag) 기능 기획서

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

Hackers' Pub 커뮤니티의 신고 시스템은 단순한 제재를 넘어 구성원의 성찰과 성장을 돕는 분산형 네트워크 환경을 지향합니다. ActivityPub 프로토콜을 기반으로 설계된 이 시스템은 Mastodon 등 외부 플랫폼과의 연합(federation) 환경에서도 유연하게 작동하며, 신고자의 익명성 보호와 피신고자의 알 권리 사이의 균형을 유지합니다. 기술적으로는 거대언어모델(LLM)을 활용하여 자유 형식의 신고 사유를 실시간 행동 강령(code of conduct) 조항과 동적으로 매칭하고, 신고 시점의 콘텐츠 스냅샷과 행동 강령 버전을 기록하여 검토의 객관성을 확보합니다. 관리자는 경고, 콘텐츠 검열, 일시 및 영구 정지로 이어지는 단계적 제재 체계를 통해 투명하게 사건을 처리하며, 피신고자는 이의 제기(appeal) 프로세스를 통해 공정한 재심 기회를 보장받습니다. 이러한 체계적인 설계는 자율적인 커뮤니티 관리의 복잡성을 해결하고, 건강하고 지속 가능한 연합우주(fediverse) 생태계를 구축하는 데 필요한 실무적인 통찰을 제공합니다.

Read more →
7

Calling all developers for help: I'm currently trying to implement a () feature for Hackers' Pub, an -enabled community for software engineers. Is there a formal specification for how cross-instance reporting should work in ActivityPub? Or, is there any well-documented material that explains how the major implementations handle it?

2
0
0

Jaeyeol Lee shared the below article:

Claude Code의 거의 모든 것은 Tool Use 입니다. MCP도 subagent도 Skills 역시요.

자손킴 @jasonkim@hackers.pub

Claude가 외부 도구를 호출하여 텍스트 생성 이상의 작업을 수행하는 도구 사용(Tool Use) 메커니즘을 상세히 다룹니다. 개발자가 도구의 이름, 설명, 입력 스키마(input schema)를 정의하면 Claude는 사용자 요청을 분석해 적절한 도구를 선택하고 필요한 파라미터와 함께 실행을 요청합니다. 이 과정에서 클라이언트인 에이전트는 모델의 응답을 파싱하여 실제 시스템 명령어나 함수를 실행한 뒤, 그 결과를 다시 모델에 전달하는 가교 역할을 수행합니다. 본문에서는 NestJS 프로젝트 분석 예시를 통해 Bash나 Glob 같은 도구가 어떻게 병렬로 요청되고 결과가 다시 피드백되는지 구체적인 API 대화 흐름을 보여줍니다. 특히 중단 사유(stop_reason)가 도구 사용으로 설정되는 과정과 실행 결과를 모델에 다시 알리는 구조를 이해하면 Claude Code나 MCP(Model Context Protocol) 기반의 확장 기능이 동작하는 핵심 원리를 명확히 파악할 수 있습니다. 이 글은 Claude를 단순한 대화형 AI를 넘어 실제 환경과 상호작용하는 능동적인 에이전트로 활용하려는 개발자에게 깊이 있는 기술적 통찰을 제공합니다.

Read more →
8

Jaeyeol Lee shared the below article:

Claude API의 Request Body 분석

자손킴 @jasonkim@hackers.pub

Claude API를 효과적으로 활용하기 위해 반드시 이해해야 할 요청 본문(Request Body)의 네 가지 핵심 구성 요소를 살펴봅니다. 우선 시스템 메시지(System Messages)는 모델의 페르소나와 제약 사항을 정의하는 최상위 설정으로, 응답의 톤과 매너를 결정짓는 중추적인 역할을 수행합니다. 메시지(Messages) 배열은 사용자와 어시스턴트(assistant) 간의 대화 흐름을 관리하며, 특히 어시스턴트의 답변을 미리 작성하는 프리필(Prefill) 기법이나 도구 사용(tool_use) 및 결과(tool_result)를 주고받는 상호작용의 핵심이 됩니다. 여기에 제이슨 스키마(JSON Schema)를 기반으로 도구(Tools)를 정의하면 모델이 복잡한 작업을 수행하기 위해 필요한 기능을 스스로 판단하고 호출할 수 있게 됩니다. 마지막으로 모델 선택과 토큰 제한, 확장 사고(Extended Thinking) 예산 등을 조절하는 모델 및 구성(Model & Config) 옵션을 통해 API 동작의 세부 사항을 정교하게 제어할 수 있습니다. 이 네 가지 요소의 구조와 유기적인 연결 방식을 이해하면 Claude의 능력을 극대화하여 더욱 강력한 인공지능 애플리케이션을 설계할 수 있는 핵심적인 통찰을 얻게 될 것입니다.

Read more →
3

LLMs are good at coding. They can code faster than human. But they don't have ability to maintain their shit. Don't worry developers, there will be tons of shit codes we need to clean up in future. Surely we won't loose our job. Actually there will be more works than ever.

2
4
1
2
1
1
0
1
1

식탁보 1.14.0에서 오랫만에 업데이트를 진행하면서, 생성형 AI의 도움을 받아 적극적인 현대화를 달성하고 있습니다.

  • InnoSetup 대신 Velopack을 사용한 간소화된 사용자 인스톨러 경험 구현

  • MSBUILD 프로젝트 대신 .NET SDK로 .NET Framework 프로젝트 마이그레이션 (추후 완전히 .NET 10과 Avalonia로도 전환할 수 있게 함)

  • TableCloth 프로젝트의 경우 .NET 8/9에서 .NET 10으로 판올림

  • Windows 11 ARM64 GitHub Action Runner가 공식화됨에 따라 ARM64 빌드 추가 예정

내부 정비가 끝나는 대로 식탁보 1.15.0 버전을 출시하도록 하겠습니다. 또한 생성형 AI 코드 어시스턴트의 도움을 적극 받아 1인 개발에서 오는 한계를 극복해보려 합니다.

최신 소스 커밋 목록은 https://github.com/yourtablecloth/TableCloth/commits/main/ 에서 확인하실 수 있습니다.

3

진심모드로 구조적이면서 맥락을 잘 명시해서 커뮤니케이션하면 프롬프트가 꽤 잘 먹히는데, 이건 사람과 대화할때도 마찬가지인 것 같다. 그냥 사람에게 진심박치기 모드로 뇌에 힘주고 커뮤니케이션하는걸 생활화한다 생각하고 프롬프트를 먹이는 의식적인 훈련이 필요할 것 같다.

2

Hackers Pub 송년회 라이트닝토크에서 발표 안하려고 했는데? 뭔가 소소하게 공유할꺼리가 생겼다. 그리고.......... Hackers Pub에서 LLM 활용하는 방법 굉장히 과한 밀도로 공유하게 될 것 같다.... 당장 내가 일하는 회사도 LLM을 엄청 적극적으로 활용하고 있기도 하고, 그걸로 사업하는 회사여서 더욱 가속도가 붙는 것도 있는 듯.

5

https://github.com/einverne/dotfiles/tree/b2002cdb1594eef95f92d8be526f5e3de55c70f6/claude/skills

.claude/skills 로 관리할 수 있다길래, 어? 설마? 하고 봤는데 진짜로 dotfiles로 관리하는 사람이 좀 보이는 것 같다. Claude Code에서도 갖다쓸 수 있는거보면 분명 가능성은 많이 보인다

예상은 했지만, 남들이 다 먹기 전에 선빵을 치고 이득봐야겠다....

https://github.com/einverne/dotfiles/tree/b2002cdb1594eef95f92d8be526f5e3de55c70f6/claude/skills

.claude/skills 로 관리할 수 있다길래, 어? 설마? 하고 봤는데 진짜로 dotfiles로 관리하는 사람이 좀 보이는 것 같다. Claude Code에서도 갖다쓸 수 있는거보면 분명 가능성은 많이 보인다

예상은 했지만, 남들이 다 먹기 전에 선빵을 치고 이득봐야겠다....

3

https://github.com/ComposioHQ/awesome-claude-skills/tree/master/skill-creator

Claude Skill 기능을 적극적으로 활용해보려고 하는데, skill을 만들 수 있도록 돕는 skill-creator라는게 있다. 이걸 좀 더 참고해서 어떻게 나한테 쓸만한걸 만들 수 있는지 한번 살펴봐야겠다.

1