← 전체 글로 돌아가기

웹 개발

권한 문제로 사용자 입력이 막힐 때

웹 애플리케이션에서 권한 관련 에러로 사용자 입력이 실패할 때 확인하는 방법을 정리했다.

웹 개발하다 보면 로컬에서는 잘 작동하는 기능이 배포 후 특정 사용자한테서만 입력 실패 오류가 난다는 리포트를 받을 수 있다. 이게 권한 문제인지, 데이터베이스 제약 때문인지 파악하려면 체계적인 확인 순서가 필요하다.

로그부터 확인하기

먼저 서버 로그를 살펴본다. 권한 거부 메시지(403, Forbidden)가 나왔는지, 아니면 다른 에러인지 확인한다.

npm run build

로컬에서 같은 조건으로 빌드하고 테스트해보면, 빌드 단계에서 문제를 발견할 수도 있다.

요청 흐름 추적

권한 체크가 언제 이루어지는지 파악하는 게 중요하다:

  • API 요청 시점인가
  • 데이터베이스 쿼리 시점인가
  • 페이지 렌더링 시점인가

Fetch 요청의 요청 헤더와 응답 코드를 확인해서 정확히 어디서 실패하는지 좁혀나간다.

권한 설정 비교

정상인 사용자와 문제가 있는 사용자의 권한 설정을 직접 비교한다. 데이터베이스에서 두 사용자의 role, permission, group 등을 확인해서 차이점을 찾는다.

수정 전 확인 사항

권한 관련 코드를 수정하기 전에:

  1. 기존 사용자들이 여전히 정상적으로 작동하는지 재확인
  2. 같은 오류가 다른 사용자에게도 발생하는지 확인
  3. 권한 설정 변경 이력 확인

작은 변경도 많은 사용자에게 영향을 줄 수 있으니, 변경 사항을 명확히 기록한 후 진행한다.