( 핵심 기능 1 ) 긴급상황 시 재난 상황 알림 서비스 → 웹소켓
재난 상황 실시간 알림 기능
범위 : 전국구 단위
재난 분류 : 자연재난, 사회재난, 비상대비, 기타재난중 기타재난을 제외한걸 가져옴.
절차
공공데이터 가져오기
국민재난안전포털에서 제공하는 OpenAPI에 fetch로 데이터를 가져온다.
어떤 데이터를 가져올 것인가?
- 수신 지역 코드, 수신지역 이름, 생성일,
가져온 데이터 중 어떻게 처리하여 코드레드 사용자에게 알림을 보낼 것인가?
👂🏼 단 건 알림에 대하여
1️⃣ 가져온 데이터를 그대로 보내주는 것은 의미가 없겠다.
→ 가공이 필요하다.
→ 위치기반 서비스?
ex) 로그인한 사용자라면?
‘이경복’ 사용자는 ‘서울’ ‘경기’ ‘용인시’ 지역을 관심 지역으로 설정한다.
‘화재’ ‘지진’ 에 대한 재난 키워드를 설정한다.
서버는 이 지역과 키워드와 매칭되는 재난문자만 알림으로 전송한다.
<aside> 📌 문제: 비회원은? → 접속시 지역과 키워드를 설정 → 방문할 때마다 설정? → 이탈할거 같음 → 접속한 사용자 위치기반으로 일정 지역을 자동으로 설정해서 보내준다?
</aside>
2️⃣ 각 역할에 따른 API 분류?
공공데이터 가져오는 API → 가져오기만 하는 아이 fetch
조회한 데이터를 저장하는 API → 저장만 하는 아이 Redis set()
필터링 해서 응답하는 API → 조건에 따라 거르고, 답해주는 아이
‘GPS 위치 정보 활용’ 동의 vs ‘req.헤더? 페이로드? 에서 꺼낸 위치정보?’
웹 & 모바일 - 카카오맵 API와 연동해서 위치 찾고 동의 받기?
- 왜 카카오?
- 가장 많이 사용. 접근성. 카카오 로그인.
웹에서 다른 방식
<캐싱> 저장된 데이터와 사용자 위치, 사용자 알림 설정에 맞게 조회 → 응답 보내주는 API
- 만약에 로그인을 안한다고 하면 팝업 일주일간 보지않음과 비슷한 맥락으로 적용해보면 되지 않을가?(localstorage, cache?)
🚨 재난상황 알림에 대하여
- 지진, 홍수, 전쟁, 화재, 태풍 등
초비상 사태에 대해서는 1건이라도 발생하면 알림을 즉시 보내야한다.🚨 긴급상황 알림에 대하여
- 호우/대설/폭염/강풍 주의보, 미세먼지 등
경보수준에서는 n 건 이상 재난문자 데이터가 누적된다면 그때 알림을 보내야겠다.<aside> 📌 문제: 가져온 데이터를 어떤 방식으로 재가공(통계/계산/검증/형식 변경)해야할까?
- open api : 행정 안전부 </aside>
검증하는 아이
강풍 ≥ 3, 호우 >2, 지진 = 1 → 보내!!강풍 강풍 강풍 → 보내겠지
강풍 강풍 강풍 + 강풍 → 보내겠지?
—- db 필터링 정보
강풍 강풍 강풍 + 대설 → X
—- 조회
강풍 강풍 강풍 + 대설 + 강풍 → 보내야겠지?
—- 조회
강풍 대설 호우 + 지진 → 즉시 바로 보냄
계산하는 아이
- 단순 연산 → get() → count 0099개 → 평균값
통계하는 아이
- 복잡 통계 → 머시기하면 된다.
지역기반 실시간 채팅 기능 → 웹소켓을 이용한 실시간 채팅 구현
사용자 위치기반(경기도 광주시 태전동) → 실시간 채팅 메세지 목록 조회 API
- 최신 4건만 조회 메인화면 → 더보기 클릭시 → 전체 목록 조회 화면 이동
- 실시간 채팅 메세지 수 카운팅: 73개
- 채팅 메세지 목록들..머시기 알아서
자동 업데이트 on/off : 토글
채팅메세지 생성 API
- userName, content, createdAt 등
클린봇: 악성표현, 욕설 : 필터링
신고 기능
DB 테이블구조 > notification ‐ 씨아이보드 매뉴얼
LINE 알림 센터의 메인 스토리지를 Redis에서 MongoDB로 전환하기
( 핵심 기능 2 ) 실시간 감지 시스템
( 핵심 기능 3 ) 위치기반 내 주변 대피소 찾기 기능 → fetch? vs csv + multer?
( 핵심 기능 4 ) 사건사고 현황 조회 → 스크래핑/크롤링
( 핵심 기능 5 ) 일반인 구조요청 SOS 서비스
[Node.js] 위치기반 서비스 서버 만들기 (Location Based Service)
간단한 지오로케이션(Geolocation)을 통한 위치 확인
[Javascript] Geolocation API 사용하여 현재 위치 가져오기
HTML Geolocation API를 활용한 스마트폰 GPS 위치추적