Notice
Recent Posts
Recent Comments
코드 위의 하루 (A Day on the Code)
🧨로그인 기능 구현 중 오류 해결 모음집 (JWT + Django + Docker) 본문
Docverse 프로젝트에서 이메일 기반 JWT 로그인 기능을 구현하면서 수많은 오류와 마주했다. 이 글은 그 과정을 정리한 오류 해결 모음집으로, 나와 같은 환경에서 개발하는 사람들에게 도움이 되기를 바라는 마음으로 작성한다.
✅ 구현 목표
- 사용자 정의 User 모델 기반 회원가입 구현
- 이메일 기반 JWT 로그인 구현
- Django + MySQL + Docker 환경에서 마이그레이션까지 정상 동작 확인
🔥 겪었던 주요 오류들과 해결 과정
1. PyMySQLcryptography 오류
Could not find a version that satisfies the requirement PyMySQLcryptography
- 원인: requirements.txt에 오타로 인해 존재하지 않는 패키지 PyMySQLcryptography가 추가되어 있었음.
- 해결:
sed -i "/PyMySQLcryptography/d" requirements.txt
2. cryptography 모듈 누락 오류
RuntimeError: 'cryptography' package is required for sha256_password
- 원인: MySQL에서 caching_sha2_password 인증 방식 사용 시 cryptography 모듈 필요.
- 해결:
echo "cryptography" >> requirements.txt
3. docker build 실패 - .sock 파일 포함
failed to checksum file db/mysql.sock
- 원인: build context에 MySQL의 .sock 파일이 포함되어 있음.
- 해결:
rm -rf db/
docker volume prune -f
4. 마이그레이션 중 참조 테이블 누락 오류
OperationalError: Failed to open the referenced table 'users_user'
- 원인: users_user 테이블이 존재하지 않는데 admin 앱에서 해당 테이블을 참조함.
- 해결:
1. users 앱 마이그레이션 먼저 생성
docker-compose exec web python manage.py makemigrations users
2.그 다음 migrate 실행
5. django_admin_log 테이블 중복 오류
OperationalError: (1050, "Table 'django_admin_log' already exists")
- 원인: 수동 삭제 없이 마이그레이션을 반복해 테이블이 중복 생성됨.
- 해결:
DROP TABLE django_admin_log;
DELETE FROM django_migrations WHERE app='admin';
6. 인증 오류 - 로그인 실패
{"detail": "유효하지 않은 이메일 또는 비밀번호입니다."}
- 원인: DB에 가입된 사용자가 존재하지 않음.
- 해결:
- 회원가입 API(/api/users/signup/)를 먼저 실행하여 사용자 등록
- 이후 JWT 로그인(/api/auth/login/) 정상 동작 확인
✨ 느낀 점
- "로그인 기능 하나에 이렇게 많은 오류가 생길 줄 몰랐다."
- Docker + Django + JWT를 조합해서 처음으로 직접 구현하며 얻은 최대 교훈은 **“순서가 중요하다”**는 것이다.
- 특히 User 모델 마이그레이션 순서, DB 상태 확인, 컨테이너 상태 재점검 등 "지금 어디가 문제인지 끊임없이 의심하고 시도해보는 태도"가 정말 중요했다.
- 처음엔 무서웠던 오류 메시지들이 이제는 조금씩 익숙해지고 있다. 🧠
🧾 정리
문제 | 원인 | 해결 방법 |
패키지 설치 오류 | 오타 | requirements.txt 수정 |
인증 모듈 오류 | cryptography 누락 | 패키지 추가 |
docker build 실패 | .sock 포함 | db 디렉토리 정리 |
참조 테이블 없음 | 마이그레이션 순서 | users 먼저 migrate |
테이블 중복 오류 | 중복 마이그레이션 | DB에서 DROP |
로그인 실패 | 회원가입 누락 | 사용자 등록 먼저 |
단단히 삽질한 만큼, 다음에 같은 기능을 구현할 땐 더 빠르고 정확하게 해낼 수 있을 거라 믿는다.
'⚙️ 오류 해결 모음집' 카테고리의 다른 글
🐞 마이페이지 기능 구현 중 발생한 오류들 (2) | 2025.05.25 |
---|---|
🐛 마이페이지 기능 구현 중 겪은 오류 해결 모음 (0) | 2025.05.25 |
🐳 Docker가 Engine Starting에서 멈췄을 때의 해결기 (WSL2 삽질 로그) (0) | 2025.05.17 |
Git으로 인한 파일 누락 & 오류 해결 모음집 (0) | 2025.05.12 |
회원가입 구현 & 확인 과정 오류 모음집 (0) | 2025.05.12 |