티스토리 뷰

📣 어젠다

  • 우선순위 기준으로 정하기
  • 기능등을 구현한다고 하면 어디서 자료를 가져올수 있을까?
  • 어떠한 기준을 잡아야 할까?
    • ex)
    • 어떠한 기준으로 알림을 보낼것인가? -> 재난이 전국 메세지 기준인가? -> 메세지 내용이 긴급인지 아닌지는 뭐로 판단하는가? -> 메세지를 보내는걸 어떻게 판단할것인가? -> 어디를 기준으로 할것인가?
  • 역할 분담

 

세부 기획시 참고할 사이트

 

마주한 문제

 - 데이터가 여기저기 흩어져 있다. ->그럼 서울인구를 주제로 다 해야하나?

 - 뉴스의 정보를 가져와서 정제한다음 나름의 통계를 낼수는 없을까?

 - 실시간 데이터를 가져오고 싶었지만 신고 현황, 사고 접수, 이런 내용들은 실시간이 아닌 통계로 올라오는 데이터였다.

상세 구현 기술 • 기능 정리

( 핵심 기능 1 ) 긴급상황 시 재난 상황 알림 서비스 → 웹소켓

재난 상황 실시간 알림 기능

범위 : 전국구 단위

재난 분류 : 자연재난, 사회재난, 비상대비, 기타재난중 기타재난을 제외한걸 가져옴.

절차

공공데이터 가져오기

국민재난안전포털에서 제공하는 OpenAPI에 fetch로 데이터를 가져온다.

국민재난안전포털

어떤 데이터를 가져올 것인가?

수신 지역 코드, 수신지역 이름, 생성일,

가져온 데이터 중 어떻게 처리하여 코드레드 사용자에게 알림을 보낼 것인가?


👂🏼 단 건 알림에 대하여→ 가공이 필요하다.ex) 로그인한 사용자라면?‘화재’ ‘지진’ 에 대한 재난 키워드를 설정한다.

📌 문제: 비회원은? → 접속시 지역과 키워드를 설정 → 방문할 때마다 설정? → 이탈할거 같음 → 접속한 사용자 위치기반으로 일정 지역을 자동으로 설정해서 보내준다?2️⃣ 각 역할에 따른 API 분류?

공공데이터 가져오는 API → 가져오기만 하는 아이 fetch

조회한 데이터를 저장하는 API → 저장만 하는 아이 Redis set()

필터링 해서 응답하는 API → 조건에 따라 거르고, 답해주는 아이

‘GPS 위치 정보 활용’ 동의 vs ‘req.헤더? 페이로드? 에서 꺼낸 위치정보?’

웹 & 모바일 - 카카오맵 API와 연동해서 위치 찾고 동의 받기?

왜 카카오?

가장 많이 사용. 접근성. 카카오 로그인.

Kakao Developers

웹에서 다른 방식

Geolocation API - Web API | MDN

<캐싱> 저장된 데이터와 사용자 위치, 사용자 알림 설정에 맞게 조회 → 응답 보내주는 API

만약에 로그인을 안한다고 하면 팝업 일주일간 보지않음과 비슷한 맥락으로 적용해보면 되지 않을가?(localstorage, cache?)

🚨 재난상황 알림에 대하여

지진, 홍수, 전쟁, 화재, 태풍 등 초비상 사태에 대해서는 1건이라도 발생하면 알림을 즉시 보내야한다.

🚨 긴급상황 알림에 대하여

호우/대설/폭염/강풍 주의보, 미세먼지 등 경보 수준에서는 n 건 이상 재난문자 데이터가 누적된다면 그때 알림을 보내야겠다.

📌 문제: 가져온 데이터를 어떤 방식으로 재가공(통계/계산/검증/형식 변경)해야할까?

open api : 행정 안전부 

 

서버는 이 지역과 키워드와 매칭되는 재난문자만 알림으로 전송한다.

‘이경복’ 사용자는 ‘서울’ ‘경기’ ‘용인시’ 지역을 관심 지역으로 설정한다.

→ 위치기반 서비스?

1️⃣ 가져온 데이터를 그대로 보내주는 것은 의미가 없겠다.

계산하는 아이

단순 연산 → get() → count 0099개 → 평균값

통계하는 아이

복잡 통계 → 머시기하면 된다.

지역기반 실시간 채팅 기능 → 웹소켓을 이용한 실시간 채팅 구현

참고 사이트: https://www.youtube.com/watch?v=uE9Ncr6qInQ

사용자 위치기반(경기도 광주시 태전동) → 실시간 채팅 메세지 목록 조회 API

최신 4건만 조회 메인화면 → 더보기 클릭시 → 전체 목록 조회 화면 이동

실시간 채팅 메세지 수 카운팅: 73개

채팅 메세지 목록들..머시기 알아서

자동 업데이트 on/off : 토글

채팅메세지 생성 API

userName, content, createdAt 등

클린봇: 악성표현, 욕설 : 필터링

신고 기능

 

( 핵심 기능 2 ) 실시간 감지 시스템

목적지 위험도 측정 기능

