← 전체 글로 돌아가기

웹 개발

배포 후 데이터가 안 보일 때 확인 순서

배포한 후 데이터베이스 관계가 제대로 표시되지 않을 때 체계적으로 문제를 좁혀가는 방법.

배포 후 데이터가 갑자기 안 보이면 황급하기 쉽다. 하지만 차분히 확인 순서를 따르면 원인을 빠르게 찾을 수 있다.

실제 데이터 존재 여부 확인

화면에 안 보인다고 해서 데이터가 없는 건 아니다. 데이터베이스에 실제로 레코드가 있는지 먼저 확인한다. 운영 환경의 데이터베이스 도구나 쿼리 실행기에 직접 접속해서 조회한다.

# 예: 사용자와 주문의 관계
SELECT * FROM users WHERE id = ?;
SELECT * FROM orders WHERE user_id = ?;

데이터가 있다면 문제는 표시 로직이다.

API 응답 확인

데이터베이스에 데이터가 있는데도 API 응답에 없다면 쿼리나 필터링을 의심한다. 브라우저 개발자 도구의 Network 탭에서 실제 API 응답을 본다.

응답이 빈 배열이라면:

  • WHERE 조건이 너무 좁혀 있지 않은가?
  • 관계(JOIN)가 제대로 설정되어 있나?
  • 권한 필터가 예상 밖으로 동작하지 않나?

각각을 체크하면서 응답이 달라지는 지점을 찾는다.

로컬과 운영 환경 데이터 비교

로컬에서는 잘 보이는데 운영에서 안 보인다면 데이터 자체가 다르거나, 환경 설정이 다를 수 있다.

  • 운영 데이터베이스와 로컬 데이터베이스 상태 확인
  • 환경 변수 (데이터베이스 접속 정보 등) 일치 여부
  • 마이그레이션이 모두 적용됐는지 확인

마이그레이션이 누락되면 테이블이나 컬럼이 없어서 당연히 데이터가 안 보인다.

권한과 필터 로직

다중 테넌트 시스템이거나 권한 기반 필터링이 있다면, 현재 사용자가 데이터를 볼 권한이 있는지 확인한다. 권한 체크가 로그인 세션에 의존한다면 세션이 제대로 전달되고 있나 본다.

임시로 권한 필터를 빼고 다시 배포해본다. 그러면 데이터가 보인다면 확실히 권한 로직 문제다.

해결 후 기록

문제가 해결되면 다음을 적어둔다:

  • 어디서 데이터가 끊겼는가 (데이터베이스 / API / 클라이언트)
  • 원인이 무엇인가 (쿼리 / 마이그레이션 / 권한 등)
  • 어떤 값이 바뀌니 정상이 되었는가

같은 실수를 반복하지 않기 위해 배포 전 체크리스트에 추가한다.