TECH NOTES
기술노트
현장에서 검증된 개발 지식을 기록합니다.
152415231522152115201519151815171516151515141513
Backend
아웃박스 패턴 — 이벤트를 잃지 않고 확실히 발행하는 법
DB 커밋과 이벤트 발행을 한 트랜잭션으로 묶는 아웃박스 패턴. 이중 쓰기 문제, FOR UPDATE SKIP LOCKED 릴레이, at-least-once와 멱등 소비자까지 정리했습니다.
Frontend
Next.js after() — 응답 후 백그라운드 작업 예약하기
Next.js after() API로 응답을 보낸 뒤 로깅·분석·캐시 갱신을 실행하는 법. 서버 컴포넌트·서버 액션·라우트 핸들러 활용과 흔한 함정, 조회수 집계 실전 패턴.
AI
시맨틱 캐싱 — LLM 응답을 임베딩으로 재사용해 비용 줄이기
같은 뜻 다른 표현의 질문에 과거 답을 재사용하는 시맨틱 캐싱. 유사도 임계값 튜닝, 캐시하면 안 되는 질문, 프롬프트 캐싱과의 차이를 실전 로그 기반으로 정리.
Infra
systemd 서비스 하드닝 — systemd-analyze security로 공격면 줄이기
systemd-analyze security로 노출 점수 9.6을 받고 시작한 하드닝. 컨테이너 없이 유닛 파일 몇 줄로 파일시스템·권한·시스템콜을 잠가 공격면을 줄이는 법.
Backend
멱등성 키 — 중복 결제·이중 요청을 막는 실전 패턴
네트워크 재시도로 인한 중복 결제를 막는 멱등성 키. Postgres ON CONFLICT로 원자적으로 선점하는 서버 구현과 TTL·본문 해시 같은 실전 디테일을 담았습니다.
Frontend
React 19 ref prop — forwardRef 없이 ref 전달하기
React 19부터 함수 컴포넌트가 ref를 일반 prop으로 받는다. forwardRef 없이 ref 전달하기, ref 콜백 클린업, codemod 마이그레이션과 타입 지정까지 정리.
AI
GraphRAG — 지식 그래프로 다중 홉 질문 푸는 RAG
문서에서 엔티티와 관계를 뽑아 지식 그래프로 만드는 GraphRAG. 일반 RAG가 막히는 다중 홉·전역 질문을 로컬/글로벌 검색으로 푸는 원리와 비용 트레이드오프.
Infra
쿠버네티스 프로브 튜닝 — liveness·readiness·startup 제대로 나누기
liveness에 DB를 물렸다가 무한 재시작 사고를 냈다. 세 프로브의 역할 차이부터 타이밍 파라미터, graceful shutdown 연동까지 실전 튜닝을 정리했다.
Backend
패스키 로그인 — WebAuthn으로 비밀번호 없이 인증하기
패스키가 왜 피싱에 강한지, WebAuthn 등록·인증 흐름을 코드로 짚고 계정 복구·userVerification 등 실전에서 데인 지점까지 정리했습니다.
AI
LLM 샘플링 파라미터 — top-k, min-p, 반복 페널티까지
temperature와 top-p 너머의 샘플링 손잡이. top-k와 min-p로 꼬리를 자르고 frequency·presence 페널티로 반복을 다스리는, 작업별 실전 레시피를 정리했다.
Frontend
CloseWatcher API — Esc·뒤로 가기로 커스텀 UI 닫기
안드로이드 뒤로 가기로 메뉴가 아니라 페이지가 통째로 닫히던 문제를 CloseWatcher API가 해결합니다. Esc와 뒤로 가기를 하나의 close 이벤트로 다루고 중첩 UI와 취소·폴백까지 처리하는 법을 살펴봅니다.
AI
스페큘러티브 디코딩 — 드래프트 모델과 수용률의 경제학
작은 드래프트 모델이 미리 짓고 큰 모델이 검증하는 스페큘러티브 디코딩. 품질은 왜 안 깎이는지, 이득을 좌우하는 수용률과 제안 길이 k의 저울질을 설명한다.