NovaCraftX Nova Craft X
알람킹 개발일지

발송은 성공했는데 알림은 절반만 도착했다

NovaCraftX
Mar 22, 2026

저녁 8시쯤 대시보드를 훑어보다가 이상한 걸 발견했습니다. 푸시 발송 건수가 평소의 절반 수준이었어요. 그런데 에러 로그는 깨끗했고, 서버 헬스체크는 전부 정상이었습니다.

보통 발송이 줄면 에러가 같이 늡니다. 둘이 따로 움직이는 건 이상한 신호였어요.

왜 넘길 수 없었나

알람킹(AlarmKing)은 코인 시세 알람이나 주식 가격 알람처럼, 사용자가 계속 화면을 볼 수 없는 순간을 대신 지켜보다가 조건부알람을 보내주는 트레이딩어플입니다. 그 타이밍에 알람이 안 울리면, 이 앱에 중요한 순간을 맡기는 게 의미가 없어져요.

처음엔 시장이 조용해서 트리거가 적었나 싶었습니다. 그런데 직접 설정해둔 테스트 조건도 울리지 않았어요. 분명히 발동했어야 할 조건이었는데.

트레이딩용알람이나 트레이더알람에서는 이런 한 번의 누락도 신뢰에 직접 영향을 줍니다. 에러 없이 조용히 실패하는 장애는 가장 늦게 발견되고, 사용자는 묻지 않고 그냥 앱을 삭제합니다.

처음에 의심한 것들

발송 로직부터 확인했습니다. 발송 이력을 살펴봤을 때 발송 시도 자체는 정상으로 기록되어 있었어요. 요청이 나갔고, 외부 푸시 서비스(FCM, APNs 등)의 응답도 성공이었습니다.

비트코인 알람 어플 테스트용으로 설정해둔 조건도 마찬가지였어요. 디바이스 수신 쪽 설정을 확인했지만 특이한 점은 없었습니다.

발송 성공 응답을 받았는데 알림은 도착하지 않았습니다. 이 간격이 어디서 생기는지가 문제였어요.

의심이 바뀐 지점

발송 시도와 실제 도달 사이를 더 좁혀봤습니다. 서버에서 요청은 보냈고, 응답도 받았는데 실제 기기에는 아무것도 안 온 상황이었어요.

외부 푸시 서비스의 인증 토큰 상태를 확인했을 때, 만료 직전 구간에 있었습니다. 완전히 만료된 건 아니었어요. 유효 기간이 남아 있는 상태였습니다.

이 시점에서 토큰 상태와 발송 실패 사이에 연관이 있을 가능성이 높다고 봤어요.

실험으로 좁혀간 것

토큰을 강제로 갱신한 뒤 같은 조건으로 재발송했을 때, 알림이 정상적으로 도착했습니다. 갱신 전과 후의 차이가 명확했어요.

여기서 확인된 것은 이것까지입니다. 토큰 만료 직전 구간에서 발송 기록은 성공으로 남아 있었지만 실제 도달 건수가 크게 줄었고, 토큰 갱신 이후에는 정상적으로 회복됐습니다.

왜 이 구간에서 그런 동작이 생겼는지는 이번 조사에서 명확하게 확인하지 못했어요. 외부 서비스 공식 문서에도 이 케이스에 대한 설명은 없었습니다. 토큰 갱신이 증상을 해소했다는 것까지만 확인했어요.

무엇을 바꿨나

두 가지를 수정했습니다.

하나는 토큰 갱신 시점입니다. 만료 24시간 전에 자동으로 갱신하도록 스케줄러를 추가했어요. 이전까지는 만료 후 갱신하는 방식이었는데, 만료 직전 구간의 동작이 예상과 다를 수 있다는 걸 이번에 확인했으니까요.

다른 하나는 모니터링 방식입니다. 에러 카운트 대신, 일정 시간 동안 성공 도달 건수가 임계치 아래로 떨어지면 알림이 오도록 바꿨습니다. 에러가 없어도 발송이 정상적으로 이루어지고 있는지를 별도로 확인하는 구조예요.

이번 일이 바꾼 것

이전까지는 에러 로그가 없으면 정상이라고 생각했습니다.

지금은 그 기준이 달라졌어요. 에러가 없다는 건 에러가 감지되지 않았다는 것이지, 동작이 정상이라는 뜻이 아닙니다. 외부 서비스가 성공 응답을 돌려주면서도 실제로는 다르게 동작하는 구간이 있을 수 있어요. 정확한 이유를 이번에 다 파악하지는 못했지만, 그 가능성 자체를 확인했다는 게 이번 일의 핵심이었습니다.

알람킹 같은 조건부알람 어플에서는 알림이 실제로 도착했다는 걸 직접 추적하는 것과 에러가 없다는 걸 확인하는 게 별개의 일이에요. 이번 일이 그걸 다시 확인시켜줬습니다.

단 1초의 지연도 허용하지 않기 위해 집요하게 파고들었습니다.
당신이 잠든 새벽에도, 시장이 요동치는 순간에도 알람킹은 반드시 당신을 깨웁니다. 가장 확실한 조건부 알람을 지금 바로 경험해 보세요.