본문 바로가기

직접 만든 소프트웨어, 두 가지 개발 기록

구현 구조와 적용 범위, 확인한 기능과 남은 한계를 함께 기록합니다.

오류해결4

curl은 성공인데 HTTP 404일 때: 종료 코드와 응답 상태를 따로 확인 curl의 종료 코드 0만으로 HTTP 요청이 업무상 성공했다고 판단하지 마세요. HTTP 404 응답을 정상적으로 받았을 때 기본 curl은 0으로 끝날 수 있습니다. HTTP 오류를 실패로 처리하면서 본문도 남기려면 지원 버전의 --fail-with-body와 응답 코드를 함께 확인하세요.원인: 통신 처리 결과와 HTTP 의미를 하나로 본다프로세스가 응답을 받는 데 성공했다는 판단과, 서버가 요청한 자원을 제공했다는 판단은 다릅니다. HTTP 4xx·5xx와 연결·DNS·TLS 실패를 같은 오류로 처리하면 잘못된 재시도나 배포 성공 판정으로 이어질 수 있습니다. 자동화에서는 종료 상태와 HTTP 코드와 본문을 각각 기록하는 편이 원인을 좁히기 쉽습니다.조회 방식HTTP 404의 처리본문 처리기본 cu.. 2026. 10. 23.
git diff가 비어 있는데 변경이 남을 때: 작업 트리·인덱스·HEAD 비교 git add 뒤 일반 git diff가 비어 있다면 변경이 사라졌다고 판단하지 말고 git diff --cached를 확인하세요. 기본 diff는 작업 트리와 인덱스를, --cached는 인덱스와 HEAD를 비교합니다. 먼저 상태와 비교 범위를 읽고 되돌리기 명령은 사용하지 않는 것이 안전합니다.원인: diff가 비교하는 두 상태를 놓친다같은 파일도 작업 트리, 스테이징 영역인 인덱스, 마지막 커밋인 HEAD에 서로 다른 내용이 있을 수 있습니다. git add는 이후 커밋할 내용을 인덱스에 올립니다. 그 뒤 작업 파일을 다시 바꾸지 않았다면 기본 diff는 비어 있을 수 있지만, 인덱스와 HEAD의 차이는 남습니다.조회 명령비교 범위읽을 의미git diff작업 트리 ↔ 인덱스아직 스테이징하지 않은 수.. 2026. 10. 23.
gitignore가 적용되지 않을 때: 추적 파일과 규칙 일치를 따로 확인 이미 Git이 추적하는 파일에는 .gitignore를 추가해도 추적이 자동 해제되지 않습니다. 먼저 git ls-files로 추적 상태를 보고, git check-ignore로 규칙을 확인하세요. 두 질문을 섞으면 정상 동작을 캐시 오류로 오해하기 쉽습니다.원인: 추적 상태와 무시 규칙은 다른 문제다무시 규칙은 의도적으로 추적하지 않을 파일에 사용합니다. 이미 인덱스에 있는 파일을 계속 수정하고 있다면 규칙을 추가해도 변경이 보일 수 있습니다. 먼저 저장소 루트와 대상 경로를 확인하고, 파일 내용에 비밀값이 있으면 출력이나 화면 공유에 포함하지 마세요.관찰확인할 질문다음 단계ls-files에 파일 표시이미 추적 중인가추적 유지 필요성 검토미추적인데 규칙 불일치패턴·위치가 맞나check-ignore 진단규.. 2026. 10. 22.
Git unrelated histories 해결: 원격 주소와 공통 조상부터 확인 refusing to merge unrelated histories는 두 이력의 공통 조상을 찾지 못한 상황에서 나타날 수 있습니다. 먼저 저장소·원격 주소·비교 대상이 맞는지 확인하세요. 의도적으로 독립된 이력을 합치는 경우에만 --allow-unrelated-histories를 검토하고, 원본 보존과 충돌 검토를 먼저 준비합니다.원인: 같은 파일이 있어도 같은 커밋 이력은 아니다로컬과 원격에서 각각 새 저장소를 초기화했거나 다른 저장소를 연결하면 파일 이름이 비슷해도 이력이 독립적일 수 있습니다. 오류를 없애기 위해 곧바로 강제 푸시하거나 .git을 삭제하면 보존해야 할 기록을 잃을 수 있습니다.상태우선 확인피할 조치원격 주소 불일치저장소 선택무조건 병합이력 제한 가능clone 범위독립 이력 단정독립.. 2026. 10. 21.