TECH NOTES
기술노트
현장에서 검증된 개발 지식을 기록합니다.
373635343332313029282726
Infra
컨테이너 이미지 최적화 — 멀티스테이지·distroless로 1.2GB를 80MB로 줄이기
Docker 이미지가 커지는 진짜 이유부터 멀티스테이지 빌드, distroless와 alpine의 트레이드오프, 레이어 순서와 캐시, .dockerignore, 보안 표면 축소까지 실제 Dockerfile로 정리했다.
Infra
Terraform 상태 관리와 모듈 설계 — 실무에서 안 터지는 IaC 패턴
Terraform 원격 상태와 잠금, 워크스페이스 대 디렉토리 분리, 얇은 모듈 설계, plan/apply 워크플로, 시크릿·드리프트 대응, OpenTofu 이주 판단까지 실무에서 안 터지는 IaC 패턴을 실제 코드와 함께 정리했다.
AI
AI 코딩 에이전트의 부상 — 자동완성을 넘어 개발 워크플로가 재편되는 방식
코파일럿식 자동완성에서 계획·도구사용·검증을 스스로 도는 자율 에이전트로 무게중심이 옮겨간다. 에이전트 루프, IDE·CI 통합, 코드베이스 인덱싱과 MCP, 신뢰·검증, 팀 도입 전략, 개발자 역할 변화까지 2026년 흐름을 벤더 중립적으로 정리한다.
Tools
모노레포 도구 전쟁 — Turborepo·Nx·Bazel, 무엇을 언제 쓰나
Turborepo·Nx·Bazel은 같은 문제를 다른 급으로 푼다. 태스크 그래프·원격 캐시·영향 분석부터 3자 비교 표, 마이그레이션, 폴리레포 경계까지 2026년 관점으로 정리한다.
Backend
피처 플래그 기초 — 코드는 배포하되 기능은 나중에 켜기
배포와 기능 출시를 분리하는 스위치. 미완성 기능을 숨긴 채 배포하고, 문제 생기면 코드 롤백 없이 끄기만 하면 되는 피처 플래그의 기본.
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가 업스트림(앱)에서 정상 응답을 못 받았다는 뜻. 앱 다운·소켓 경로·타임아웃·권한 순으로 점검한다.