All Posts

ai-ml May 20, 2026 (Updated)

Claude, Copilot, Codex가 PR에서 보이는 13가지 패턴

Claude, Copilot, Codex가 PR에서 동작하는 열세 가지 방식 — 열 가지 실패 유형 + 두 가지 amplify할 productive behavior + 한 가지 analyst-side error class. 탐지 신호와 사실관계 충돌을 해결하는 empirical tiebreaker까지 정리했어요.

ai-mlcode-reviewai-reviewerconfusion-patternscopilotclaudecodex
ai-ml May 20, 2026 (Updated)

Claude Code Agent Teams

여러 Claude Code 인스턴스를 팀으로 조율하는 실험적 기능의 설정, 패턴, 주의사항을 알아봅니다.

ai-mlclaude-codeagent-teamsexperimental
backend May 6, 2026 (Updated)

FastAPI에서 startup dependency를 non-blocking으로 만들기

FastAPI의 lifespan code는 application이 request를 받기 전에 실행돼요. startup이 Kafka 같은 optional dependency를 await하면, 그 dependency 없이도 안전하게 route를 serve할 수 있는데도 Cloud Run cold start가 health check + E2E probe를 실패시킬 수 있어요.

backendpythonfastapikafkacloud-runtransferable
devops May 6, 2026 (Updated)

Anthropic Prompt Cache TTL과 비용 메커니즘

Anthropic이 2026년 3월 초쯤 Claude Code의 prompt cache TTL을 1시간에서 5분으로 조용히 줄였어요. 이걸 모르면 메시지 사이에 5분 이상 비는 순간 cache가 날아가고, 다음 메시지에 전체 conversation prefix를 처음부터 다시 써야 해요. 기본 입력 단가의 1.25배짜리 비용으로요.

knowledgedevopsai-mlclaude-code
devops May 6, 2026 (Updated)

Codex Skill Mirror 패턴

`.agents/skills/`를 정식 skill 출처로 두는 repo에서 Codex를 깔끔하게 붙이는 방법은 통째로 교체하거나 통째로 심볼릭링크하는 게 아니에요. 정식 출처는 그대로 두고, 필요한 skill에만 어댑터를 다는 mirror 레이어가 답이에요.

devopscodexclaude-codeskillsinteroperability
devops May 6, 2026 (Updated)

수동 merge gate로서의 두 단계 호출 패턴

CI/CD automation skill이 "all-in-one" mode(`/skill +flag`)를 지원할 때, all-in-one mode는 default가 아니라 opt-in이어야 해요. 호출을 분리하면 CI green과 되돌릴 수 없는 merge 사이에 의미 있는 일시정지 지점을 보존해요.

devopsautomationci-cddeploymentgating
devops May 6, 2026 (Updated)

`gh pr view`의 head-branch 모호성(false negative)

PR이 멀쩡히 열려 있고 branch도 정확히 추적되는데, `gh pr view --json number,state`가 "no pull requests found"를 뱉을 수 있어요. 이 빈 결과는 "PR이 없다"가 아니라 "gh의 branch resolution이 못 찾았다"는 뜻이에요.

devopsgithub-clighpr-management
devops May 6, 2026 (Updated)

watcher hook 아래서 `git rev-parse HEAD`와 `git log -1`이 어긋날 때

`gh pr merge` 끝내고 로컬에서 pull 받았는데, `git rev-parse HEAD`는 올바른 merge commit을 가리키고 `git log -1`은 방금 merge로 사라진 feature branch tip을 몇 초간 보여줬어요. checkout 도중에 graphify watcher rebuild가 돌고 있었어요. low-level ref 읽기가 권위 있고, log 렌더링은 늦어질 수 있어요.

devopsgitwatcher-hooksdebugginggraphify
devops May 6, 2026 (Updated)

Markdownlint Pre-Commit: MD041 + MD001 heading 함정

YAML frontmatter가 있는 새 markdown 파일에 husky pre-commit을 반복적으로 막는 두 가지 markdownlint 규칙. 둘 다 조용히 fire되고, --fix로 자동 수정되지 않으며, 보통 같이 나타나요 — 하나를 고치면 다른 하나가 노출돼요.

devopsmarkdowntoolingpre-commit
devops May 6, 2026 (Updated)

Serena MCP — Claude Code 다중 프로필 설정 (cpers/cwork)

Claude Code 이중 프로필 환경(cpers/cwork)과 Codex에 Serena MCP server를 설치하는 전체 절차. 권장 hook 4개, system-prompt 교체, 그리고 설치 도구가 기본 ~/.claude.json에만 쓰고 프로필별 저장소는 놓치는 함정까지 다뤄요.

devopsclaude-codemcpserenadual-profilecperscworktransferable
devops May 6, 2026 (Updated)

state-invariant flag drift — reconciliation pass로 복구하기

boolean lifecycle flag가 클리어 코드 경로에 절대 도달하지 못하는 entry들에 계속 끼는 현상이 있었어요. 증상만 고치는 fix는 계속 재발했고, 진짜 해결은 setter나 clearer 어느 쪽이 어떻게 set했든 상관없이 flag가 함의하는 invariant를 강제하는 세 번째 workflow를 추가하는 거였어요.

devopssyncdata-lifecyclestate-invariantdrift-recoverydefense-in-depth
devops May 6, 2026 (Updated)

Wrap Skill Follow-Up 영속화 아키텍처

