거벤져스
cdc wiki
프로젝트 개요
기술개발 과제
국문 : 레드 존
영문 : Red Zone
과제 팀명
거벤져스
지도교수
이동희 교수님
개발기간
2020년 3월 ~ 2020년 6월 (총 4개월)
구성원 소개
서울시립대학교 컴퓨터과학부 20149200** 서*후 (팀장)
서울시립대학교 컴퓨터과학부 20149200** 박*록
서울시립대학교 컴퓨터과학부 20149200** 박*찬
서울시립대학교 컴퓨터과학부 20149200** 육*훈
서론
개발 과제의 개요
개발 과제 요약
- 직관성 있는 전국 재난 지도 서비스를 제공한다.
개발 과제의 배경
현 재난문자 발송 시스템은 행정안전부 산하 국민안전처에서 특정 지역에 위치한 기지국 내 모든 단말기에 일괄적으로 문자 메시지를 발송하는 구조로, 다음과 같은 단점을 가지고 있다.
1. 사용자가 본인의 활동 반경을 일시적으로 벗어났을 때 해당 지역으로 발송하는 재난문자를 확인할 수 없다. 2. 메시지를 기지국 단위로 발송하기 때문에 목표지역의 인접구역까지 메시지가 동시에 발송되고 있다. 3. 규격화된 재난 분류 체계가 없다.
이와 같은 문제점으로 인해 사용자는 원하는 시간, 장소, 내용의 재난문자를 확인하기 어렵다. 따라서 우리는 1차적으로 앞서 말한 기능들을 시각적으로 제공하고, 이어서 지역별로 발생하는 재난의 빈도, 비율 등을 분석해 응급의료기관, 기상청, 부동산, 생활안전 등 다양한 분야에 사용할 수 있는 API를 제공함을 목표로 한다.
개발 과제의 목표 및 내용
- 재난문자발송 발령현황 API에 시각 자료를 첨부해서 직관성 있는 전국 재난 지도 서비스를 제공한다.
- 여러 재난에 대한 정보를 모아 카테고리별로 구분, 사용자가 원하는 특정 조건에 따른 재난 문자 정보를 제공한다.
- 재난 현황 데이터를 분석하여 2차 가공 후 API로 제공한다.
관련 기술의 현황
시장상황에 대한 분석
- 경쟁제품 조사 비교
- 안전디딤돌
- 행정안전부에서 만든 어플리케이션으로 맞춤형 재난안전서비스를 제공한다.
- 재난문자를 지역별, 재난별로 분류하여 조회할 수 있다.
- 별도의 시각자료를 제공하지 않는다.
- 재난문자 데이터를 분석하지 않고 단순히 그 정보를 나열하는 것에 그친다.
- 안전디딤돌
구분 | 안전디딤돌 | 레드 존 |
---|---|---|
문자 분류 | 지역별, 재난별 | 지역별, 재난별, 위험레벨별, 기간별 |
분석 서비스 | 제공하지 않음 | 제공함 |
시각자료 | 제공하지 않음 | 지도, 레드 존, 파이 차트 |
개발과제의 기대효과
기술적 기대효과
- 특정 지역에 있지 않더라도 해당 지역에 발송된 재난현황을 확인할 수 있다.
- 시각적 자료를 활용한 데이터의 직관성을 확보할 수 있다.
- 일상생활 내 다양한 분야에서 활용할 수 있다.
경제적, 사회적 기대 및 파급효과
- 재난문자 분석으로 도출된 시각자료를 활용함으로써 사용자에게 재난의 위험성에 대한 경각심을 불러 일으킬 수 있다. 이에 따라 재난의 확산 및 피해 정도를 줄이는데 기여할 수 있다.
설계
설계사양
제품의 요구사항
- R1: 사용자가 원하는 지역의 재난 문자 리스트를 볼 수 있어야 한다.
- R2: 알기 쉽고 익숙한 인터페이스를 사용해야 한다.
- R3: 재난 분석 결과를 쉽게 이해 할 수 있어야 한다.
기능 정의
- F1: 필터 기능을 추가하여 사용자가 원하는 문자 리스트를 제공한다.
- 필터는 재난분류, 지역설정, 위험레벨 설정, 기간설정으로 구성되어 있다.
- 재난분류는 크게 기상특보, 질병, other 세 가지로 구성되며, 각각의 하위 카테고리가 존재한다.
- 기상특보는 기상청에서 발표하는 기상특보 발표기준을 참고했으며, 해당 내용은 아래와 같다.
- 강풍 | 호우 | 한파 | 건조 | 풍랑 | 태풍 | 대설 | 황사 | 폭염 | 홍수 | 폭풍해일
- 질병은 전염성이 높은 질병 등에 대한 정보를 포함하며, 2020.06 기준 제공하는 정보는 아래와 같다.
- 구제역 | AI | 코로나
- other는 앞서 상술한 2가지 카테고리에 해당하는 내용을 제외한 나머지 모든 문자를 포함한다.
- 기상특보는 기상청에서 발표하는 기상특보 발표기준을 참고했으며, 해당 내용은 아래와 같다.
- 지역설정은 시·도 단위부터 구·군 단위까지 설정할 수 있다.
- 위험레벨은 위험 수준에 따라 INFO와 WARNING의 두 가지 레벨을 가지며, 중복 선택할 수 있다.
- 기간설정은 검색할 기간을 사용자가 직접 설정할 수 있으며, 서비스 실행 시 초기 설정 값은 '최근 3개월'로 설정되어 있다.
- F2: 사용자에게 친숙한 인터페이스를 사용하여 사용자가 각 기능의 결과를 예측할 수 있도록 한다.
- 현재 상용되는 지도 API중 하나인 카카오맵 API를 사용한다.
- 각 버튼의 기능을 나타내는 아이콘과 텍스트를 적절히 배치한다.
- F3: 재난 분석 결과를 레드 존(red-zone)과 파이 차트(pie chart)로 나타낸다.
- 지도 위에 각 지역의 위험 정도를 나타내는 붉은 원(레드 존)을 배치한다.
- 레드 존의 크기는 필터가 적용된 각 지역의 문자수를 필터가 적용된 전국의 문자수로 나눈 비율을 사용한다.
- 필터가 적용된 재난 문자의 분석 결과를 시각자료인 파이 차트로 나타낸다.
개념설계안
유스케이스
1. 유스케이스 다이어그램
액터명 | 구분 | 설명 |
User | 소비자 | 앱을 설치한 사용자 |
DB Server | 공급자 | 재난 문자 API를 보관하는 DB |
API Server | 공급자 | 재난 문자 API를 제공 |
GPS System | 공급자 | GPS 기능을 제공 |
시스템 설계
- 특정 주기로 재난문자방송 발령현황 API를 호출하고 파싱해 데이터베이스에 적재하는 배치 스크립트를 설정한다.
- 원본 문자를 다시 지역별로 파싱해 별도의 테이블에 적재시킨다.
- 안드로이드 앱 등의 클라이언트에서 발생한 api request를 nginx를 거쳐 flask 서버에서 처리한다.
- 성능 저하를 최소화하기 위해 db replica를 구성하고 해당 서버에 redash docker를 세팅해 별도의 분석 서버를 운용한다.
데이터베이스 설계
1. DBMS
DBMS | 설명 |
mariaDB | 재난 문자 데이터베이스 |
2. 데이터 모형
상세설계 내용
UI 설계
1. UI Flow
시스템 | Level1 | Level2 | Level3 | Level4 |
사용자용 프로그램 |
지도 | 필터 | 재난선택 | |
지역선택 | ||||
상세정보 | 문자보기 | 문자내용 | ||
메뉴 | 공지사항 | |||
Copyright |
화면 설계
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
시연 영상 및 발표자료는 문서의 Appendix 참고
포스터
어플리케이션 아이콘
관련사업비 내역서
항목(품명, 규격) | 수량 | 금액(단위:천원) |
---|---|---|
스터디룸 대여료(회의비) | 5 | 167,000 |
Notion 사용료(협업 툴) | 3 | 90,330 |
완료작품의 평가
평가항목 | 평가방법 | 적용기준 | 개발 목표치 | 비중(%) | 평가결과 |
1. 지도 데이터를 잘 불러올 수 있는가? | 어플리케이션 | 유/무 | 유 | 25% | 유 |
2. 사용자가 원하는 조건으로 필터를 설정할 수 있는가? | 어플리케이션 | 유/무 | 유 | 25% | 유 |
3. Pie Chart가 정상적으로 출력되는가? | 어플리케이션 | 유/무 | 유 | 25% | 유 |
4. 재난문자 목록을 잘 불러올 수 있는가? | 어플리케이션 | 유/무 | 유 | 20% | 유 |
5. 특정 재난문자의 내용을 확인할 수 있는가? | 어플리케이션 | 유/무 | 유 | 5% | 유 |
향후계획
- 어플리케이션 만족도 조사를 통한 서비스 개선