dahee®
PROJECT 02 / 02

SAFY

시민 제보와 공공데이터를 결합해
100m 위험도와 관제 업무로 연결하는 도시 안전 서비스

20266-PERSON TEAMBACKEND-LED2ND PRIZE
← ALL PROJECTS
01/

Risk Engine

100m 격자 위험도 엔진

DOMAIN / GEO↗
02/

State History

변경된 셀만 기록하는 이력

DATA / POLICY↗
03/

Latency

반영 지연을 세 계층으로 분해

CACHE / SCHEDULER↗
04/

Idempotency

20번 요청에도 한 번만 처리

ATOMIC CLAIM↗
05/

Web Push

TTL과 실패 유형을 반영한 재시도

LIFECYCLE / RETRY↗

FIVE DECISIONS, ONE SYSTEM

Why it
holds.

01

하나의 좌표,
하나의 셀

IEEE-754 연산 순서와 음수 인덱스 규칙을 값 객체에 고정해 서버와 화면의 해석을 맞췄습니다.

PURE DOMAIN
02

바뀐 셀만
기록

위험 값·등급·상태가 달라진 셀만 이력으로 남겨 변화는 보존하고 행 폭증은 막았습니다.

CHANGE-ONLY HISTORY
03

지연을 세 계층으로
분해

조회 시간 범위, HTTP 캐시, 프론트 갱신 이벤트를 각각 분리해 병목을 찾았습니다.

SERVER / CACHE / CLIENT
04

늦은 안전 알림은
오해를 만든다

알림 유형별 TTL과 오류 유형별 종료·재시도 정책을 결합했습니다.

TTL-AWARE RETRY

Failure with
an expiry.

404·410은 구독 만료, 429·5xx·네트워크 오류는 재시도, 기타 4xx는 즉시 종료합니다. TTL이 지나면 남은 횟수와 무관하게 끝냅니다.

01

PENDING

발송 대기

→
02

PROCESSING

병렬 발송

→
03

COMPLETED

성공 / 종료

↘
04

RETRY_WAIT

429 / 5xx / network

SAFETY 15M · REPORT 12H→EXPIRED MEANS STOP