session-state 대시보드를 매번 오늘 journal 하나만 보고 다시 만들면, 이전 session에서 풀리지 않은 follow-up이 rebuild할 때마다 조용히 사라져요. 단일 source 탐색 + 대화에서만 언급된 항목과 겹치면 동시에 세 갈래로 증발해요. 해결책은 4-layer 아키텍처예요.

devopsclaude-codeskill-designsession-state
general May 6, 2026 (Updated)

Empirical Close: 자연스러운 trigger에 skill-side test를 맡기기

어떤 verification test는 fixture로 충실히 재현되지 않는 진짜 trigger가 필요해요 — 대화형 prompt, 대화 파싱, AskUserQuestion flow. test를 [~] empirical-close-pending으로 표시하고 다음 자연스러운 trigger가 verify해 주리라 믿는 건, friction-log reopen과 짝지을 때 위생적인 선택이에요.

generalprocesstask-managementverification
general May 6, 2026 (Updated)

Markdownlint 컨벤션 가이드

200개 markdown 파일에 7,500개의 markdownlint 에러. 어떤 룰이 중요한지, 어떤 설정이 잘 정착했는지, nested scope에서만 표면화되는 두 가지 pre-commit 함정, 그리고 14-rule custom config를 한 줄 extends + 5개 carve-out으로 collapse한 strict-preset 마이그레이션.

generaldocumentationmarkdownlinting
general May 6, 2026 (Updated)

Task를 다시 잡을 때 plan과 실제 shipped 상태가 어긋나는 순간

여러 세션에 걸친 task를 다시 잡으면, 처음 작성한 plan.md가 지금 main에 반영된 모습과 어긋나 있을 때가 많아요. 구현은 도중에 바뀌고, 범위는 옮겨가고, branch는 어느새 merge돼요. 3분짜리 pre-flight check 하나면 한참 동안 obsolete된 작업을 붙들고 있는 시간을 막아줘요.

generalprocesstask-resumeverify-before-execute
general May 6, 2026 (Updated)

LLM-robust한 skill 전제조건은 산문보다 체크리스트가 나아요

산문 형태로 쓴 복합 전제조건은 컨텍스트 부담이 커지면 조용히 어긋나요. 절 하나당 체크박스 하나로 명시적인 체크리스트로 바꾸면 전제조건이 LLM 앞에서도 견고해지고, 실제 버그였던 숨은 절들도 드러나요.

generalskill-authoringclaude-codellm-promptsinstructionsrobustness
ai-ml May 5, 2026 (Updated)

Codex `apply_patch`는 직접 도구가 아니라 셸 매개 도구예요

Codex CLI에는 별개의 편집 도구가 없어요. 파일 편집은 `local_shell`을 통해 `apply_patch` 패치 텍스트로 흘러요. 크로스-에이전트 훅은 도구 이름 매처가 아니라 페이로드 파싱 래퍼가 필요해요.

ai-mlcodexclaude-codehookscross-agenttransferablegotcha
ai-ml May 5, 2026 (Updated)

크로스-에이전트 스킬 별칭 일반화

Claude Code, Codex, Gemini가 함께 쓰는 스킬은 한 에이전트의 MCP 도구 별칭을 하드코딩하면 깨져요. 두 단계 패턴 — frontmatter에 두 별칭 패밀리를 모두 선언하고, 본문 prose에는 일반 이름만 써요.

ai-mlskillsmcpcross-agentclaudecodexgeminitransferable
devops May 5, 2026 (Updated)

표준 라이브러리만으로 헬퍼 이식성 확보하기

여러 에이전트로 배포되는 헬퍼는 CI에서 비-stdlib 의존성에 기댈 때 깨져요. 표준 라이브러리만 쓰도록 묶어 두세요. PyYAML, npm 패키지, BSD/GNU sed 플래그가 단골 함정 셋이에요.

devopsportabilityhelperscipythonnodejstransferable
devops May 5, 2026 (Updated)

심볼릭 링크 감지: `test -L` vs `realpath`

POSIX 함정. `test -L child/leaf`는 상위 디렉토리가 심볼릭 링크일 때 false를 반환해요. 체인 자체는 건강한데도요. SoT 체인 검증에는 `realpath`를 써야 해요.

devopsshellsymlinksposixgotchatransferable
general May 5, 2026 (Updated)

스키마 버전 관리되는 헬퍼 출력 엔벨롭

크로스-에이전트 헬퍼 스크립트를 위한 JSON 출력 엔벨롭 — schema_version, status, error, agent, ts. 안정적인 모양, semver로 올릴 수 있고, 에러를 구분해 줘요.

generaljsonschemahelperscross-agenttransferable
backend Apr 29, 2026 (Updated)

멱등 부트스트랩 재시도를 위한 emitAsync 스탬프 게이팅

큐로 sync emit 후 "완료" 스탬프를 찍는 부트스트랩은 Redis가 잠깐 끊기면 다운스트림이 조용히 비어요. emitAsync가 enqueue 승인에 스탬프를 게이트해줘요.

backendnestjseventemitter2bullmqidempotency
backend Apr 29, 2026 (Updated)

Fallback 브랜치 테스트 커버리지 갭

테스트는 통과해요. 커버리지는 100%예요. `|| randomUUID()`를 지워도 모든 게 통과해요. 빌더 기반 fixture가 falsy 브랜치를 어떻게 숨기는가.

backendtestingcoverageknowledge
backend Apr 29, 2026 (Updated)

Stateless Auth DB 컬럼 Drift

