2026년 10월 24일 토요일
미단재
공지 끄적임

안녕하세요, 웅파입니다 — 26년째 PHP로 개발하고, 요즘은 AI와 같이 개발합니다

변종원(닉네임 웅파). CodeIgniter 한국 사용자 포럼을 만들고 책을 쓴 PHP 개발자이고, 지금은 AIvance라는 이름으로 SaaS 제품 11개를 Claude Code와…

웅* · 2026-10-22 · 조회 37 · 공감 0 · 댓글 0
공지 끄적임

웅파 17년: CodeIgniter 포럼 운영하며 배운 것

문을 닫고 나서야 쓰는 글 올해 봄, CodeIgniter 한국사용자포럼(CI Korea)의 게시판을 닫았습니다. 지금 cikorea.net에 들어가면 CI4·CI3 매뉴얼 링크와…

웅* · 2026-10-20 · 조회 73 · 공감 1 · 댓글 1
끄적임

CI4 모델·서비스 계층 분리: 컨트롤러를 얇게 유지하는 규칙과 트랜잭션 위치

결론부터 말하면 규칙은 두 줄이다. 컨트롤러는 "검증 → 서비스 호출 → 응답"만 한다. 트랜잭션은 유스케이스를 대표하는 서비스 메서드 하나가 연다. 나머지는 이 두 줄을 지키기…

웅파 · 2026-10-20 · 조회 17 · 공감 0 · 댓글 0
끄적임

프론트 로그를 큐로 받는 수집 파이프라인: 즉시 202 → Redis → 워커 → 파일 + DB, 실패 시 dead-letter

한 줄 요약 — 로그 수집 API는 받은 것을 Redis에 넣고 바로 202를 돌려줍니다. 파일과 DB에 쓰는 일은 워커가 배치로 하고, 끝내 처리하지 못한 로그는 버리지 않고 d…

웅파 · 2026-10-20 · 조회 20 · 공감 0 · 댓글 0
AI

목록에 —가 그대로 찍혔다: strip_tags 다음에 빠진 한 단계

한 줄 요약 — 본문 HTML에서 태그만 벗기고 엔티티는 디코딩하지 않은 채 요약을 잘랐습니다. 그리고 뷰에서 esc()가 &를 한 번 더 이스케이프하면서 —가 글자 그…

웅파 · 2026-10-20 · 조회 18 · 공감 0 · 댓글 0
AI

페이지 번호가 41개 전부 나왔다: AI가 만든 페이저 뷰에서 빠진 한 줄

한 줄 요약 — 클로드코드가 만든 커스텀 페이저 템플릿에 $pager->setSurroundCount() 호출이 빠져 있었고, CI4 PagerRenderer는 이 값이 없으면 첫…

웅파 · 2026-10-20 · 조회 29 · 공감 0 · 댓글 0
끄적임

API 부하 분산 기본기: Redis 캐시 TTL 표, 큐 + 202 Accepted, N+1과 SELECT * 금지

한 줄 요약 — API가 느려지면 서버부터 늘리고 싶어집니다. 하지만 제 경험상 먼저 할 일은 요청 하나가 하는 일을 줄이는 것입니다. 같은 걸 두 번 계산하지 않고(캐시), 기다…

웅파 · 2026-10-20 · 조회 22 · 공감 0 · 댓글 0
끄적임

CodeIgniter 4 + 모던 PHP 8.4: readonly DTO, backed enum, match로 배열·define() 걷어내기

들어가며 결론부터 말하면, 상태·역할 같은 "닫힌 값의 집합"은 backed enum으로, 계층 사이를 오가는 데이터는 readonly DTO로, 값에 따른 분기는 match로 옮…

웅파 · 2026-10-20 · 조회 16 · 공감 0 · 댓글 0
끄적임

JWT 직접 만들지 마라: alg:none 우회, Access/Refresh 분리, Redis 회전·블랙리스트

