웅파
안녕하세요, 웅파입니다 — 26년째 PHP로 개발하고, 요즘은 AI와 같이 개발합니다
변종원(닉네임 웅파). CodeIgniter 한국 사용자 포럼을 만들고 책을 쓴 PHP 개발자이고, 지금은 AIvance라는 이름으로 SaaS 제품 11개를 Claude Code와…
웅파 17년: CodeIgniter 포럼 운영하며 배운 것
문을 닫고 나서야 쓰는 글 올해 봄, CodeIgniter 한국사용자포럼(CI Korea)의 게시판을 닫았습니다. 지금 cikorea.net에 들어가면 CI4·CI3 매뉴얼 링크와…
엑셀 간편장부를 웹 ERP로 옮기기 (AICassa)
한 줄로 시작했다 docs의 문서, 프로그램, 엑셀을 분석해줘 AICassa는 이 한 줄에서 시작했다. docs 폴더에는 국세청이 무료로 배포하는 간편장부 작성 프로그램(엑셀+VB…
도면을 AI에게 읽히려다 AI를 뺀 이야기
아파트 평면도 이미지 한 장을 올리면 벽·문·창문·방이 자동으로 잡혀 3D 레이아웃으로 서는 기능을 만들었습니다. 사용자가 할 일은 기준 벽 하나를 클릭하고 실제 길이를 입력하는…
혼자 쓰는 맛집 앱 Pagus 만들기
한 줄 요약 — 사용자가 나 하나뿐인 앱은 "다들 이렇게 하니까"를 버리고, 내 손에 맞는 결정을 하나씩 쌓아가는 일이었다. 파구스(Pagus)는 파주 인근 로컬 맛집 지도입니다.…
사진 동선 앱에서 남의 사진이 보였다 — 위치 데이터를 다룰 때 놓치기 쉬운 것
로그인도 하고 소유자 검증도 통과했는데, 화면에 뜬 사진은 다른 사람의 것일 수 있었습니다. 제가 운영하는 사진 동선 앱 Iter에서 실제로 있었던 버그입니다. 권한 검사 코드는…
코드 대신 그림을 그린 하루 — AI로 명함 한 장 만들기
개발 글만 쓰다 보니 블로그가 좀 딱딱해졌다. 오늘은 말랑한 이야기를 하나 해보려 한다. 어느 날 하루, 코드는 한 줄도 안 짜고 명함만 만든 날의 기록이다. 도구는 AI였다. 디…
새로고침하면 공간이 사라진다: 저장 버튼을 의심하기 전에 순서를 봤다
AICella는 방 도면을 그리고 가구를 배치하는 웹 도면 편집기다. 어느 날 이런 제보가 들어왔다. 공간 하나 추가하고 저장을 했는데 새로고침 후에 사라져버렸어. 도면 편집기에서…
멀티테넌트 API에서 company_id를 요청이 아니라 JWT에서 뽑는 이유 — AI 보안 리뷰로 재처리 API 뜯어보기
AI 면접 플랫폼 AILego에는 "답변 재처리" 기능이 있다. 면접 영상 청크 업로드나 후처리(STT, 채점)가 실패한 답변을 관리자가 버튼 한 번으로 다시 돌리는 기능이다. 응…
"회원탈퇴가 없네?"에서 시작해 1221개 테스트까지
쇼핑몰을 만들다 보면 어느 날 문득 깨닫는다. 가입은 되는데 탈퇴가 없다. 이번 글은 그 한 줄짜리 요구에서 시작해, 설계·구현·리뷰·병합을 거쳐 테스트 1221개가 전부 초록불이…
CI 고치다 PR이 15개 쌓인 날: #129부터 #144까지 실패 일지
러너를 옮기고 CI를 돌렸더니 1시간 넘게 돌다 죽었다. 한 줄 고치고 재실행, 또 실패, 또 한 줄. 하루가 지나고 보니 PR 번호가 #129에서 #144까지 올라가 있었다. 결…
AI가 잘못 건드린 메인 체크아웃을 복구한 이야기
AI에게 작업을 맡기다 보면 언젠가 이런 순간이 온다. 세션 중간에 AI가 메인 저장소를 잘못 건드린 것이다. 이번 글은 그 상황을 dev 브랜치의 깨끗한 상태로 되돌린 기록이다.…
"깃헙에 시크릿이 노출됐습니다" 메일을 받았다 — 진짜 위험은 따로 있었다
어느 날 메일함에 이런 제목의 메일이 와 있었다. GitHub 저장소에 시크릿이 노출되었습니다 가슴이 철렁했다. 그런데 발신 도메인을 보니 getgitguardian.com이었다.…
슈퍼관리자 로그인 에러를 고치다가, 계정 발급을 php spark 한 줄로 바꾼 이야기
슈퍼관리자로 로그인했더니 403이 떴다. 원인을 찾아 고치고 나니, 더 큰 문제가 보였다. 계정을 만드는 방법이 너무 수동이었다. 1. 증상: 로그인은 되는데 화면이 Forbidd…
큐 워커 운영 장애 연속극: systemd 워커가 안 도는 이유 체크리스트
AILego(비동시 AI 화상면접 SaaS)를 운영 서버에 처음 올리던 날, 웹은 멀쩡한데 큐 워커만 뜨지 않았다. 에러는 하나가 아니라 연속극이었다. 하나를 고치면 다음 에러가…
GitHub 개인 계정 Mac 러너에서 조직 Linux 러너로: 이전하면서 드러난 CI의 숨은 버그들
CI 러너를 옮기는 일은 "runs-on 한 줄만 바꾸면 끝"처럼 보입니다. 실제로 저도 그렇게 생각하고 시작했습니다. 그런데 여러 저장소를 한꺼번에 옮겨 보니, 러너 이전은 단순…
게시판 이미지 경로·캡션 저장·카테고리 누락 — 운영서버에서만 터진 버그 3연타
한 줄 요약 — 세 버그 모두 코드가 "틀린" 게 아니라, 로컬에는 없고 운영에만 있던 것(글 주소의 모양, 쌓여 있던 옛 글, 이관해 온 카테고리)을 코드가 가정하지 못해서 터졌…