← 전체 글로 돌아가기

서버 운영

로컬에선 작동하는데 서버 푸시 알림이 안 올 때

푸시 알림 실패는 인증, 권한, 설정 문제인 경우가 대부분. 환경 차이를 체계적으로 확인하면 원인이 명확해진다.

푸시 알림은 정말 엄격하다. 로컬 테스트 환경에선 완벽하게 작동하는데 서버에 올리면 조용히 실패한다. 에러 메시지도 잘 안 나온다. 그냥 누른다.

처음부터 정답을 맞히려고 하다 보면 오히려 시간이 길어진다. 하나씩 확인하는 게 빠르다.

로그부터 본다

sudo ss -lntp
df -h
sudo journalctl -n 80

서버에서 실제로 푸시를 보내려 할 때 로그에 뭐가 나오는지 본다. 외부 푸시 서비스 API 호출 에러가 나오나? 인증 실패인가? 네트워크 타임아웃인가?

권한과 환경변수

로컬 개발 때는 내 계정으로 돌아가지만, 서버는 애플리케이션 유저로 돌아간다. 파일 접근 권한이 다르거나, 환경변수가 빠져 있거나, API 키가 잘못됐을 수 있다.

특히 푸시 알림 서비스 인증 정보는 환경변수로 관리되는데, 배포 자동화에서 이게 빠지는 경우가 있다.

한 번에 하나씩 확인

  1. 먼저 같은 상황에서 푸시를 다시 시도해본다.
  2. 로그나 응답에서 뭐가 달라졌는지 기록한다.
  3. 하나씩 설정을 수정하고 다시 시도한다.

이렇게 하면 뭐가 실제로 문제였는지 알 수 있다. 그리고 그 기록이 있으면 다음에 비슷한 문제가 나올 때 절반의 시간만 들인다.