개발 환경에서 자주 막히는 에러 응급처치표: 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()가 False | CPU 전용 빌드인지, 드라이버가 보이는지 | 아니오 | CUDA False 해결 |
브라우저 콘솔 No Access-Control-Allow-Origin | 서버 응답 헤더와 프리플라이트 | 아니오 | CORS 에러 해결 |
Pod가 CrashLoopBackOff, ImagePullBackOff | kubectl 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 패키지처럼 실행 파일을 맞춰서 설치하면 이 불일치를 줄일 수 있다.
확인하지 못한 것
- 표에서 “아니오”로 표시한 다섯 항목은 이 글에서 재현하지 않았다. 각 글의 설명을 참고한다.
- 윈도우와 맥에서의 증상과 해결 명령.