개발 환경에서 자주 막히는 에러 응급처치표: pip, git, apt, MySQL, CUDA, CORS, Kubernetes

이 글의 핵심

개발 환경에서 하루에 한 번쯤 만나는 에러를 증상 순서로 모았습니다. git의 non-fast-forward 거절, 한글 파일명 깨짐, 파이썬 ModuleNotFoundError는 우분투 컨테이너에서 재현해 해결 명령까지 확인했고, 나머지는 자세한 글로 연결했습니다. 확인하지 못한 항목은 표에 구분해 적었습니다.

개발 환경 에러는 원인이 단순해도 처음 만나면 시간을 많이 쓴다. 이 글은 흔한 에러를 증상 순서로 모으고, 직접 재현한 것과 아닌 것을 구분해 적는다. 재현은 우분투 24.04 컨테이너(aarch64, git, 파이썬 3.12)에서 했다.

응급처치표

증상가장 먼저 확인할 것이 글에서 재현자세한 글
git push 후 ! [rejected] main -> main (fetch first)원격에 내가 없는 커밋이 있는가 → git pull --rebase예push rejected 해결
git status에 \354\225\210...한글 파일명 인용 설정 → core.quotepath=false예git 한글 깨짐 해결
ModuleNotFoundError: No module named 'x'설치한 pip와 실행한 python이 같은 환경인가예ModuleNotFoundError 해결
apt가 Could not get lock다른 apt/dpkg 프로세스가 실행 중인가아니오apt lock 해결
MySQL ERROR 1045 Access denied (root)인증 플러그인(auth_socket)아니오우분투 MySQL root 접속
torch.cuda.is_available()가 FalseCPU 전용 빌드인지, 드라이버가 보이는지아니오CUDA False 해결
브라우저 콘솔 No Access-Control-Allow-Origin서버 응답 헤더와 프리플라이트아니오CORS 에러 해결
Pod가 CrashLoopBackOff, ImagePullBackOffkubectl describe pod의 Events아니오Kubernetes Pod 문제 해결

직접 재현한 것

git push가 거절될 때

두 개의 클론(a, b)이 같은 원격 저장소의 main을 쓰게 했다. b가 먼저 새 커밋을 푸시한 뒤 a가 자기 커밋을 푸시하자 ! [rejected] main -> main (fetch first)와 “Updates were rejected because the remote contains work that you do not have locally” 힌트가 나왔다. git pull --rebase origin main 다음에 git push를 하자 성공했다. 원격 이력을 덮어쓰는 강제 푸시(--force)를 쓰지 않고 해결하는 경로다.

한글 파일명이 8진수로 보일 때

안녕.txt를 추가하고 git status --short를 보면 A "\354\225\210\353\205\225.txt"로 나왔다. git -c core.quotepath=false status --short로 보면 A 안녕.txt로 정상이었다. 파일 자체가 깨진 것이 아니라 출력 방식 때문이다. 영구 설정은 git config --global core.quotepath false다.

모듈을 설치했는데 못 찾을 때

시스템 파이썬에서 import requests를 하자 ModuleNotFoundError: No module named 'requests'가 나왔다. python3 -m venv로 가상 환경을 만들면 sys.prefix가 /tmp/v로 달라지고 그 안의 pip는 그 환경 전용이다. 시스템 python3는 /usr/bin/python3, pip3는 /usr/bin/pip3였다. 에러의 대부분은 “pip로 설치한 환경”과 “실행한 python”이 다른 데서 온다. python3 -m pip install 패키지처럼 실행 파일을 맞춰서 설치하면 이 불일치를 줄일 수 있다.

확인하지 못한 것

  • 표에서 “아니오”로 표시한 다섯 항목은 이 글에서 재현하지 않았다. 각 글의 설명을 참고한다.
  • 윈도우와 맥에서의 증상과 해결 명령.