블로그
-
Linux 디스크 full vs inode full 해결 순서 | 용량·아이노드 트러블슈팅
“No space left on device”가 떴을 때 df -h와 df -i로 블록 부족과 inode 고갈을 먼저 구분하고, 큰 디렉터리·작은 파일이 몰린 경로·Docker 잔여물·삭제됐지만 열려 있는 파일(lsof +L1)을 차례로 찾아 정리하는 순서를 다룹니다.
-
프로그래밍 언어별 흔한 에러 해결 가이드 | C++, Python, Java, JavaScript
C++ 세그폴트와 undefined reference, Python IndentationError·TypeError, Java NullPointerException, JavaScript의 undefined 속성 접근과 this 바인딩까지 언어별로 자주 만나는 에러의 원인과 해결 코드를 보여줍니다.
-
메모리 누수 찾기: 프로파일러 선택과 재현 시나리오 | Valgrind·ASan·Heaptrack
메모리가 계속 늘어나는 서비스에서 C++는 ASan·LSan, Valgrind, Heaptrack, Python은 tracemalloc과 memory_profiler, Node.js는 힙 스냅샷으로 누수를 찾는 방법을 보여줍니다. 재현 시나리오를 문서화하는 법과 누수와 단편화의 구분도 다룹니다.
-
Git rebase interactive 사용법 | pick·squash·fixup·충돌 해결·실수 복구
PR을 올리기 전 지저분한 커밋을 git rebase -i로 정리하는 방법을 pick, squash, fixup, reword, edit 명령별로 보여줍니다. autosquash와 git add -p로 큰 커밋을 쪼개는 법, 리베이스 중 충돌 해결과 reflog 복구도 다룹니다.
-
Go context로 타임아웃·취소 처리하기: WithTimeout, WithCancel, HTTP 서버 종료
Go의 context.WithTimeout으로 DB와 외부 API 호출에 상한을 걸고, WithCancel로 한 단계가 실패하면 나머지 워커를 멈추고, HTTP 서버에서 요청 컨텍스트와 Shutdown 컨텍스트를 따로 쓰는 방법을 코드로 보여줍니다. 세 API의 선택 기준도 다룹니다.
-
Kubernetes Pod가 안 뜰 때: CrashLoopBackOff·ImagePullBackOff·Pending 원인 찾기
Kubernetes Pod 트러블슈팅. CrashLoopBackOff, ImagePullBackOff, Pending 상태의 흔한 원인과 kubectl logs·describe·events로 원인을 찾는 순서, 원인별 해결 방법을 정리합니다.
-
C++ TLS 통신: OpenSSL과 Asio 연동, 인증서 관리, mTLS, 흔한 SSL 에러
TLS 핸드셰이크 흐름을 짚은 뒤 Asio의 ssl::stream과 순수 OpenSSL로 각각 에코 서버·클라이언트를 구현합니다. 자체 서명·CA 인증서 생성, mTLS 클라이언트 인증 설정, 인증서 만료·호스트명 불일치·체인 누락 같은 SSL 에러 대처도 다룹니다.
-
C++로 로드 밸런서 구현하기: Round-Robin·Least Connections·Consistent Hashing, 헬스 체크
특정 서버에 트래픽이 몰리거나 한 대가 죽으면 502가 나는 문제를 C++ 로드 밸런서로 풀어 봅니다. 라운드 로빈, 가중치, 최소 연결, Consistent Hashing 구현과 Asio TCP 프록시, 비동기 헬스 체크와 서킷 브레이커, 빈 백엔드 목록 같은 경계 조건을 다룹니다.
-
C++로 10GB 파일 올리기: S3 멀티파트 업로드, MinIO, 재시도·진행률, CDN과 서명 URL
C++로 S3 멀티파트 업로드를 구현해 10GB 파일도 메모리 폭발 없이 병렬 처리하는 방법을 정리합니다. MinIO 로컬 스토리지, 재시도·백오프, 진행률 표시, CDN 캐시 무효화, 서명된 URL까지 다룹니다.
-
바이브 코딩을 제대로 쓰는 법: Cursor·Copilot·Claude의 컨텍스트 수집과 검증 습관
Cursor·Copilot·Claude 같은 AI 코딩 도구가 LSP와 FIM 완성 모델, 컨텍스트 수집 파이프라인으로 어떻게 제안을 만드는지 살펴보고, 그 구조를 알면 프롬프트와 결과 검증 습관을 어떻게 바꿔야 하는지 설명합니다.