JWT는 서명이 아니라 검증에서 무너진다 JWT를 base64_encode와 hash_hmac으로 직접 조립하지 마십시오. 토큰을 만드는 쪽은 단순하지만, 받은 토큰을 믿을지 판단…

웅파 · 2026-10-20 · 조회 21 · 공감 0 · 댓글 0
AI

AI 코드 리뷰를 규칙으로 고정하기

리뷰어가 없는 개발자의 리뷰 AI에게 "꼼꼼하게 리뷰해 줘"라고 부탁하는 것으로는 품질이 지켜지지 않습니다. 저는 규칙을 파일로 고정하고, 지키지 않으면 통과하지 못하게 만드는 쪽…

웅파 · 2026-10-20 · 조회 20 · 공감 0 · 댓글 0
AI

코드 그래프(graft)로 AI의 탐색 비용 줄이기: grep/read 대비 토큰 절감 체감

한 줄 요약 — AI 에이전트는 작업마다 저장소를 처음부터 다시 탐색합니다. 코드 그래프 도구 graft를 붙여 그 탐색을 "한 번 만든 지도 읽기"로 바꿨고, LLM 요약(--d…

웅파 · 2026-10-20 · 조회 21 · 공감 0 · 댓글 0
AI

스킬로 반복 작업 자동화: 이슈 착수부터 종료까지 한 명령으로 묶은 dev-issue 사례

이제 클로드코드에 "이슈 231 개발" 한 줄만 입력합니다. 그러면 브랜치 생성, 테스트 먼저 쓰기, 구현, PR, 머지, 이슈 종료까지 한 흐름으로 끝납니다. 이 글은 그 한 줄…

웅파 · 2026-10-20 · 조회 24 · 공감 0 · 댓글 0
AI

AI에게 기억을 심는 법: 메모리 파일로 삽질 교훈을 세션 간에 유지하기

어제 고친 버그를 오늘 또 만드는 AI 결론부터 말하면, AI는 똑똑하지만 기억력이 없다. 그래서 삽질에서 얻은 교훈은 사람이 아니라 파일에 남겨야 한다. 1년 전 Claude C…

웅파 · 2026-10-20 · 조회 20 · 공감 0 · 댓글 0
AI

git worktree로 AI 세션 여러 개를 동시에 돌리기: 브랜치 충돌과 stash 공유 사고를 피하는 운영 규칙

왜 세션을 여러 개 띄우게 됐나 혼자서 CodeIgniter 4 기반 솔루션 여러 개를 동시에 굴리다 보면, Claude Code 세션 하나로는 부족한 순간이 옵니다. 한 쪽에서는…

웅파 · 2026-10-20 · 조회 18 · 공감 0 · 댓글 0
AI

마라톤 세션이 토큰을 먹는 구조: 로그로 찾고, /compact와 서브에이전트로 줄이기

한 줄 요약 — 토큰을 많이 먹은 것은 어려운 작업이 아니라 오래 이어진 세션이었습니다. 세션 로그를 직접 집계해 원인을 찾았고, /compact·/clear와 서브에이전트 위임으…

웅파 · 2026-10-20 · 조회 17 · 공감 0 · 댓글 0
끄적임

CI4 브랜드 에러 페이지: 설계서 한 장에서 구현까지

한 줄 요약: 제품마다 제각각이던 CI4 기본 에러 화면을, 설계서 한 장으로 규칙을 먼저 정한 뒤 AIvance 브랜드 템플릿 한 벌로 바꿨습니다. 핵심은 예쁜 화면이 아니라 "…

웅파 · 2026-10-20 · 조회 22 · 공감 0 · 댓글 0
끄적임

SEO + GEO 동시 적용: 정적 페이지에서 AI 검색 노출까지 한 방법

들어가며 결론부터 말하면, 정적 페이지에서 SEO와 GEO를 따로 할 필요는 없습니다. 콘텐츠 데이터를 한 곳에 두고, 그 한 벌에서 화면(HTML)·구조화 데이터(JSON-LD)…

웅파 · 2026-10-20 · 조회 18 · 공감 0 · 댓글 0