인증이 stateful에서 stateless JWT 검증으로 마이그레이트했어요. 테스트는 통과해요. 모바일 사용자는 access_token이 채워져 있고; 웹 사용자는 NULL이에요. Drift는 사용자 동작에는 invisible하다가 ops가 컬럼을 쿼리할 때까지요.

backendauthdatabasemigrationstatelessknowledge
backend Apr 29, 2026 (Updated)

크로스 클라우드 이벤트 흐름을 위한 대칭형 Redis ↔ Kafka 브리지 페어

Cloud Run은 내부 Kafka 브로커에 못 닿아요 — `advertised.listeners`가 항상 이겨요. Redis를 통과하는 단방향 브리지 한 쌍이 모든 invariant를 지켜줘요.

backenddistributed-systemsevent-streamingcross-cloud
backend Apr 29, 2026 (Updated)

Typesense documents/import의 바이트 인식 vs 카운트 기반 청킹

Typesense bulk import를 위한 두 가지 청킹 전략. 잘못된 걸 고르면 어떤 파워 유저가 멀티-MB 문서를 만드는 날 조용히 실패해요.

backendtypesensebatchsearch
devops Apr 29, 2026 (Updated)

AI PR 리뷰 검증 패턴

AI 코드 리뷰어(Claude, Copilot, Codex)가 오탐을 만드는 13가지 패턴과, triage를 빠르게 유지하는 분류 프레임워크 + 보강 주석 템플릿.

devopsaicode-review
devops Apr 29, 2026 (Updated)

Ruff 3중 게이트 프리플라이트

한 번의 push가 CI 사이클 세 번으로 늘어나면서 깨달은 사실 — CI에서 Ruff는 독립적인 게이트 세 개예요. 4줄짜리 셸 함수면 이 루프를 막을 수 있어요.

devopspythonci-cdruffpre-flight
ai-ml Apr 18, 2026 (Updated)

Phase A→B 분류기 배포: 제로샷에서 파인튜닝까지

라벨링된 데이터 없이 첫날부터 동작하는 인텐트 분류기를 배포하고, 예시가 모이면 도메인 특화 모델로 졸업하는 방법을 알아보세요.

ai-mlnlpintent-classificationdistilbertbartmodel-selection
devops Apr 18, 2026 (Updated)

Claude Code: 공유 + 개인 AI 설정 패턴

AI 지시사항을 커밋되는 공유 레이어와 gitignore되는 개인 레이어로 분리해서 새 개발자는 즉시 AI 지시사항을 사용하고 기존 개발자는 개인 확장을 유지하는 패턴입니다.

devopsclaude-codeai-configonboarding
ai-ml Apr 17, 2026 (Updated)

논문 6편, 적용 0개 — 훈련된 읽기로 보낸 한 주

DAIR.AI 4월 6-12일 배치에서 논문 6편을 읽고 3가지 공통 theme을 뽑았지만, 3B에는 한 줄도 적용하지 않았어요. Pattern A(theme saturation before action)가 실제로 어떻게 동작하는지 보여주는 weekly synthesis예요.

forgeai-mlweekly-synthesispattern-allm-agents
devops Apr 14, 2026 (Updated)

JSONL transcript로 Claude Code turn latency 측정하기

이미 disk에 쌓여 있는 JSONL transcript를 파싱해서 Claude Code session의 per-turn latency를 ground-truth로 측정한 이야기. 그 과정에서 스스로 잡아낸 네 가지 측정 trap도 같이 정리했어요.

claude-codelatencymeasurementdebuggingjsonltranscriptsdevops
backend Apr 11, 2026 (Updated)

NestJS @Headers decorator는 string | undefined를 리턴해요

NestJS `@Headers('key')`는 `string[]`가 아니라 `string | undefined`를 리턴해요. Express가 중복된 custom header를 쉼표로 합쳐 주거든요.

backendnestjsexpresshttp-headerstypescript
backend Apr 11, 2026 (Updated)

NestJS Swagger: content가 있으면 type은 조용히 무시돼요

`@ApiResponse`에 `type`과 `content`를 같이 넣으면 NestJS Swagger가 `type`을 조용히 떨어뜨려요. 그래서 DTO가 Swagger UI Models 탭에 안 나타나요.

backendnestjsswaggeropenapi
devops Apr 11, 2026 (Updated)

macOS VSCode 터미널 locale fallback 문제

macOS에서 VSCode integrated terminal이 조용히 비영어 locale로 바뀔 수 있어요. `git status`가 갑자기 한국어로 말하는 이유, 그리고 `settings.json`에 `LANG`을 고정하는 방법이에요.

devopsmacosvscodelocalei18ngotcha
devops Apr 9, 2026 (Updated)

Stow Symlink 상태 점검

GNU Stow가 만든 symlink이 앱 업데이트로 깨지는 문제를 감지하고 복구하는 방법을 알아봐요.

devopsdotfilesstowsymlinks
ai-ml Apr 6, 2026

Karpathy가 설명하기 전에 이미 만들어 놓았다

Andrej Karpathy가 LLM 기반 지식 관리 시스템 패턴을 발표했는데, 이미 몇 달째 운영하고 있던 시스템과 놀라울 정도로 같았어요. 비교에서 알게 된 것들을 공유해요.

ai-mlknowledge-managementclaude-codepatterns
ai-ml Apr 6, 2026 (Updated)

LLM 파인튜닝 전략

LLM 기반 애플리케이션을 구축할 때 프롬프트 엔지니어링, RAG, LoRA 파인튜닝 중 어떤 접근법을 선택할지에 대한 실용적인 의사결정 프레임워크예요.

