TECH NOTES
기술노트
현장에서 검증된 개발 지식을 기록합니다.
323130292827262524232221
Backend
API 키가 GitHub에 올라갔을 때 — 유출 대응 절차
커밋에 실수로 넣은 키는 히스토리에 영원히 남는다. .gitignore로는 못 지운다. 즉시 폐기부터 히스토리 제거까지 올바른 대응 순서를 정리한다.
Infra
무중단 배포, blue-green과 rolling 쉽게 이해하기
배포 때마다 잠깐 끊기는 걸 없애는 두 가지 전략. 트래픽 전환·헬스체크·롤백 관점에서 비교한다.
Infra
GitHub Actions가 느리다 — 캐시로 빌드 시간 줄이기
매번 의존성을 새로 받으면 CI가 길어진다. actions/cache·setup 캐시·도커 레이어 캐시로 절반 이하로 단축.
Infra
Docker Compose 컨테이너끼리 통신이 안 될 때
localhost로 다른 컨테이너를 부르면 실패한다. 같은 네트워크의 서비스명으로 접속, depends_on의 한계까지.
Infra
systemd 서비스로 앱을 안정적으로 띄우기
pm2 대신 systemd로 충분하다. 자동 재시작·부팅 시 실행·로그·보안 격리(ProtectSystem)까지 유닛 작성 가이드.
Infra
Docker 이미지 용량 줄이기 — 멀티스테이지 빌드
1GB 넘는 Node 이미지를 100MB대로. 멀티스테이지·alpine·.dockerignore·레이어 순서로 빌드 도구를 최종 이미지에서 뺀다.
Infra
nginx 502 Bad Gateway, 원인부터 잡기
502는 nginx가 업스트림(앱)에서 정상 응답을 못 받았다는 뜻. 앱 다운·소켓 경로·타임아웃·권한 순으로 점검한다.
Database
무중단으로 컬럼 추가하기 — 안전한 마이그레이션
NOT NULL+DEFAULT를 큰 테이블에 한 번에 걸면 잠금으로 장애가 난다. 단계적(expand-contract) 마이그레이션 절차.
Backend
.env 환경변수 관리와 흔한 유출 사고 막기
.env를 깃에 올려 키가 유출되는 사고가 흔하다. gitignore·시크릿 매니저·프론트 노출 변수 구분까지 안전 관리법.
Infra
Pulumi ESC — secret + config 중앙 관리 6개월 사후
Pulumi ESC GA. AWS Secrets Manager·1Password·Doppler 통합 + 환경별 config 계층화. 6개월 운영, 마이그레이션 정리.
AI
Claude Sonnet 4.6 Bash Tool — 서버 운영 에이전트 프로덕션 패턴 7가지
Bash 도구를 안전하게 프로덕션 서버에 연결하는 7가지 패턴. 권한 격리, 출력 후처리, 위험 명령 가드, 실측 사례.
Infra
OpenTofu 1.10 — Terraform 포크의 1년, 마이그레이션·기능 격차
OpenTofu 1.10 시점의 Terraform 격차·신규 기능(state encryption, dynamic providers) 정리. 마이그레이션 단계와 함정.