전체 글

구조적 로깅, 장애를 빨리 읽는 법

텍스트 로그는 사람 눈에만 맞춰져 있다. 구조적 로깅(JSON 기반)으로 바꾸면 장애 분석 시간이 줄어드는 이유와, 관측 삼각형 속에서 구조적 로그가 맡는 구체적 역할을 실무 관점에서 정리했다.

2026-07-18

모노레포 CI가 느린 이유: 캐시 키 설계 실패 회고

판교 팀이 40% 캐시 히트율을 91%로 올린 과정. lockfile 기반 키 설계와 레이어 캐싱으로 CI 시간 50% 감소, 함정과 재발 방지법.

2026-07-18

부분 프리렌더링, SSG와 SSR 사이의 실용적 선택

Next.js 15/16의 PPR은 정적 셸(TTFB 20~50ms)과 동적 홀을 단일 요청으로 통합해 ISR의 스테일 창을 제거하고 서버 비용 30~40%를 절감한다. 갱신 주기와 개인화 정도에 따른 렌더링 방식 선택의 기준을 정리했다.

2026-07-18

Docker 멀티스테이지 빌드, 어디까지 가져가야 하나

이미지 크기 10배 감소와 빌드 속도 80% 향상의 멀티스테이지 빌드. 하지만 쿠버네티스 없는 팀에선 다른 선택이 맞을 수 있다. 운영 복잡도와 팀 규모로 실제 판단하기.

2026-07-18

번들 사이즈 예산: 측정과 제약으로 성능을 관리하는 법

번들 예산은 감이 아니라 제약이다. 초기 번들 170KB, 전체 300KB 제한 아래서 실제 사용자 환경 3초 로딩을 담보하는 예산 수립과 회귀 방지 전략.

2026-07-18

REST vs GraphQL: 2026년 판교에서 실제로 고르는 기준

REST는 단순 요청에서 33% 높은 처리량, GraphQL은 복잡 쿼리에서 28% 낮은 지연시간을 보인다. 어떤 상황에서 어느 것을 선택할까?

2026-07-17

연차 5년, 아직도 주니어인 이유 — 문제 정의 능력의 부재에서 찾다

시니어 전환은 연차가 아닌 문제 정의·트레이드오프 설명·영향 범위 확대로 갈린다. 5년차에도 주니어인 개발자와 2년차에 시니어 궤도의 개발자를 가르는 실무 기준을 추적했다.

2026-07-17

우리 클라우드 월급을 40% 깎은 방법 — 비용 회고

판교 스타트업이 예약 인스턴스와 스팟 인스턴스 혼합, 태그 기반 가시성으로 AWS 비용을 40~72% 절감한 실무 사례. 워크로드별 컴퓨트 선택과 자동화 스케줄링의 트레이드오프를 정리했습니다.

2026-07-17

Redux 올인원에서 벗어나기 — 서버 상태와 클라 상태를 나눈 장애 회고

전역 스토어에 API 데이터와 UI 상태를 함께 관리하다가 캐시 불일치로 장애를 겪었다. 서버 상태와 클라이언트 상태를 도구와 책임으로 분리한 경험.

2026-07-17

JSONB 인덱스 전략 실패와 복구: 쿼리 패턴 모르고 GIN 깔았던 2개월

PostgreSQL JSONB를 무분별하게 GIN 인덱스로 덮은 뒤 쓰기 성능이 반토막 난 사건. 쿼리 패턴을 분석해 Expression B-tree로 전환하고 정규화 기준을 세운 회고.

2026-07-17