ai-mlfine-tuningllm
ai-ml Apr 6, 2026 (Updated)

모델 드리프트 감지를 위한 PSI(Population Stability Index)

배포된 분류기의 입력 분포가 학습 데이터에서 벗어나는 것을 정확도가 떨어지기 전에 감지하는 경량 통계 메트릭을 알아보세요.

ai-mlmlopsdrift-detectionmonitoringstatistics
devops Apr 6, 2026 (Updated)

Anthropic MCP 컨텍스트 예산 최적화

Anthropic 호스팅 MCP 통합이 세션 시작 시 컨텍스트 윈도우에서 ~71K 토큰을 소비해요 — 호출하지 않아도요. 이 예산을 되찾는 방법을 알아보세요.

devopsclaude-codeai-ml
devops Apr 6, 2026 (Updated)

Docker 서브넷 충돌과 Static IP 서비스

여러 Docker Compose 프로젝트가 커스텀 브리지 네트워크를 정의하면 서브넷이 조용히 충돌할 수 있어요. 진단하고 해결하는 방법을 알아보세요.

devopsdockernetworking
devops Apr 6, 2026 (Updated)

하이브리드 CI: 셀프 호스팅 Jenkins + GitHub Actions

하나의 CI 시스템만 쓸 이유가 없어요. 폴리글랏 포트폴리오 프로젝트를 위해 각 도구의 강점을 살리는 분할 아키텍처를 소개해요.

devopsci-cdjenkinsgithub-actionsarchitecture-decision
general Apr 6, 2026 (Updated)

PortAudio의 오래된 USB 오디오 디바이스 핸들 문제

PortAudio를 사용하는 장기 실행 오디오 데몬이 USB 디바이스 핸들이 오래되면 조용히 제로 버퍼를 생성해요. 진단하고 해결하는 방법을 알아보세요.

generaldevops
google Apr 6, 2026 (Updated)

Google Meet 링크 생성

프로그래밍 방식으로 Google Meet 링크를 생성하면서 배운 교훈이에요.

backendgoogle-apiwork
ai-ml Apr 1, 2026 (Updated)

다음 지능 폭발은 사회적이지, 계산적이지 않다

Google 논문이 주장합니다 — 역사 속 모든 주요 지능 폭발은 개인의 인지 능력이 아닌 사회적 조직에서 비롯되었으며, AI도 같은 패턴을 따를 것이라고.

ai-mlai-agentsresearchsociety
aws Mar 26, 2026 (Updated)

WAF Allowlist 패턴

라우트 allowlist를 사용한 block-by-default WAF 접근 방식. 알 수 없는 라우트가 자동 차단되어 blocklist보다 보안이 강해요.

awswafsecurityinfrastructure
backend Mar 26, 2026 (Updated)

Redis와 BullMQ 큐 패턴

Node.js/NestJS에서 Redis 기반 BullMQ 작업 큐를 사용한 백그라운드 작업 처리 가이드

backendredisbullmqqueuenode.js
ai-ml Mar 24, 2026 (Updated)

Gemini 비대칭 Embedding 활용하기

Gemini text-embedding-004는 task_type을 통해 query와 document를 다르게 인코딩하는 asymmetric embedding을 지원하며, symmetric 모델보다 훨씬 나은 검색 결과를 만들어줘요.

ai-mlembeddingsgoogle
ai-ml Mar 24, 2026 (Updated)

RAG Hybrid Search 아키텍처

단일 검색 방식이 왜 실패하는지, 그리고 dense, sparse, fuzzy, managed search를 Reciprocal Rank Fusion으로 결합해서 시맨틱 이해와 키워드 정확도를 모두 잡는 검색 파이프라인을 만드는 방법.

ai-mlragsearcharchitecture
backend Mar 24, 2026 (Updated)

PostgreSQL에서 pgvector HNSW 인덱스 활용하기

semantic search를 위해 별도의 vector database가 필요하지 않아요 — pgvector의 HNSW 인덱스는 10만 건 이하의 vector에서 95% 이상의 recall을 PostgreSQL 안에서 바로 제공해요.

backenddatabasesearchpostgresql
aws Mar 22, 2026 (Updated)

EBS vs EFS: AWS 스토리지 비교

EBS(블록 스토리지)와 EFS(네트워크 파일 시스템)를 언제 써야 하는지 정리.

awsstoragedevopswork
aws Mar 22, 2026 (Updated)

ECS Autoscaling 패턴

Race condition 방지를 위한 마이그레이션 태스크 분리와 ECS 서비스 autoscaling 구현 가이드.

awsecsautoscalinginfrastructure
aws Mar 22, 2026 (Updated)

NAT Gateway 아키텍처

NAT Gateway 배치와 VPC 네트워크 흐름 이해하기.

awsvpcnetworking
aws Mar 22, 2026 (Updated)

AWS Security Group 기초

Security Group의 stateful 동작, 최소 권한 원칙, 실전 패턴 — 연결 안 되는 원인 1위를 파헤쳐요.

awssecuritynetworking
aws Mar 22, 2026 (Updated)

Terraform 기초

AWS 인프라 관리를 위한 핵심 Terraform 개념 정리.

awsterraforminfrastructure-as-code
aws Mar 22, 2026 (Updated)

Terraform RDS 자격증명 관리

하드코딩 대신 변수를 사용해서 RDS 자격증명을 안전하게 관리하는 방법.

