개발 일기장

인하공전 컴퓨터정보공학과 해커톤 개최!!

현준의코딩 2024. 9. 4. 22:30

 

 

2024.9.4 수요일 오후 3시 30분에 해커톤 발표가 있었어요!

 

방식은 7월5일부터 20일까지 약 2주간 기획안을 제출하고, 9월1일까지 자율 개발을 통해 발표하는 방식이었습니다.

 

저도 여기서 PKLL이라는 팀명으로 4명에서 지원했는데요! 1, 2, 3학년이 다 모여서 진행하면 가산점을 준다고 하셔서 전부 모아서 진행해보았어요.

 

 

저희 팀은 재난 대처 방안을 제공하는 앱을 개발하기로 하였는데요! 최근 빈번하게 오는 재난문자, 확인하기 힘들지 않으신가요?? 2019년까지는 연평균 414건이던 재난 문자가, 2020년 이후로는 연평균 54,000건이 온다고 해요. 아마 코로나 여파가 큰 것 같아요. 

 

그래서 재난 문자 필터 기능으로 사용자들이 보고싶은 재난 문자만 보고, 긴급 상황 발생 시 본인 위치를 알려주고, 위험하다고 119에 문자를 보내주는 SOS 기능을 만들기로 하였어요!!

 

 

이렇게 7개의 탭과 로그인 관련 짜잘한 탭을 포함하여 총 11개의 탭으로 구현하였습니다.

 

또 개발환경으로는 이렇게 개발하였는데, 4명 다 Flutter는 처음이라서 너무 다루기 어렵더라고요.. ㅋㅋ
특히 Flutter는 카카오맵 sdk가 네이티브 키 방식을 지원하지 않아서, 자바스크립트 키로 웹뷰를 가져와서 SDK처럼 꾸몄는데요, 시간을 너무 많이 빼앗겼어요..ㅜ 그냥 구글맵으로 할 걸 하는 후회가 있습니다.

 

 

첫 번째 탭으로는 로그인 화면을 구현하였는데, 로컬로그인과 소셜로그인 3가지를 포함하여 총 4가지 로그인 방식을 지원하였고요! 가입화면의 경우 전화번호 인증 기능을 넣었습니다. 

 

또 이건 저희 어플의 특색인데, 회원 정보 찾기 시 전화번호 인증만 되면 ID를 알려주고, 비밀번호를 변경하도록 유도하였어요. 보통 ID찾기, 비밀번호 찾기로 구분하잖아요? 근데 전화번호 인증만 하면 굳이 둘로 나눠야하나~ 해서 이렇게 구현하였습니다. (물론 해킹 당한거면 엄청 곤란하겠죠?)

 

 

다음은 메인화면인데, 바텀네비게이션바를 구현하여 지도, 홈, 알림, 유저 정보로 이동할 수 있도록 하였어요!

또 6개의 이동 탭을 만들어 한 페이지에서 모든 부분으로 이동할 수 있도록 하여 간편하게 구현하였습니다.

 

 

다음은 재난 상식탭인데, 재난안전관리포털에 재난 상식이 40개이상으로 많더라고요! 그걸 좀 더 편하게 볼 수 있나 생각을 하다가 슬라이드 스크롤로 구현하여 쉽게 볼 수 있게 하였습니다.

 

 

다음은 지도 탭인데요! 1km 근방에 있는 대피소, 무더위쉼터 및 민방위 위치를 알려주고 리스트 클릭 시 해당 위치로 길찾기 하도록 구현하였어요! 여기서 진짜 애 많이 썼네요..

 

 

다음은 SOS 탭인데요! 현재 위치를 확인하고 구조 필요시 119에 전화, 또 전화가 불가할 경우 메시지로 현재 위도, 경도, 주소를 보내 위치를 알려줍니다!

 

 

다음은 재난뉴스 탭인데요! 연합뉴스 API를 끌고와서 안전 관련 뉴스를 볼 수 있도록 하였습니다! 뉴스들과 비슷하게, 제목으로 리스트를 보여주고 클릭 시 상세 내용을 확인할 수 있는데요! 

 

시간이 조금 더 있었다면, 이 페이지도 디자인하고 싶었지만, 시간이 부족하여 간단하게 기술만 보여주어서 아쉬웠어요..ㅜ

 

 

다음은 알림 탭인데요! 재난 문자 API를 끌고와서 재난코드별로 필터링을 할 수 있도록 구현하였습니다. 

이게 시그니처였는데 원래는 본인이 원하는 문자만 필터링하여 고정한 후 보도록 하고 싶었는데, 시간이 부족하여 페이지를 들어갈 때 마다 초기화되어 다시 필터링을 해야하는 번거로움이 있었어요!

 

 

다음은 공지사항 탭인데요! 관리자와 유저 공지사항탭을 구분하여 관리자는 공지사항 업로드, 수정, 삭제를 할 수 있고, 유저는 공지사항을 확인할 수 있습니다.

 

 

다음은 마이페이지인데, 유저 프로필을 변경할 수 있고, 로그아웃을 할 수 있도록 구현하였습니다.

 

 

마지막으로 사용한 API 출처를 남기고 종료하였어요. 

솔직히 약 한달 간 플러터를 처음 만져보는 4명이 할 수 있는 최대를 보여주었기에 개발적인 아쉬움은 없었어요.

 

 

결과는 최우수상..! 아쉬운데 대상, 최우수상, 우수상으로 나뉘어서 저희는 최종 2등을 하였는데요, 솔직히 말하면 다른 팀들 기술 스택을 보았을 때, 완성도 부분에서 1등이라고 생각했는데, 교수님들 생각에는 저희 기술이나 아이디어가 그렇게 신박하지는 않았나봐요..! 

 

그래도 만족합니다.

 

약 두달동안 의지했던 민제형, 정준이, 나희에게 너무 고맙고 다음에도 또 같이 팀하자! 

 

그럼 이만 마치겠습니다.