Docker bind mount에서 `chown`과 UID 변경 후에도 `Permission denied`가 계속 발생했다. Synology ACL과 UID/GID의 관계를 추적해 Docker 전용 그룹에 권한을 주고 컨테이너 GID를 맞췄다. `Everyone`에 credential을 공개하지 않고도 실제 NAS에서 컨테이너의 정상 동작까지 확인했다.
2026-09-05
6
Docker bind mount에서 `chown`과 UID 변경 후에도 `Permission denied`가 계속 발생했다. Synology ACL과 UID/GID의 관계를 추적해 Docker 전용 그룹에 권한을 주고 컨테이너 GID를 맞췄다. `Everyone`에 credential을 공개하지 않고도 실제 NAS에서 컨테이너의 정상 동작까지 확인했다.
2026-09-05
6
AI Agent가 직접 결과물을 심사하는 Google Developer Group 해커톤에 참여했다. 공개된 루브릭을 역설계해 세 개의 모의 심사 Agent를 만들고, 기획부터 구현까지 반복해서 자가 심사했다. 2시간 30분의 해커톤 끝에 25팀 중 1등을 기록했다.
2026-08-30
21
여러 Claude Code 세션이 하나의 Obsidian vault를 수정하면서 구조적 섹션이 중복되는 문제가 발생했다. 안전한 쓰기 스크립트와 MCP Guard, 락, 실제 데이터 검증, 야간 자동 검증 파이프라인을 추가해 쓰기 경로를 통제했다. 여러 AI 에이전트가 공유 데이터를 수정할 때 필요한 Harness Engineering 과정을 정리했다.
2026-08-27
22
/obsidian-save와 /blog-post를 매번 수동으로 부르지 않도록, gh pr create 성공을 트리거로 삼아 /obsidian-save는 강제 실행하고 /blog-post는 말로만 제안하는 Claude Code 전역 훅을 만들었다. 전역 설정을 건드리는 자동화라 fable5 모델로 설계·구현 계획을 여러 번 독립적으로 검증받았고, 그 과정에서 완전히 독립된 두 리뷰가 정확히 같은 실행 가능 버그를 찾아내기도 했다. NDJSON 기반 마커 파일, --resume 대응, 안전한 전역 설정 배포까지의 과정을 기록한다.
2026-08-25
30
Claude Code와 Superpowers로 세 작업을 병렬 진행하면서 Git worktree의 동작 원리와 실행 환경 분리, 충돌, 정리 방법을 학습한 기록
2026-08-06
55
트래픽이 몰리던 순간, 프론트가 먼저 결제 요청을 끊어버렸다. 서버는 이미 결제를 끝냈는데 화면엔 실패로 떴다. 타임아웃을 없애봤고, 다시 설계해봤다. 그 과정과 POST 요청 중복을 막기 위해 실제로 적용한 방어책들을 정리한다.
2026-08-01
52
홈서버 포트폴리오 사이트에 로그인 없이 쓸 수 있는 AI 챗봇을 처음 도입한 과정을 정리한다. 이미 구축해둔 SUH-AIder 연동 인프라를 처음 소비하는 기능이자, 기능별로 독립된 프롬프트·모델 설정을 갖춘 구조로 설계했다. 키워드 매칭 기반의 간단한 검색으로 시작했고, 리뷰 과정에서 매칭 방향 버그·클라이언트-서버 계약 불일치·배포 설정 문제를 차례로 잡아냈다. 다음 편에서는 임베딩 기반 시맨틱 검색 도입을 다룰 예정이다.
2026-08-01
70
3명이 팀을 이뤄 24시간 동안 로컬 LLM 기반 개인정보 마스킹 시스템을 만들었던 코드게이트 해커톤 회고. 수상에는 실패했지만, 제한된 자원 속에서 몰입했던 시간과 실전 벤치마크 경험이 남긴 것들을 되짚어본다.
2026-07-27
52
발달장애 아동 지원 서비스 ELUM에서, 외부 AI로 보내기 전 로컬 LLM으로 개인정보를 탐지·마스킹하는 DLP 계층을 검증했다. 모델 4개를 비교하고 JSON 출력 구조를 세 번 갈아엎은 끝에, Schema 검증을 100% 통과해도 실제로는 개인정보가 새거나 공격자가 결과를 조작할 수 있다는 사실을 발견했다. 100개 케이스 자동 벤치마크로 탐지 정확도 96%를 확인하는 한편, 탐지와 마스킹을 분리해 모델이 아닌 애플리케이션이 최종 마스킹을 수행하는 아키텍처로 결론 내린 과정을 정리했다.
2026-07-22
78
발달장애 아동의 일과를 외부 AI로 변환하는 과정에서, 자연어 속 개인정보가 외부로 유출되지 않도록 로컬 LLM을 DLP 게이트웨이로 설계한 과정을 정리했다. 정규식으로는 잡기 어려운 비정형 개인정보를 문맥 기반으로 탐지·마스킹한 뒤에만 외부 API로 넘기는 구조와, 그 과정에서 마주한 가용성-보안 트레이드오프를 다룬다.
2026-07-21
64
어대GO의 Spring Boot와 FastAPI 서버를 독립 배포하면서 Docker 내부망으로 연결한 과정과, 배포 중 발생한 HTTP/2 통신 문제를 정리했다.
2026-07-10
73
웨이티플러스에 스크린 리더 지원과 iOS 텍스트 확대 기능을 적용한 과정을 정리했다. 기존 React 컴포넌트에 ARIA를 보강하고 Capacitor 네이티브 플러그인으로 Dynamic Type을 연결하면서 겪은 시행착오, Claude Code Agent를 활용한 구현과 코드 리뷰, 실기기 테스트에서 확인한 한계까지 다룬다.
2026-07-10
64
AI 생성 이미지의 출처를 증명하기 위해 TrustMark 기반 비가시적 워터마크 삽입·추출 서비스를 FastAPI로 구축했다. 이미지 전체 픽셀에 고정 서명을 심어 서비스 산출물임을 증명하며, 내부망 전용 배포 환경에 맞춰 모델 사전 다운로드, 이벤트 루프 블로킹 방지, 손상 이미지 오류 분류 등 실제 운영 제약을 하나씩 해결한 과정을 정리했다.
2026-07-10
58