awsterraformrdssecuritywork
aws Mar 22, 2026 (Updated)

AWS WAF 구현

Allowlist 방식의 Web Application Firewall 설정 가이드.

awssecuritywafwork
backend Mar 22, 2026 (Updated)

Amplitude ETL 파티셔닝

Amplitude 이벤트 데이터를 raw에서 refined 스토리지로 이동할 때 파티셔닝하는 방법

backendetlamplitudesparkpartitioning
backend Mar 22, 2026 (Updated)

Amplitude Export API 응답 형식

Amplitude Export API는 오해하기 쉬운 중첩 압축 형식으로 데이터를 반환해요

backendamplitudeapidata-format
backend Mar 22, 2026 (Updated)

조기 종료 시 Backfill 통계 매니페스트

조기 종료 경로가 있는 작업에서는 항상 stats/status 매니페스트를 저장해서 다운스트림 콜백이 유의미한 정보를 표시할 수 있게 해야 해요.

backendetlslack
backend Mar 22, 2026 (Updated)

Calendar EXDATE 동작: Apple vs Google

Apple Calendar과 Google Calendar이 반복 일정 삭제를 처리하는 방식의 차이

backendcalendaricalendarrfc5545
backend Mar 22, 2026 (Updated)

Celery API-Side Dispatch 패턴

Worker의 task 모듈을 import하지 않고 API 서비스에서 별도의 worker 서비스로 task를 전달하는 send-only Celery 클라이언트 만들기

backendcelerypythonasync
backend Mar 22, 2026 (Updated)

class-transformer undefined 자체 속성 버그

ES2022+ TypeScript 타겟에서 plainToInstance()가 클래스 인스턴스를 생성할 때, 모든 optional 클래스 필드가 undefined 값을 가진 자체 속성이 되는 문제.

backendtypescriptclass-transformergotcha
backend Mar 22, 2026 (Updated)

CPU Cache Locality를 활용한 배치 필드 추출 최적화

같은 배열에 대해 여러 번 `.map()`을 호출하면 CPU가 매번 객체를 메모리에서 다시 불러와야 합니다

backendperformanceoptimization
backend Mar 22, 2026 (Updated)

DataSource vs Repository 패턴

NestJS/TypeORM 애플리케이션에서 직접 DataSource 사용과 Repository 패턴 중 선택하기 위한 아키텍처 결정 가이드.

backendarchitecturepatternstypeormnestjs
backend Mar 22, 2026 (Updated)

ETL 데이터 분리 전략

자동화된 ETL 데이터와 수동 백필 데이터를 같은 S3 경로에 섞어두면 추적, 처리, 디버깅이 어려워집니다

backendetldata-engineerings3architecture
backend Mar 22, 2026 (Updated)

NestJS WebSocket 레퍼런스

NestJS에서 WebSocket 기능을 구현하기 위한 종합 레퍼런스.

backendnestjswebsocketswork
backend Mar 22, 2026 (Updated)

pandas itertuples() vs iterrows()

`iterrows()`는 DataFrame 행을 순회하는 가장 흔한 방법이지만, 매 행마다 pd.Series 객체를 생성해서 느립니다

backendpythonpandasperformance
backend Mar 22, 2026 (Updated)

TypeORM으로 PostgreSQL Advisory Lock 사용하기

PostgreSQL이 관리하는 애플리케이션 수준의 lock으로 분산 환경에서 작업을 조율하는 방법.

backendpostgresqldatabasework
backend Mar 22, 2026 (Updated)

PostgreSQL IN 절 파라미터 제한

TypeORM의 `In([...])` 연산자로 대량 ID를 쿼리하면 생성된 SQL이 ID당 하나의 바인드 파라미터를 만들어 성능이 저하됩니다

backendpostgresqltypeormperformance
backend Mar 22, 2026 (Updated)

Keyword-Only 파라미터로 중복 함수 통합하기

두 모듈에 거의 동일한 함수가 존재할 때, Python의 keyword-only 파라미터로 하나로 통합하는 패턴을 소개합니다.

backendpythonrefactoringapi-design
backend Mar 22, 2026 (Updated)

Sentry N+1 쿼리 감지

Sentry가 런타임에서 N+1 쿼리를 감지하는 방식, 병렬 실행으로 인한 오탐 사례, 그리고 해결 패턴.

backendperformanceobservabilitysentry
backend Mar 22, 2026 (Updated)

캘린더 동기화에서 Stale Block과 Orphan Block의 차이

Google Calendar API 동기화 시 발생하는 두 가지 정리 시나리오와 각각의 처리 전략

backendsyncgoogle-calendar
backend Mar 22, 2026 (Updated)

Sync Token 무효화 복구 (410 GONE)

Google Calendar API가 410 GONE을 반환하면 sync token이 무효화되고 전체 재동기화가 필요해요. 올바른 처리 방법을 알아봐요.

backendgoogle-calendarsyncerror-handling
backend Mar 22, 2026 (Updated)

TypeORM CLI와 NestJS DataSource 충돌

TypeORM CLI를 NestJS 프로젝트에서 사용할 때 발생하는 연결 충돌 문제와 해결 방법.

backendtypeormnestjs
backend Mar 22, 2026 (Updated)

TypeScript Type Narrowing을 Assertion보다 우선하기

프로덕션 코드에서 non-null assertion(!)과 강제 캐스팅(as Type) 대신 type narrowing을 사용해야 하는 이유

