개발 워크플로우 실무
멱등한 시드 스크립트 — 두 번 돌려도 사본이 생기지 않게
시드는 한 번만 도는 스크립트가 아닙니다. 조회를 잘못 쓰면 검사는 통과하고 삽입은 실행되어, 워드프레스가 조용히 -2 를 붙인 사본을 만듭니다.
Technote
워드프레스를 코드로 다루는 개발자를 위한 가이드. 훅 · WP-CLI · Git 워크플로우 · 배포 자동화를 다룹니다.
글 51편· 개발자
개발 워크플로우 실무
시드는 한 번만 도는 스크립트가 아닙니다. 조회를 잘못 쓰면 검사는 통과하고 삽입은 실행되어, 워드프레스가 조용히 -2 를 붙인 사본을 만듭니다.
개발 워크플로우 실무
같은 필터인데 우선순위 1에서 보는 값과 12에서 보는 값이 다릅니다. 어느 쪽에 걸지 고르지 않으면 "정규식이 아무것도 못 잡는다" 가 반복됩니다.
성능 최적화 실무
저장은 세 줄이면 됩니다. 어려운 것은 언제 지울 것인가이고, 지워야 할 사건은 최소 두 가지입니다. 하나만 놓쳐도 증상이 갈립니다.
개발 워크플로우 실무
스테이징은 "비슷한 환경" 이 아니라 "중요한 지점에서 같은 환경" 이어야 합니다. 어느 차이가 중요한지는 목록으로 정할 수 있습니다.
보안 실무
이스케이프는 저장할 때가 아니라 출력할 때 합니다. 같은 값이 본문 · 속성 · 주소로 나갈 수 있고, 자리마다 안전의 정의가 다르기 때문입니다.
개발 워크플로우 실무
워드프레스 저장소에서 커밋해야 할 것과 절대 커밋하면 안 되는 것의 경계는 명확합니다. wp-config.php 한 파일이 저장소에 들어가는 순간 DB 비밀번호와 인증 솔트가 통째로 유출됩니다.
성능 최적화 실무
워드프레스가 느린 원인의 상당수는 페이지를 만들 때마다 같은 데이터베이스 쿼리를 반복하는 데 있습니다. Redis 오브젝트 캐시는 이 반복 쿼리를 메모리에서 꺼내 쓰게 만들어, 특히 관리자…
성능 최적화 심화
적중률 숫자 하나만 보고 캐시가 잘 돌고 있다고 판단하면, 정작 느린 화면은 그대로 남습니다. 어떤 키가 몇 번 조회되는지까지 내려가 봐야 병목이 보입니다.
개발 워크플로우 실무
워드프레스 테마는 빌드 스텝 없이 배포되는 것이 표준입니다. 그래서 일반적인 애플리케이션 코드와는 반대되는 결론이 나오고, 그 대가도 함께 옵니다.
보안 실무
세 가지 방식은 편의의 차이가 아니라 위협 모델의 차이입니다. 브라우저에서 부르는가, 서버가 부르는가, 제3자가 발급하는가에 따라 답이 정해집니다.
개발 워크플로우 실무
완전히 로드된 워드프레스 안에서 내 PHP 파일을 실행하는 방법입니다. 다만 --로 시작하는 플래그는 스크립트에 도착하지 않습니다 — WP-CLI 가 먼저 먹기 때문입니다.
성능 최적화 실무
반복되는 동일 조회는 사라집니다. 느린 쿼리 한 건은 그대로입니다. 이 구분을 모르면 캐시를 붙여 놓고 왜 안 빨라지는지 묻게 됩니다.