성능 최적화 실무
N+1 쿼리 — 루프 안의 get_post_meta 와 캐시 프라이밍
WP_Query 는 자기 결과에 대해서만 캐시를 채웁니다. 손으로 만든 ID 목록에는 그 혜택이 따라오지 않고, 그 차이가 쿼리 수를 결정합니다.
Technote
워드프레스를 코드로 다루는 개발자를 위한 가이드. 훅 · WP-CLI · Git 워크플로우 · 배포 자동화를 다룹니다.
글 34편· 개발자
성능 최적화 실무
WP_Query 는 자기 결과에 대해서만 캐시를 채웁니다. 손으로 만든 ID 목록에는 그 혜택이 따라오지 않고, 그 차이가 쿼리 수를 결정합니다.
테마 · 플러그인 실무
복사한 마크업은 반드시 어긋납니다. 한쪽을 고치면 다른 쪽은 그대로 남고, 두 화면이 서로 다른 말을 하기 전까지 아무도 모릅니다.
개발 워크플로우 실무
SQL 한 줄로 도메인을 바꾸면 위젯과 테마 설정이 조용히 빈 값이 됩니다. 직렬화가 문자열 길이를 함께 저장하기 때문이고, 이 문제는 도구를 바꾸는 것으로 완전히 사라집니다.
개발 워크플로우 실무
우선순위는 권한이 아니라 줄 서는 위치입니다. 번호를 올려 이기는 방법은 상대도 쓸 수 있어서 영구적인 승자가 없고, 번역 필터를 뒤에서 덮으면 원문이 그대로 나갑니다.
개발 워크플로우 실무
배포의 품질은 성공했을 때가 아니라 실패했을 때 드러납니다. 롤백 경로를 먼저 만들고 나서 올리는 순서를 정리합니다.
보안 실무
커밋된 비밀값은 이미 유출된 비밀값입니다. 히스토리를 다시 써도 되돌아오지 않고, 남는 해결은 교체 하나뿐입니다.
성능 최적화 실무
preload 는 우선순위를 사는 게 아니라 빌리는 것입니다. 남발하면 정작 급한 자원이 밀립니다. LCP 요소를 실측으로 특정하고 그 경로의 자원만 올리는 순서를 정리합니다.
보안 입문
관리자 비밀번호가 한 번 새면, 내장 테마 편집기는 웹셸 설치 화면이 됩니다. 상수 한 줄이 그 최단 경로를 지웁니다.
성능 최적화 입문
같은 화면에 나란히 나오지만 완전히 다른 문제입니다. 한쪽은 쿼리를 고쳐야 하고, 다른 한쪽은 캐시로 사라집니다. 구분이 먼저입니다.
개발 워크플로우 입문
포스트 타입은 한 줄로 열립니다. 메타는 다릅니다 — 타입을 등록해야 하고, auth_callback 이 쓰기를 가르며, 읽기는 그것과 무관하게 열려 버립니다.
테마 · 플러그인 입문
"CSS 가 안 먹는다" 의 대부분은 자식 스타일이 부모보다 먼저 로드된 것입니다. 의존성을 선언하면 순서가 보장되고, 강제 선언이 필요 없어집니다.
개발 워크플로우 입문
일괄 수정 사고는 대부분 대상을 잘못 고른 데서 납니다. 선택과 실행을 두 명령으로 나누면, 무엇이 바뀔지 눈으로 먼저 확인할 수 있습니다.