backendtypescriptbest-practices
backend Mar 22, 2026 (Updated)

updatedAt 기반 Staleness Guard

비동기 업데이트(웹훅, 메시지 큐)를 받을 때 소스의 updatedAt과 로컬 타임스탬프를 비교해서 stale 데이터가 최신 변경을 덮어쓰지 않도록 보호하는 패턴.

backendsyncwebhooksrace-condition
backend Mar 22, 2026 (Updated)

Webhook vs 사용자 활동

외부 서비스의 webhook은 그쪽의 활동을 나타내는 것이지, 우리 사용자의 활동이 아니에요. 이 구분이 리소스 관리에 중요해요.

backendwebhooksarchitecturepatterns
data Mar 22, 2026 (Updated)

Amplitude Export API의 타임존 처리 방식

Amplitude Export API가 이벤트 데이터 내보내기에서 타임존과 시간 경계를 처리하는 방식

dataamplitudetimezoneapi
devops Mar 22, 2026 (Updated)

Airflow Celery Worker 로그 서버 설정

CeleryExecutor를 사용할 때 워커가 별도 머신에 있으면 웹서버가 HTTP로 로그를 가져와야 합니다. hostname 설정이 잘못되면 로그 URL에 호스트가 비어서 에러가 납니다.

devopsairflowcelerylogging
devops Mar 22, 2026 (Updated)

Airflow CI/CD 개념

주방 비유를 통해 Airflow 배포와 CI/CD 개념을 이해해 봐요.

devopsairflowcicddockerwork
devops Mar 22, 2026 (Updated)

Airflow DAG 수준 callback

Airflow 2.x는 DAG 수준의 on_success_callback을 조용히 무시해요. 성공 알림은 마지막 task에 붙여야 동작해요.

devopsairflowcallbackswork
devops Mar 22, 2026 (Updated)

Airflow DAG start_date와 수동 트리거

DAG를 수동으로 트리거할 때, 트리거 날짜가 start_date보다 이전이면 Airflow가 task 실행을 건너뛸 수 있어요.

devopsairflow
devops Mar 22, 2026 (Updated)

Airflow Manual DAG Config 패턴

수동 DAG 트리거 시 커스텀 파라미터를 전달하면서도 예약 실행은 그대로 유지하는 패턴이에요.

devopsairflowdagtesting
devops Mar 22, 2026 (Updated)

Airflow Task 의존성 구문

Airflow의 >> 연산자는 task 의존성을 설정하고 downstream task를 반환해요.

devopsairflowpythonwork
devops Mar 22, 2026 (Updated)

Bash set -e와 명령어 치환

set -e(에러 시 종료)를 사용할 때, 명령어 치환이 커스텀 에러 메시지와 함께 예상과 다르게 동작하는 경우.

devopsbashshell-scripting
devops Mar 22, 2026 (Updated)

boto3 S3 put_object() Body 파라미터 인코딩

ETL 파이프라인에서 JSON 매니페스트 파일을 S3에 업로드할 때 발생하는 파라미터 검증 에러와 해결 방법이에요.

devopsawss3boto3python
devops Mar 22, 2026 (Updated)

Claude Code PostToolUse Hooks

PostToolUse hook은 도구 실행이 끝난 뒤 발동해요. session 정보, 도구 이름, 입력값, 결과, 작업 디렉토리가 들어 있는 JSON을 stdin으로 받아요.

devopsclaude-codehooks
devops Mar 22, 2026 (Updated)

DAG 배포 전략

Airflow DAG를 배포하는 다양한 방법과 트레이드오프 분석

devopsairflowdeploymentgitopswork
devops Mar 22, 2026 (Updated)

Docker Compose CI/CD 패턴

CI/CD 파이프라인에서 Docker Compose를 사용하는 패턴. 특히 개발과 프로덕션 설정을 분리하는 방법.

devopsdockercicdwork
devops Mar 22, 2026 (Updated)

ECR Credential Helper

ECR 인증 토큰 만료 문제를 해결하는 AWS 공식 credential helper 설정 방법

devopsawsdockerecr
devops Mar 22, 2026 (Updated)

ECR 토큰 갱신 Cron

AWS ECR 인증 토큰은 12시간 후 만료돼요. 오래 실행되는 Docker 호스트에서는 자동 토큰 갱신을 구현해야 해요.

devopsawsecrdockercronwork
devops Mar 22, 2026 (Updated)

ETL 스케줄 타이밍

데이터 도착 패턴에 맞는 ETL 스케줄을 설정하는 방법을 알아봐요.

devopsairflowetlscheduling
devops Mar 22, 2026 (Updated)

Linux 기초

컨테이너를 위한 필수 Linux 개념: cgroups, snapshotters, 권한, ACLs

devopslinux
devops Mar 22, 2026 (Updated)

MinIO로 로컬 S3 구축하기

Docker로 실행하는 S3 호환 오브젝트 스토리지 MinIO 설정 가이드

devopsdockers3miniolocal-dev
devops Mar 22, 2026 (Updated)

Python 툴링 스택

애플리케이션 프로젝트를 위한 표준 Python 개발 툴링 구성

devopspythontooling
devops Mar 22, 2026 (Updated)

S3 경로 정규화 패턴

S3 key prefix에 일관된 trailing slash를 보장하는 정규화 패턴

devopsawss3pythonpath-handling
devops Mar 22, 2026 (Updated)

Terraform 상태 복구

Terraform state 파일이 AWS 실제 상태와 맞지 않을 때 복구하는 절차를 정리했어요.

