CLAUDE.md 규칙으로 보는 PHP 백엔드 기본기 연재중
AI에게 매번 같은 설명을 하다가, 전역 CLAUDE.md에 규칙으로 굳힌 PHP 백엔드 기본기를 하나씩 풀어 쓴 시리즈입니다. JWT, 모던 PHP 8.4, 계층 분리, API 부하 분산, OpenAPI, 로그 파이프라인, 시간대, 에러 규약, 브랜치 전략까지, 규칙 한 줄 뒤에 있는 이유와 실제로 겪은 사고를 담았습니다.
총 10편
- JWT 직접 만들지 마라: alg:none 우회, Access/Refresh 분리, Redis 회전·블랙리스트
- CodeIgniter 4 + 모던 PHP 8.4: readonly DTO, backed enum, match로 배열·define() 걷어내기
- API 부하 분산 기본기: Redis 캐시 TTL 표, 큐 + 202 Accepted, N+1과 SELECT * 금지
- CI4 모델·서비스 계층 분리: 컨트롤러를 얇게 유지하는 규칙과 트랜잭션 위치
- OpenAPI를 PHP 어트리뷰트로: $ref 재사용 컴포넌트와 공통 ErrorResponse
- DB는 UTC, 화면은 KST: TIMESTAMP + 세션 타임존으로 변환 코드 없애기
- 프론트 로그를 큐로 받는 수집 파이프라인: 즉시 202 → Redis → 워커 → 파일 + DB, 실패 시 dead-letter
- MSA 신규 시작 vs 기존 모놀리스 유지: 억지로 쪼개지 않는 판단 기준
- MSA 공통 에러 규약, RFC 9457로 정하기
- 스쿼시 머지 vs 머지 커밋: 1인 개발자의 PR 전략