https://data.seoul.go.kr/dataList/OA-21285/A/1/datasetView.do - 서울 실시간 도시 데이터

범위 : 서울시로 한정한다.

 

( 핵심 기능 3 ) 위치기반 내 주변 대피소 찾기 기능 → fetch? vs csv + multer?

주변 대피소 찾기

선택 1. 대피소 정보를 업데이트해야한다면?

OpenAPI에서 그냥 fetch로 받는다? 1달에 1번만 자동으로 전달받아서 → DB에 저장?

선택 2. 업데이트가 많이 안되고, 단순하게 하고 싶다면?

서울시에서 인허가된 대피소 정보를 CSV 파일 형태로 제공함. → DB에 저장해서 → 조회( fetch 안써도됨 )

대신 수동으로 일정 주기로 CSV 파일을 교체해줘야함

서울시 지진대피소 현황

( 핵심 기능 4 ) 사건사고 현황 조회 → 스크래핑/크롤링

위급상황 현황

‘구체적인 정부 데이터’ 보다 ‘실시간’에 더 포커싱하자. 고 팀원들과 합의→ 사용자의 위치에 따라 주변의 사건사고 발생 기사를 스크래핑 해온다.<머시기 과제> 여러 언론사에서 가져오는 뉴스들 중에서

중복된 사건/사고 뉴스에 대한 데이터 검열,

당일 사건사고에 해당하지 않는 내용을 탐색 → 검열

→ 해당 사건사고 건수를 집계하는 API

→ 이 결괏값을 현황 조회 API에서 활용

<스크롤링 기준> 사용자 현재시간으로부터 최근 3시간 기준? 느낌으로 잡는다?

→ ‘실시간’에 집중하기 위해서, 스크래핑/크롤링 기술을 활용해서

위험감지 시스템에서 “사건/사고 5건” → 5 클릭 → 뉴스 기사 목록이 나온다.

선택1. 하루치만 크롤링 해와서 캐싱해서 Redis에 저장?

📌 문제 : 119 안전 openAPI, 경찰청 사건/사고 openAPI 등에서 가져올 수 있는 데이터가 최신 갱신이 되어있지 않음.

( 핵심 기능 4 ) 일반인 구조요청 SOS 서비스


SOS 버튼 눌러서 긴급 구조 요청 → Ref. 택시 매칭 시스템? 알고리즘?

user SOS 버튼 클릭

상태 긴급

위치 1km 이내 에 있는 모든 유저 찾아 → 사람이 없어?

위치 3km 이내에 있는 유저를 다시 탐색 → 곽지민, 오다은, 강영우, 조민근

4명의 유저에게 구조 요청 알림 전송

지민, 민근 → 응답 없음→ 다시 반경 넓혀서 조회? ( 유저 찾을때까지 계속 반복 )

탐색한 유저가 만약 3km 이내 유저가 5천명이면?

→ 만약 모두 응답이 없으면? → 60초 이내에 응답이 없으면으로 기준? →

전송된 알림 조회

다은 → 구조 요청 수락 → 119 신고 전화 버튼 → 대신 119에 신고해주기 → 3점


위급상황 현황

영우 → 구조 요청 수락 → 뛰어와서 직접구조 → 10점 → 지킴이 타이틀을 준다.

구조 완료 → 다은/영우 에게 고맙다고 평점과 간단한 사연 남김

우수 사례 활용 - 라디오 구현시 경복님의 구조 사연입니다.

구조 요청자 패널티 정책도 필요함.

허위 구조 요청 → 초강력 패널티

구조자 패널티 정책도 필요함.

돈을 요구한다던지, → 계정 정지

구조 요청을 받았는데 아무런 행동도 안햇다. → 초강력 패널티

위급맨고

지킴이 타이틀을 어떤 기준으로 부여할건가?

랭킹

팔로워 기준

20명 기준 → 지킴이 Lv.1

100명 기준 → 👑 킹왕짱 지킴이

점수 기준

점수 부여 기준: 대신 신고해주기 3점 / 직접 구조 10점

10점 미만 → 일반 유저

50점 이상 → 지킴이 Lv.1

70점 이상 → 지킴이 Lv.2 → 100 골드바 증정

[Spring] 위치 기반 서비스 구현하기

카카오 T 택시의 배차 시스템

[Node.js] 위치기반 서비스 서버 만들기 (Location Based Service)

( 핵심 기능 5 ) 구호 물품 교환 서비스


구호 물품 교환 서비스 → Ref. 당근마켓 매칭 시스템?

구호 물품 게시글 등록

교환 ‘요청’ 상태로 default로 등록됨.

구호 물품 게시글 삭제

구호 물품 게시글 목록 조회

구호 물품 게시글 상세 조회

작성자 프로필 조회

거래 방식 // 담당자 마음대로

작성자에게 1:1 채팅 메세지 보내기? or 전화번호로 전화 걸기? -

요청 보내고 수락/거절 → 채팅 or 전화 →

구호 물품 게시글 수정

교환 완료 버튼 클릭 → 완료 상태로 변경

( 핵심 기능 6 ) 챗봇 서비스

챗봇 서비스 → 채널톡 API 연동

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함