devopsterraformawsdisaster-recovery
devops Mar 22, 2026 (Updated)

tmux 스마트 세션 자동 시작

숫자 세션 이름으로 .zshrc에서 tmux를 자동 시작해서, 새 터미널 창마다 독립된 tmux 세션을 사용하는 방법이에요.

devopstmuxzshterminaliterm2
devops Mar 22, 2026 (Updated)

uv.lock 모범 사례

uv.lock을 버전 관리에 커밋해야 하는지에 대한 가이드

devopspythonuv
frontend Mar 22, 2026 (Updated)

Giscus SvelteKit 통합하기

데이터베이스나 인증 백엔드 없이 정적 생성 SvelteKit 블로그에 댓글 시스템을 추가하는 방법을 알아봅니다.

frontendsveltecomments
frontend Mar 22, 2026 (Updated)

모바일 Input UX

커스텀 스타일 input이 모바일 브라우저에서 제대로 동작하도록 만드는 기법을 알아봅니다.

frontendmobilecss
frontend Mar 22, 2026 (Updated)

SvelteKit용 Paraglide-JS i18n

번들을 부풀리지 않고 런타임 오버헤드 없이 SvelteKit 정적 블로그에 한국어/영어 다국어 지원을 추가한 방법을 정리했어요.

frontendi18nsveltesveltekit
frontend Mar 22, 2026 (Updated)

Svelte 5 $effect Rune

Svelte 5에서 $effect rune의 자동 의존성 추적, cleanup, 그리고 $derived 및 onMount와의 차이를 알아봅니다.

frontendsveltesvelte5reactivity
general Mar 22, 2026 (Updated)

Claude Code 전문가 워크플로우

세 명의 전문가 소스에서 합성한 Claude Code 활용 패턴: Boris Cherny(도구 설정), Mia Heidenstedt(프로세스 규율), YK Dojo(실무 워크플로우)

generalclaude-codeworkflowsbest-practices
general Mar 22, 2026 (Updated)

CSS Inline-Replaced 요소의 하단 갭

`<textarea>`, `<img>`, `<input>`, `<video>` 같은 요소는 CSS에서 inline-replaced 요소예요. 기본적으로 텍스트 baseline 위에 놓여서 신비한 하단 갭이 생겨요.

generalcssfrontend
general Mar 22, 2026 (Updated)

문서화 패턴

Buffer Pattern은 AI 지원 세션에서 중요한 발견을 보존해요. 세션이 끝나거나 연결이 끊겨도 소중한 인사이트를 잃지 않도록 해주죠.

generaldocumentation3bpatterns
general Mar 22, 2026 (Updated)

macOS Keychain 다중 계정 동작 방식

macOS Keychain은 같은 서비스 이름에 다른 계정 속성을 가진 여러 항목을 허용합니다. 이로 인한 인증 버그를 디버깅하고 해결하는 방법을 다룹니다.

generalmacoskeychainsecuritymulti-account
general Mar 22, 2026 (Updated)

React 데모 파이프라인 패턴

백엔드 없이 완전히 작동하는 React 대시보드 데모 모드를 구축하는 패턴을 소개합니다.

generalreactdemo-modefrontendpipeline
general Mar 22, 2026 (Updated)

shadcn/ui 수동 설정 (Vite + Tailwind)

Vite + React + TypeScript + Tailwind CSS 프로젝트에서 shadcn CLI 없이 shadcn/ui 컴포넌트 프리미티브를 수동으로 설정하는 방법이에요.

generalreactshadcn-uitailwindvitefrontend
general Mar 22, 2026 (Updated)

Claude Code 스킬에서 zsh 백틱 평가 문제

SKILL.md 파일의 백틱 마크다운 포맷이 zsh 명령어 치환 에러를 일으키는 문제와 해결법을 정리했어요.

generalclaude-codezshdebugging
google Mar 22, 2026 (Updated)

Google Calendar API: 반복 일정 업데이트

반복 일정에서 "이 일정만", "이후 모든 일정", "전체 일정" 업데이트를 처리하는 방법이에요.

backendgoogle-apicalendar
google Mar 22, 2026 (Updated)

Google Calendar 반복 일정 연산

반복 일정의 `all`, `this`, `thisAndFollowing` 업데이트 구현 패턴이에요.

google-apicalendarrecurring-eventswork
icalendar Mar 22, 2026 (Updated)

외부 캘린더 데이터 정규화

Apple Calendar, GNOME Evolution, 여행 앱 등의 외부 캘린더 데이터는 비표준 형식을 포함하는 경우가 많아서 파싱이 깨져요. 정규화 레이어로 이 edge case를 처리하는 방법이에요.

backendgoogle-calendarrruleparsing
icalendar Mar 22, 2026 (Updated)

부분 접근 반복 일정

반복 시리즈의 중간부터 초대받은 사용자의 경우, Google Calendar API가 예상과 다르게 동작해요. 제대로 처리하지 않으면 데이터 무결성 문제가 발생해요.

backendgoogle-calendardata-integrityedge-cases
icalendar Mar 22, 2026 (Updated)

rrule BYDAY 타임존 보정

rrule JavaScript 라이브러리가 BYDAY 요일을 이벤트 타임존이 아닌 UTC로 해석하는 문제와 해결 방법을 정리했어요.

backendrruletimezoneicalendar
icalendar Mar 22, 2026 (Updated)

RRULE EXDATE 타임존 파싱 문제

