본문 바로가기
  • 서핑하는 개발자의 블로그

Troubleshooting7

[Troubleshooting] 탈 만한 날을 "별로"라고 말하던 알고리즘 — 거짓음성, 과소평가의 순간들 이 글은 서핑 적합도 점수 엔진이 실제로는 탈 만한 날을 "별로"라고 과소평가하던 문제, 즉 거짓음성(False Negative)을 다룬 시리즈의 1편입니다. 앞서 거짓양성(위험한데 좋다고 한 것) 시리즈를 마쳤는데, 이번엔 정반대 방향의 오류를 잡는 이야기입니다. 규칙 기반 점수 시스템을 운영하면서 "경계값 근처에서 점수가 뚝 떨어지는" 현상을 겪어본 분이라면 공감할 만한 내용입니다.이 글은 새로운 시리즈(거짓음성)의 1편입니다. 앞선 거짓양성 시리즈와 짝을 이루지만, 따로 읽어도 됩니다. 이번 편은 "어떤 날들이 과소평가됐나"라는 문제 정의이고, 다음 편들에서 보정 설계와 검증을 다룹니다.반대 방향의 오류지난 거짓양성 시리즈에서는 "간신히 통과인 날을 높은 점수로 잘못 추천하는" 문제를 다뤘습니다. .. 2026. 6. 28.
[Troubleshooting] "데이터 없음"을 0으로 처리했다가, 위험한 날을 안전하다고 한 버그 이 글은 바람 데이터가 없을 때 그 빈 값을 0으로 처리한 것 때문에, 서핑하기 위험한 날이 "완벽한 컨디션"으로 둔갑한 버그를 추적한 기록입니다. 세 단계의 코드가 각자 멀쩡해 보였는데 겹치면서 안전 판정을 뒤집었고, 그 과정에서 "데이터가 정합적인 것"과 "비즈니스적으로 옳은 것"이 다르다는 걸 배웠습니다. 외부 API 데이터를 다루거나, null 처리를 무심코 ?? 0으로 하는 코드를 가진 분이라면 한 번쯤 점검해볼 만한 이야기입니다.안전을 다루는 앱에서 가장 무서운 버그제가 만드는 앱은 서핑 적합도를 점수로 보여줍니다. 파고, 풍속, 수온 같은 예보 데이터를 모아 "오늘 이 스팟은 8점, 좋음"처럼 알려주는 식입니다. 그런데 이런 앱에는 평범한 버그와는 차원이 다른 위험이 하나 있습니다. 위험한 .. 2026. 6. 26.
[Troubleshooting] 무료 티어의 함정 — 한도에 부딪힌 실전 사건들 📌 이 글의 핵심 요약 (SEO Summary)핵심 내용: "공짜로 굴린다"의 진짜 비용은 돈이 아니라 한도(rate limit). 실제로 한도에 부딪혀 서비스가 멈춘 사건 3가지와 해결주요 포인트: Open-Meteo 일일 호출 한도 초과, Resend 테스트 도메인의 함정, Railway의 SMTP 포트 차단기대 효과: 무료 티어로 운영할 때 "조용히" 터지는 한도 문제를 미리 알고, 호출 예산을 설계하는 법 익히기적용 시점: 무료 API·SaaS를 조합해 서비스를 운영하거나, 크론·외부 API를 상시 호출하는 백엔드를 설계할 때※ 실제 호스트·키 등 식별 정보는 생략했습니다. 수치는 작성 시점(2026-06) 기준이며 서비스 정책에 따라 달라질 수 있습니다.📚 시리즈 구성이 글은 1인 개발, 출.. 2026. 6. 21.
[Troubleshooting] Google Play 출시를 막은 5가지 에러 — versionCode·SHA-1·KSP·데이터안전·OOM 📌 이 글의 핵심 요약 (SEO Summary)핵심 내용: 개인 개발자가 앱을 Google Play에 올리는 마지막 구간에서 실제로 출시를 막았던 에러 5가지와 해결주요 포인트: versionCode 재사용 불가, Play 재서명 SHA-1 불일치, KSP 빌드 실패, 데이터 안전 폼, OOM 크래시기대 효과: 빌드·심사·런타임에서 "조용히" 터지는 출시 직전 함정을 미리 알고 피하기적용 시점: Expo/Android 앱을 빌드해 Play에 제출하는 출시 직전 단계※ 실제 패키지명·키·서비스 계정 등 식별 정보와 내부 구현 세부는 일반화/생략했습니다. 에러 증상과 해결 구조 위주로 정리합니다.📚 시리즈 구성이 글은 1인 개발, 출시부터 운영까지 시리즈의 2편입니다.[1편: 비공개 테스트 12명·14일.. 2026. 6. 20.
[Troubleshooting] 앱이 "안전하다"고 잘못 판단한 순간 — 서핑 점수 거짓양성 2건 📌 이 글의 핵심 요약핵심 내용: 서핑 점수 엔진이 "안전(통과)"이라고 안내했지만 실제로는 위험했던 거짓양성 2건과 그 원인 주요 포인트: 항목별 안전 필터의 맹점(복합 위험), 가중 평균의 함정(한 항목이 나머지를 가림) 기대 효과: "빌드도 테스트도 통과하는데 판단만 틀린" 버그를 어떻게 발견하는지 감 잡기 적용 시점: 점수·등급·추천처럼 여러 입력으로 판정을 내리는 로직을 만들거나 검증할 때※ 아래 코드의 임계값(WAVE_LIMIT 등)·가중치·감점 계수는 실제 운영 값이 아니라 구조 설명용 예시입니다. 실제 점수 공식은 공개하지 않고 문제의 구조와 설계 관점 위주로 설명합니다.📚 시리즈 구성이 시리즈는 서핑 예보 점수 엔진에서 발견한 "거짓양성 / 거짓음성" 오류를 정리한 글입니다.1편: 거.. 2026. 6. 18.
[Troubleshooting] 구글 OAuth 연동 에러 모음 + 백엔드 공통 함정 (GSI origin, popup_closed_by_user, EADDRINUSE) 📌 이 글의 핵심 요약핵심 내용: 구글 OAuth 로그인 연동 시 마주친 3가지 에러 + 백엔드 공통 함정 2가지주요 포인트: GSI origin not allowed, 초기화 지연, popup_closed_by_user, .env 반영, 포트 충돌기대 효과: 구글 클라우드 콘솔 설정의 함정 미리 알기, 백엔드 환경 문제 빠르게 해결적용 시점: 구글 로그인 구현 직전 또는 백엔드 환경 세팅 중📚 시리즈 구성이 시리즈는 NestJS JWT 인증 시리즈 이후, 실전 OAuth 연동에서 겪은 에러들을 정리한 2부작입니다.1편: 카카오 OAuth 연동 에러 모음 (KOE006, 401, 도메인 에러)2편: 구글 OAuth 연동 에러 모음 + 백엔드 공통 함정 (현재 글)들어가며: 카카오 끝나면 구글이 기다리.. 2026. 5. 27.