본문 바로가기
전체 1401
1341
Infra2분 읽기
systemd 서비스로 앱을 안정적으로 띄우기
pm2 대신 systemd로 충분하다. 자동 재시작·부팅 시 실행·로그·보안 격리(ProtectSystem)까지 유닛 작성 가이드.
#systemd#Linux#Deployment
2026.06.18
1340
Infra2분 읽기
리눅스 디스크가 꽉 찼다 — 범인 찾기
No space left on device. du·df·로그·삭제됐지만 열린 파일·inode 고갈까지 단계적으로 원인을 추적한다.
#Linux#Disk#Troubleshooting
2026.06.18
1339
Infra3분 읽기
Docker 이미지 용량 줄이기 — 멀티스테이지 빌드
1GB 넘는 Node 이미지를 100MB대로. 멀티스테이지·alpine·.dockerignore·레이어 순서로 빌드 도구를 최종 이미지에서 뺀다.
#Docker#Optimization#DevOps
2026.06.17
1338
Infra2분 읽기
Let's Encrypt 인증서 자동 갱신, 만료로 사이트 죽이지 않기
90일 인증서는 자동 갱신이 핵심. certbot 타이머 동작 확인, 갱신 후 nginx reload, dry-run 점검까지.
#HTTPS#TLS#certbot
2026.06.17
1337
Infra2분 읽기
nginx 502 Bad Gateway, 원인부터 잡기
502는 nginx가 업스트림(앱)에서 정상 응답을 못 받았다는 뜻. 앱 다운·소켓 경로·타임아웃·권한 순으로 점검한다.
#nginx#Reverse Proxy#Debugging
2026.06.17
1336
Database2분 읽기
무중단으로 컬럼 추가하기 — 안전한 마이그레이션
NOT NULL+DEFAULT를 큰 테이블에 한 번에 걸면 잠금으로 장애가 난다. 단계적(expand-contract) 마이그레이션 절차.
#Migration#PostgreSQL#ZeroDowntime
2026.06.16
1335
Database2분 읽기
소프트 삭제 vs 하드 삭제, 무엇을 선택할까
deleted_at 컬럼으로 숨기는 소프트 삭제는 복구·감사에 좋지만 쿼리·유니크 제약·용량 부담이 따른다. 기준 정리.
#Database#SoftDelete#Design
2026.06.16
1334
Database2분 읽기
EXPLAIN ANALYZE 읽는 법 — 느린 쿼리 진단
Seq Scan·Nested Loop·actual time·rows 추정 오차. EXPLAIN ANALYZE에서 진짜 병목을 찾는 읽기 순서.
#PostgreSQL#EXPLAIN#Performance
2026.06.16
1333
Database2분 읽기
복합 인덱스 컬럼 순서, 왜 중요한가
복합 인덱스 (a,b)는 a로 시작하는 조건엔 쓰이지만 b만으론 못 탄다. 등호·범위·정렬을 고려한 순서 설계.
#Index#PostgreSQL#Performance
2026.06.15
1332
Database2분 읽기
DB 커넥션 풀 사이즈, 크게 잡을수록 좋은 게 아니다
풀을 무작정 키우면 DB가 컨텍스트 스위칭으로 더 느려진다. 코어 수 기반 공식과 서버리스 환경의 함정.
#Database#ConnectionPool#Performance
2026.06.15
1331
Database2분 읽기
Redis 캐시 무효화 전략과 흔한 함정
"캐시 무효화는 컴퓨터과학 2대 난제." TTL·쓰기 시 무효화·캐시 스탬피드·일관성 트레이드오프를 실무 기준으로.
#Redis#Cache#Performance
2026.06.15
1330
Database2분 읽기
트랜잭션 격리수준과 데드락, 실무 기준
Read Committed로 충분한 경우가 대부분이지만, 잔액·재고는 더 강한 격리나 잠금이 필요하다. 데드락 회피 원칙까지.
#Transaction#Isolation#Deadlock
2026.06.14