rrule JavaScript 라이브러리에서 EXDATE가 RRULE보다 먼저 오거나 TZID 파라미터가 있으면 파싱이 제대로 안 됩니다. 해결 방법을 알아봅니다.

backend
payments Mar 22, 2026 (Updated)

Lemon Squeezy 구독 관리

구독 라이프사이클, 취소, 만료, 재활성화에 대한 정리예요.

backendpaymentssubscriptionswork
security Mar 22, 2026 (Updated)

바이너리 체크섬 검증

SHA256 체크섬을 사용해 다운로드한 바이너리가 변조되지 않았는지 검증하는 방법

securitydevopssupply-chain
security Mar 22, 2026 (Updated)

타입 수준 필수 파라미터로 IDOR 방지하기

API가 사용자에게 ID를 조작해서 다른 사용자의 리소스에 접근할 수 있게 허용하는 IDOR 취약점을 타입 레벨에서 방지하는 방법

securitybackendtypescript
backend Mar 18, 2026 (Updated)

Alembic과 Async SQLAlchemy 설정하기

SQLAlchemy의 async engine과 함께 Alembic migration을 설정하는 방법

backendalembicsqlalchemypythondatabase
general Mar 18, 2026 (Updated)

Claude Code 멀티 프로필 HUD 설정

Claude Code를 여러 계정(개인 + 업무)으로 운영할 때 HUD 플러그인이 올바른 계정별 사용량 통계를 표시하도록 설정하는 방법

generalclaude-codehudmulti-accountdevtools
aws Mar 15, 2026 (Updated)

ECR/ECS 배포 워크플로우

Amazon ECR과 ECS를 사용한 컨테이너 배포 전체 과정 — 인증부터 롤링 업데이트, 트러블슈팅까지 정리했어요.

awsecsecrdockercicd
aws Mar 15, 2026 (Updated)

AWS VPC 네트워킹 기초

CIDR 계산, NAT Gateway 배치, Route Table — 왜 다들 처음에 헤매는지, 어떻게 제대로 잡는지 정리했어요.

awsnetworkingvpcterraform
backend Mar 15, 2026 (Updated)

FastAPI Dependency Injection 패턴

모든 라우트 핸들러에서 `Depends(get_current_user)`를 반복하면 보일러플레이트가 생기고 불일치가 발생하기 쉽습니다

backendfastapipython
backend Mar 15, 2026 (Updated)

Race Condition 방지를 위한 Pessimistic Locking

INSERT 전 존재 여부를 확인할 때 race condition을 방지하기 위해 SELECT FOR UPDATE를 사용하는 방법.

backenddatabaseconcurrencypatterns
backend Mar 15, 2026 (Updated)

AWS ECS/ALB에서의 WebSocket 아키텍처

ALB, ECS, Redis Pub/Sub를 활용한 실시간 알림용 WebSocket 연결 구조

backendwebsocketsocket.ioredisawsecsalb
security Mar 15, 2026 (Updated)

OAuth 2.0 구현 패턴

백엔드 서비스에서 OAuth 2.0 플로우를 구현하기 위한 실용적 패턴

securityoauthapi
security Mar 15, 2026 (Updated)

Traefik, Keycloak, ForwardAuth 이해하기

Traefik을 통해 노출된 Kubernetes 서비스에 인증 레이어가 없는 문제를 해결하는 방법

securitytraefikkeycloakoauth2authentication
general Mar 9, 2026 (Updated)

Recharts 다크 테마 커스터마이징

Recharts 차트를 다크 터미널 테마에 맞게 스타일링하는 방법을 CSS 변수와 커스텀 컴포넌트를 통해 설명합니다.

generalreactrechartschartsfrontenddark-theme
ai-ml Mar 5, 2026 (Updated)

AI 코드 리뷰 패턴

AI 리뷰어(Claude, Copilot, Codex)가 잘못되거나 오해의 소지가 있는 피드백을 생성하는 패턴 정리.

aicode-reviewpatterns
backend Mar 3, 2026 (Updated)

배치 처리 트레이드오프

데이터베이스 작업을 공유하는 여러 엔티티를 처리할 때, 엔티티별 배칭과 크로스 엔티티 배칭 간의 트레이드오프를 분석해요.

backendperformancearchitecturetrade-offs
aws Feb 24, 2026 (Updated)

ECS Auto-Scaling 심층 분석

ECS auto-scaling의 알고리즘, 쿨다운, 비용 최적화 — 비례 제어를 이해하면 flapping과 과금 폭탄을 피할 수 있어요.

awsecsautoscalingfargate
devops Feb 4, 2026

GitHub PR Review API - 인라인 코멘트

GitHub API와 gh CLI로 PR 리뷰에 인라인 코멘트를 다는 방법

devopsgithubapipr-review
backend Jan 26, 2026

Two-Phase Deletion 패턴

rollback 기능이 없는 시스템에서 외부 API 호출이 성공해야만 데이터를 영구 삭제하는 안전한 삭제 패턴.

backendarchitecturedata-integritypatterns
security Jan 26, 2026

인프라 보안 강화 체크리스트

AWS 인프라를 위한 종합 보안 강화 체크리스트예요. 네트워크 격리, WAF 배포, 비용 효율적인 보안 개선을 다뤄요.

securityawsinfrastructurechecklist
google Jan 23, 2026

Google Calendar 동기화 전략

Full sync와 incremental sync 패턴, 그리고 캘린더 분류 로직을 정리했어요.

backendgoogle-apisynccalendarwork
enko