블로그
-
Git 머지 충돌 해결 예제 | 장기 리팩토링 브랜치를 main에 병합하는 순서
몇 달 동안 main과 따로 진행된 리팩토링 브랜치를 병합할 때 충돌이 쏟아지는 상황을 예제로, main을 리팩토링 브랜치로 역방향 머지하고 git status --porcelain 코드로 충돌을 분류한 뒤 기계적인 충돌과 로직 충돌을 나눠 푸는 방법, --ours와 -X ours의 차이, rerere·zdiff3·remerge-diff 활용법을 설명합니다.
-
Git rebase interactive 사용법 | pick·squash·fixup·충돌 해결·실수 복구
PR을 올리기 전 지저분한 커밋을 git rebase -i로 정리하는 방법을 pick, squash, fixup, reword, edit 명령별로 보여줍니다. autosquash와 git add -p로 큰 커밋을 쪼개는 법, 리베이스 중 충돌 해결과 reflog 복구도 다룹니다.
-
git 한글 깨짐 해결: git status 한글 파일명 \354\225\210, 커밋 메시지·diff 깨짐 원인별 정리
git status에 한글 파일명이 \354\225\210처럼 나오는 core.quotepath, 윈도우 PowerShell 코드페이지, git log 커밋 메시지 깨짐, macOS NFD 파일명, CP949 파일 diff 깨짐을 증상별로 구분해 고칩니다.
-
git push rejected 해결: fetch first·non-fast-forward·refusing to merge unrelated histories·divergent branches
git push가 (fetch first), (non-fast-forward)로 거부되는 이유와 merge·rebase 해결 순서, unrelated histories, divergent branches 설정, force-with-lease, GH006 보호 브랜치까지 다룹니다.
-
깃허브 SSH 키 등록 방법과 Permission denied (publickey) 해결: 윈도우·맥·리눅스
ssh-keygen -t ed25519로 키를 만들고 깃허브에 등록해 ssh -T로 확인하는 과정을 윈도우·macOS·리눅스별로 설명하고, Permission denied (publickey), Host key verification failed, 호스트 키 변경 경고, 22번 포트 차단, 계정 두 개 설정까지 다룹니다.
-
Go context로 타임아웃·취소 처리하기: WithTimeout, WithCancel, HTTP 서버 종료
Go의 context.WithTimeout으로 DB와 외부 API 호출에 상한을 걸고, WithCancel로 한 단계가 실패하면 나머지 워커를 멈추고, HTTP 서버에서 요청 컨텍스트와 Shutdown 컨텍스트를 따로 쓰는 방법을 코드로 보여줍니다. 세 API의 선택 기준도 다룹니다.
-
GStreamer 실전 가이드 | 파이프라인·C/Python·gst-launch로 멀티미디어 다루기
GStreamer 1.x로 재생·인코딩·스트리밍 파이프라인을 구성하는 방법을 정리합니다. Element·Pad·Caps 개념, gst-launch-1.0, C API, Python gi 예제, Bus 메시지·GST_DEBUG까지.
-
I/O 멀티플렉싱 비교: select·poll·epoll·kqueue·IOCP와 C10K 문제
Blocking I/O의 한계에서 출발해 select, poll, epoll, kqueue, IOCP의 동작 방식과 차이를 코드와 시간 복잡도로 설명하고, C10K 문제를 어떻게 풀었는지 다룹니다.
-
JavaScript 비동기 디버깅 예제 | Unhandled Rejection과 Promise 체인 에러 추적하기
간헐적으로 Unhandled Rejection만 남는 Node.js·Express 코드를 예로, 에러 핸들러가 빠진 Promise 체인에서 에러가 왜 사라지는지 재현하고, 비동기 스택 트레이스로 호출 위치를 찾는 조건, async/await 전환, 전역 핸들러, Express 에러 미들웨어, Sentry 연동, 타임아웃·재시도 패턴까지 설명합니다.
-
JSON 직렬화에서 데이터가 사라지는 경우: Date·BigInt·순환 참조, 검증, 대용량 성능
JSON.stringify/parse, json.dumps/loads부터 Date·BigInt·순환 참조 데이터 손실, Zod/Pydantic 검증, 대용량 페이로드 성능까지 언어 무관으로 정리한 직렬화 가이드.