🗂️ Docverse
🧪 Docverse 기능 테스트 로그: 회원가입 → 로그인 → 마이페이지까지
code.with.siyeon
2025. 5. 25. 19:59
Docverse 백엔드 개발에서 핵심 사용자 인증 기능인 회원가입 → 로그인 → 마이페이지 기능을 직접 설계하고 구현한 뒤, 이를 순차적으로 테스트하여 성공적으로 작동함을 검증했다.
이번 개발은 단순한 API 작성이 아닌, 실제 서비스 사용자 플로우에 따라 JWT 기반 인증 체계를 구성하고 테스트한 의미 있는 작업이었다. 특히 각 기능마다 다음과 같은 부분을 구체적으로 확인했다:
- ✅ 어떤 API URL로 요청을 보냈는지
- ✅ 어떤 방식(POST / GET / PUT / DELETE)으로 요청했는지
- ✅ 요청 시 포함된 헤더 정보 및 JWT 토큰 처리 방식
- ✅ 정상적인 응답이 어떤 형태로 오는지
- ✅ 실패 상황에 대한 예외 응답이 올바르게 처리되는지
단순히 성공 여부만 확인하는 것이 아니라, 중복 데이터 처리 / 필수 항목 누락 / 권한 문제 등 다양한 예외 케이스까지 철저히 점검하면서 백엔드 API의 신뢰성과 안정성을 높였다.
이 글에서는 회원가입 → 로그인 → 마이페이지의 각 기능을 어떻게 테스트했는지, 실제로 어떤 요청을 보내고 어떤 응답을 받았는지를 구체적으로 기록한다.
✅ 1. 회원가입 기능 테스트
- API URL: POST /api/users/signup/
- 요청 데이터:
{
"email": "testuser@example.com",
"password": "TestPassword123!",
"nickname": "테스트유저"
}
- 정상 응답:
{
"message": "회원가입이 완료되었습니다."
}
- 테스트 결과:
- 중복 이메일/닉네임 체크 정상 작동
- 유효성 검사 누락 시 에러 메시지 정상 출력됨
- 데이터베이스에 users_user 테이블에 새로운 유저 생성 확인
✅ 2. 로그인 (JWT 발급) 테스트
- API URL: POST /api/auth/login/
- 요청 데이터:
{
"email": "testuser@example.com",
"password": "TestPassword123!"
}
- 정상 응답:
{
"access": "JWT_ACCESS_TOKEN",
"refresh": "JWT_REFRESH_TOKEN"
}
- 추가 테스트:
- 토큰 발급 확인 후 Authorization: Bearer ACCESS_TOKEN 헤더로 인증 필요 API 접근 테스트
- /api/auth/token/refresh/ 경로로 리프레시 토큰 갱신 성공 확인
✅ 3. 마이페이지 기능 테스트
🔎 3-1. 마이페이지 조회
- API URL: GET /api/users/mypage/
- 요청 헤더: JWT Access Token 필요
- 정상 응답 예시:
{
"email": "testuser@example.com",
"nickname": "테스트유저",
"introduction": "",
"date_joined": "2025-05-25T12:34:56Z"
}
🛠 3-2. 마이페이지 수정
- API URL: PUT /api/users/mypage/
- 요청 데이터:
{
"nickname": "테스트수정",
"introduction": "안녕하세요! 수정 테스트입니다."
}
- 정상 응답:
{
"message": "정보가 수정되었습니다."
}
🔐 3-3. 비밀번호 변경
- API URL: PUT /api/users/password/
- 요청 데이터:
{
"old_password": "TestPassword123!",
"new_password": "NewPassword456!"
}
- 응답:
{
"message": "비밀번호가 변경되었습니다."
}
❌ 3-4. 회원 탈퇴
- API URL: DELETE /api/users/delete/
- 응답:
{
"message": "계정이 삭제되었습니다."
}
🙌 느낀 점
- 기능별로 순서대로 테스트하면서 JWT 인증 흐름의 구조를 명확히 이해하게 되었다.
- 처음에는 MySQL 컨테이너와 연결되지 않아 OperationalError나 table doesn't exist와 같은 오류를 겪었지만, 마이그레이션과 Docker 재정비를 통해 모두 해결했다.
- 특히 마이페이지 기능은 CRUD를 모두 포함하고 있어서, 백엔드에서 API 설계 → 시리얼라이저 → 뷰 → URL 라우팅 흐름까지 종합적으로 익히는 데 많은 도움이 되었다.
- 실제 사용자 흐름을 따라가며 테스트하는 것이 보안 처리, 유효성 검사, 에러 응답을 놓치지 않도록 하는 데 중요한 과정임을 깨달았다.