https://github.com/Kusitms-NumberOne/Android/tree/develop/apk
‘대피로’는 위기 상황이 발생했을때 정확하고 신속하게 대응할 수 있도록 돕는 안전•재난 알림 서비스입니다.
‘대피로’는 사용자 맞춤형 안전 재난 알림을 수신하고, 공동체의 안녕을 서로 챙겨줄 수 있는 사람들이 모이는 안전 재난 알림 서비스입니다.
- 본 서비스는 모든 국민들이 1)재난 상황에 대한 정확한 행동요령를 전달 받아 적극적으로 대처할 수 있도록 도우며 재난문자가 제공하기 어려운 2)재난 상황에 대한 구체적인 정보를 공동체의 연결을 통해 확인할 수 있습니다.
📢 ‘대피로’는 모든 이용자들에게 정확한 상황과 대응 방법을 제공하여, 위기 상황에 대한 혼란과 불안을 해소할 수 있길 기대합니다.
분야 | 이름 | 포지션 |
---|---|---|
기획 | 김연지 | 📣 프로젝트 매니징, 서비스 기획 담당 |
기획 | 한나영 | 💡 서비스 기획 담당 |
기획 | 김서윤 | 💡 서비스 기획 담당 |
디자인 | 한수현 | 🎨 서비스 디자인 담당 |
개발 | 노영진 | 🔌 서버 개발 담당 |
개발 | 이재현 | 🖥 서버 개발 담당 |
개발 | 송승희 | 📱 Android 개발 담당 |
개발 | 오종석 | 📐 Android 개발 담당 |
-
-
예상할 수 없는 위기 상황에 노출되어있는 한국 사회
- 지속적으로 늘어나고 있는 자연재난 발생건수 및 피해사례
- 1970년부터 2019년까지 전 세계에서 발생한 자연재해는 1만1072건으로 이 가운데 1970년대에는 711건이 발생한 데 비해 2010∼2019년에는 3165건으로 약 4배 증가 (출처 : 세계기상기구(WMO) 재난역학연구센터(CRED)의 재난통계자료(EM-DAT))
- 분단국가로서의 불안감
- 지난 5월 29일 발생했던 북한 미사일 관련 재난 문자 사건 당시, 그동안 실감하지 못했던 대한민국의 분단 상황을 체감하며 국민의 불안감이 상승됨.
- 한 커뮤니티에서는 “최근 러우 전쟁 보면 전쟁이라는게 생각보다 일상 근처에 있다는 것을 느꼈을텐데도 이번 일(북한 미사일 관련 재난 문자 오발령 사건)을 겪으면서 제대로된 정부 대응이나 대책이 없어서 너무 불안했다.”라고 하며 정부 대응에 대한 부정적 의견과 분단국가의 국민으로서의 불안감을 표출했음.
- 지속적으로 늘어나고 있는 자연재난 발생건수 및 피해사례
-
재난문자에 불만족하고 있는 사람들
-
코로나19 이후 급증한 재난문자 수신량
- 코로나19가 시작된 2020년부터 코로나19 안내문자 송출이 늘며 2022년까지 3년간 연평균 5만4402건(약 131배)의 재난문자 송출 건수가 발생해 국민의 피로감이 커짐. (출처: 행정안전부)
- 코로나 확진자 관련 재난문자로 인해 2020년부터 재난문자를 차단하는 사람들 증가 (*’채널PNU’가 실시한 ‘재난문자 수신 관련 설문조사’에서는 전체 참여자 150명 가운데 28.7%(43명)이 ‘현재 재난문자를 수신하고 있지 않다’고 응답)
-
재난문자에 대한 불만의 목소리 증가
- 과반수 이상(59.7%)이 재난문자에 불편함을 느낀다고 응답(*자체 설문조사 결과 340명 중 203명(59.7%)이 재난문자에 불편함을 느낀다고 응답함.)
→ 재난문자의 핵심 기능인 정보 전달이 제대로 수행되지 않음을 확인
-
-
안전에 대한 관심과 수요 확인
- 재난안전 문제에 대한 높은 관심
- 국립재난안전연구원에서 진행한 설문조사에서 1000명 중 767명(76.7%)이 안전에 평균 이상으로 관심이 있다고 응답 (*출처: 국립재난안전연구원(2022), 제4차 재난 및 안전관리 기술개발 종합계획 수립 연구)
- 경쟁 서비스로 수요 확인
- 위험지역 알림 서비스 ‘terrorless’ 서비스 시작 하루 만인 7일 기준 5만여 명이 방문, 서비스 시작 한 달 만에 53만여명 돌파하여 3개월 동안 174건의 제보 등록됨.
- 공공 재난 알림 서비스 ‘안전디딤돌’ 구글스토어 기준 100만 이상의 다운로드 확인.
- 재난안전 문제에 대한 높은 관심
-
-
-
재난문자의 불편사항에 따른 사용자의 니즈
- 불필요한 내용의 반복적인 재난문자 발송으로 인한 문제 해소에 집중
-
재난문자에 불편함을 느끼는 이유는 정보 부족과 불필요한 내용 발송
-
자체 설문조사 결과 340명 중 103명(30.2%)이 재난문자의 정보 부족, 97명(28.5%)이 불필요한 재난 문자 발송을 불편한 이유로 선택했음.
→ 불필요한 정보를 반복적으로 수신하는 재난문자의 페인포인트 확인
-
-
재난문자와 관련된 세부적 개선
-
‘부산대학교 언론사 채널 PNU’에서 진행한 설문조사에서 참여자 150명 가운데 116명(77.3%)이 재난문자 기능의 개선이 필요하다고 응답
-
그 가운데 개선이 필요한 기능(복수 응답 가능)으로는 1)‘수신하고자 하는 재난의 종류를 임의로 설정할 수 있는 기능’ 75개 2)‘소식 받을 지역을 임의로 설정할 수 있는 기능’ 59개 등 임의로 세부 조건을 조절하는 기능을 원하는 응답 확인
→ 재난의 종류 및 지역에 따른 재난문자 수신 니즈 확인
-
-
- 불필요한 내용의 반복적인 재난문자 발송으로 인한 문제 해소에 집중
-
사용자 니즈에 따른 서비스 기능
- 사용자 맞춤형 재난 문자 알림 서비스 제공
- 수신 받고 싶은 재난문자 지역 설정으로 인해 정보 불균형 해소
- 수신 받고 싶은 재난 유형 설정으로 불필요한 재난 유형 알림 차단
- 재난 상황에 대한 커뮤니티 실시간 생성
- 재난 상황과 관련된 커뮤니티 생성하여 실시간으로 구체적인 정보 공유 가능
- 떨어져 사는 가족들을 위해 재난상황 시 가족의 안전상태 실시간 확인 가능
- 재난 상황이 발생한 위치에 있는 가족들의 위험 상태를 즉시 알림
- 연락이 닿지 않는 시간동안의 가족 위치 및 안전 상태 확인을 통해 불안감 덜어줄 수 있음.
- 사용자 맞춤형 재난 문자 알림 서비스 제공
-
재난 상황에 대한 정확한 정보와 대응 방법을 제공하여, 불안을 해소할 수 있길 기대
- 재난 상황 발생 시, 추가적인 탐색 시간 줄여 빠르고 적극적인 대처 가능
- 커뮤니티와 가족 기능을 통해 구체적인 정보와 주변인들의 안전 상태까지 확인
- 커뮤니티 및 후원 기능을 제공하여 안전에 대한 지속적인 관심을 유도
-
💡‘대피로’는 안전 재난 상황에 대한 구체적인 정보와 정확한 대응 방법을 제공하고, 추가적인 정보 탐색의 부담을 줄여, 위험 상황에서의 혼란과 불안감이 덜어지길 기대합니다.
대피로’는 1)사용자 맞춤형 지역 설정 및 재난 유형 설정을 통해 받고 싶은 알림을 수신하여, 기존 재난문자의 문제점을 해결하고자 합니다. 구체적인 정보가 부족하고 불필요한 내용이 반복되고 있는 재난문자를 문제로 정의하고 이를 해결하기 위한 ‘대피로’만의 사용자 맞춤 기능을 제공합니다. 또한 재난문자가 제공하지 않는 2)재난상황 에 대한 구체적인 정보를 공동체의 연결을 통해 공유합니다.
-
- 재난 문자는 전국민을 대상으로 발송되는 국민들에게 필요한 정보 전달 매체이며, 국민재난안전포털에 따르면 연간 50,000건에 달하는 많은 송신량이 확인됨.
- 하지만 네이버 데이터랩을 통해서 ‘재난 문자 차단'에 대한 검색량이 2022년부터 현재까지 우상향 곡선을 그리고 있음을 확인함.
- 이와 모순적으로 국립재난안전 연구원의 조사에 따르면 재난/안전에 대한 국민들의 관심은 높은 것을 알 수 있었음.
→ 전국민을 대상으로 발송되는, 재난/안전과 관련된 꼭 필요한 정보 전달 매체인 재난문자가 수신되는 과정에 문제가 있음을 발견하였고, 이를 해결하고자 함.
대피로의 목표 사용자는 1)안전/재난에 관심은 있지만 현 재난문자에 불편함을 느끼고 있는 사용자와 2)재난 상황에 대해서 추가적인 정보를 확인하고 싶은 사용자입니다.
-
- 현 재난문자의 중복성과 송출 기준에 대해서는 만족하지 못하고 있음.
- 실종자 찾기 등과 같은 너무 잦은 재난문자 수신으로 인한 피로감을 느끼며, 본인이 원하는 재난 유형의 문자만 수신 하기를 희망함.
- 본인의 현재 위치에 따른 재난문자 뿐만 아니라 자신의 가족, 지인 등이 위치한 지역에서 발생한 재난에 대해서도 확인하고 싶어하는 경향이 있음.
-
- 재난/안전에 대한 관심이 높아 재난이 발생했을 때에 어떻게 행동해야 하는지 행동 요령을 확인하고자 함.
- 재난 발생시 다른 사람들은 어떻게 행동하는지 확인하고 싶어하는 욕구가 있으며 이를 만족시킬 매체가 필요함.
‘대피로’는 위기 상황이 발생했을 때 정확한 정보를 제공하고 신속하게 대응할 수 있도록 도우며, 공동체의 안녕을 도모할 수 있는 공간을 제공하는 안전 • 재난 알림 서비스입니다.
본 서비스는 아래와 같은 핵심 가치를 지니고 있으며 그에 따른 기능을 제공합니다.
-
- 맞춤형 재난문자 수신을 위한 필터링 기능
- 현 재난 및 위치에 따른 행동요령 및 대피소 정보 제공
-
- 발생한 재난과 관련된 정보를 공유하는 커뮤니티 제공
- 거주 지역의 안전 정보를 공유하는 동네 커뮤니티 제공
- 가족의 안전 상태를 확인할 수 있는 기능
-
- 재난 상황 피해 복구에 참여할 수 있는 후원 기능
서비스 플로우
재난 정보 파악
가족 안부 파악
커뮤니티 게시물 파악
피해 지역 후원
후원 페이지에 재난과 관련된 후원을 노출시킴으로서 후원 센터에게는 후원 참여자 모집의 도움을 줌.
그에 대한 대가로 후원 홍보 수수료가 발생하며, 받은 후원 기부금은 후원 센터에 전달함.
‘대피로’는 위기 상황이 발생했을때 정확하고 신속하게 대응할 수 있도록 돕는 안전•재난 알림 서비스입니다. 안전이라는 서비스 정체성을 살리며 신뢰성 상기시킬 수 있는 오렌지와 쿨그레이 컬러를 선정하였으며, 단순하고 직관적인 UI 디자인을 통해 사용자가 위기 상황을 정확하게 인지할 수 있도록 돕습니다.
기술 스택 | 설명 |
---|---|
Spring Boot | 스프링 프레임워크의 웹 애플리케이션을 구축하기 위한 Spring Boot 이용 |
Redis | 댓글 및 게시글의 좋아요의 API 사용 중 발생하는 동시성 문제에 잘 대응하기 위해 Redis 사용. Redis 인프라가 구축되어 있어 RDB단에서 lock을 거는 방법 대신 Redis 분산락 적용. 유효시간이 존재하는 refresh token과 access token을 Redis에 저장하여, 토큰 생명 주기를 나타내는 TTL 기능을 사용 |
Spring Data JPA + Querydsl | Spring Data JPA로 관계지향적인 패러다임과 객체지향적인 패러다임 간 불일치를 매핑. Querydsl로 서비스에서 요구하는 복잡한 비즈니스 로직을 만족하기 위한 동적 쿼리 구현 |
Rest Template + Html Unit | Rest Template로 공공데이터포털에서 제공하는 실시간 재난문자 API와의 통신. Html Unit으로 재난문자를 카테고리화하기 위한 국민재난안전포털 웹사이트 크롤링 |
JIB | 자바 어플리케이션을 빠르게 컨테이너화 할 수 있도록 도와주는 구글 오픈 소스 사용. 도커 없이 Gradle 기반으로 빌드 수행하여 컨테이너 이미지 빠르게 생성 및 Docker hub에 push |
Spring Security + JWT + OAuth2 | 웹 애플리케이션의 보안 기능 강화 및 사용자 인증 및 권한 관리를 위한 Spring Security 사용. JWT와 OAuth2로 세션 관리 없이 사용자 인증 및 정보 전송, 외부 소셜 서비스를 통한 안전한 로그인 구현 |
AWS | AWS EC2로 가상 서버 빠르게 구축 및 관리. AWS RDS MySQL로 데이터베이스 인프라 구축. AWS S3로 대용량 파일 저장. AWS Cloud Watch로 로그 수집/제공 및 효과적인 모니터링 수행 |
기술 스택 | 설명 |
---|---|
Android OS | 가장 널리 사용되는 모바일 운영체제로 서비스 제공 |
Clean Architecture | Domain Layer (비즈니스 로직, Usecase, Repository 포함), Data Layer (Repository 구현체, 데이터 입출력 Data Source, Entity 포함), Presentation Layer (MVVM 패턴 사용, UI 구성 및 View와 ViewModel로 구성) |
Dagger-Hilt | Clean Architecture의 각 계층에서 필요한 객체 생성 및 의존성 주입을 위한 Dagger-Hilt 사용 |
Android Jetpack | ViewModel, Navigation, Flow, LiveData, Work Manager, Data Store, DataBinding 등을 포함하는 Android Jetpack 라이브러리 활용 |
Retrofit | RESTful API 호출을 위한 Retrofit 사용 |
- 파일 : CamelCase + SnakeCase
- 클래스명 : PascalCase
- 함수/변수명 : CamelCase
커밋 메세지는 커밋 태그(이슈 번호): 커밋 내용 으로 작성
ex) git commit -m "Feat(#8): 로그인 기능 구현
커밋태그 | 설명 |
---|---|
Feat | 신규 기능 구현 작업 |
Fix | 버그 수정 |
Docs | 문서 수정 |
Style | 코드 스타일 변경 |
Design | UI 디자인 변경 |
Refactor | 코드 리팩토링 |
Rename | 변수, 클래스, 메소드, 패키지명 변경 |
Build | dependencies 추가 및 삭제 |
Chore | 기타 변경사항(빌드 관련, 패키지 매니징, CI/CD, assets 등) |
Test | 테스트 코드 추가 |
브랜치명 | 설명 |
---|---|
main | 출시 또는 배포 가능한 코드의 브랜치 |
dev | 다음 버전을 개발하는 브랜치 |
feat/[이름] | 기능을 개발하는 브랜치 |
fix/[이름] | 버그를 수정하는 브랜치 |