이번 주는 새벽 깸이 많았다. 자동화로 돌리고 있는 자율 워커가 4시간 간격으로 운영서버를 들여다보다가, 한 가지 이상한 숫자를 잡아냈다. DanFish 백엔드의 PM2 재시작 카운트가 376 회. 4개월 가까이 이게 계속 쌓이고 있었다는 사실을, 이제야 제대로 들여다본 한 주 이야기다.
👋 오늘의 개발 근황
1인 개발자가 운영하는 낚시 지도 서비스 DanFish 는 운영서버에서 PM2 로 노드 백엔드를 돌리고 있다. 안정성은 늘 신경 쓰는 영역이라 4 개 API 에 워치독을 박아 뒀는데, 그 워치독 자체가 "문제" 였다는 게 이번 진단의 핵심이었다.
🎯 이 프로젝트는 무엇인가
DanFish 는 한국 연안·내수면 낚시 포인트와 실시간 낚시지수를 함께 보여주는 서비스다. 웹과 안드로이드, 그리고 갤럭시 워치 같은 웨어 OS 까지 같이 운영하고 있다. 사용자가 늘어날수록 "끊김 없이 떠 있는 것" 자체가 가장 중요한 가치라, 백엔드 안정성에 가장 많은 시간을 쓰고 있다.
🛠️ 이번 주 뭐가 바뀌었나
- 새벽 자율 워커 25번째 깸에서 PM2 재시작 376 회의 진짜 원인을 잡았다.
/api/health같은 가벼운 엔드포인트가 있는데, 워치독은/api/fishing-spots/available-dates같은 DB 풀스캔 엔드포인트를 3분마다 때리고 있었다. - 정각마다 도는 바다낚시지수(KHOA) 수집 작업과 워치독 호출이 겹치면서 DB 커넥션 풀이 일시 포화 → curl 5초 타임아웃 → 즉시 재시작, 이라는 의미 없는 루프가 4개월간 ~880 회 누적되어 있었다.
- 새벽 26번째 깸에서는 4시간 동안 새 추가 사고 0건을 확인하며 진단을 cross-confirm 했고, "엔드포인트만 가벼운 걸로 바꾸고 1회 실패는 무시" 옵션을 운영 결재 안건으로 박았다.
- 이 작업은 모두 운영 반영 0 건, 메모리·계획서·게시판 SOT 갱신만 했다. 사용자에게는 변화가 없지만, 다음 한 마디로 4개월 부채가 박멸될 준비가 끝났다.
📸 화면으로 보는 변화
💭 만들면서 느낀 점
1인 개발의 가장 큰 함정은 "잘 돌아가는 것처럼 보이는 것" 이라는 사실을 이번 주에 다시 배웠다. PM2 가 자동으로 재시작해 주니 사용자 입장에서는 잘 돌아간다. 그러나 사용자가 정각에 접속했을 때 5~30 초 응답 없는 순간이 4개월 동안 매일 반복되고 있었던 것이다. 워치독이 "문제를 가리고" 있었던 셈이다. 자동화는 강력하지만, 자동화가 만든 통계 자체를 의심하는 깸이 가끔은 필요하다는 점이 이번 진단의 가장 큰 교훈이었다.
🔗 직접 써보기
주말 낚시 한 번 가시려는 분들은 DanFish 바로가기 로 한 번 들러 보시면 좋다. 실시간 낚시지수와 포인트 정보가 함께 떠 있다. 사용 중에 어색하거나 느린 구간이 있으면 댓글로 알려 주시면 다음 깸 때 잡아 보겠다. 1인 개발이라 모든 피드백은 정말 직접 본다.
'단감의 개발일지' 카테고리의 다른 글
| DanTravel 개발일지 | 자동화 워커가 6주 묵은 인증 부채를 찾아낸 6월 첫 월요일 (0) | 2026.06.01 |
|---|---|
| 단감 DanFish 한 주 개발 근황 | 친지 카톡 피드백이 설계서 3건으로 박힌 이야기 (1) | 2026.05.29 |
| 1인 개발자가 웨어OS 자동 배포를 한 달 만에 풀어낸 한 주 | DanFish 5월 셋째주 개발일지 (0) | 2026.05.20 |
| 단펫 5월 둘째주 1인 개발일지 | Google 로그인 0% 버그 핫픽스부터 beta 검토 제출까지 (0) | 2026.05.18 |
| 단펫 5월 첫 2주 1인 개발 일지 | Play Store 출시 자동화 96%와 로그인 0% 버그 핫픽스 후기 (0) | 2026.05.13 |