링크
GitHub Repository
Demo
Prize - 최우수상(NIA원장상, 3위)
2022년 공공데이터 기업 매칭 사업 - 공공데이터 활용 서비스 개발 공모전
1 ~ 2위는 기업팀, 3 ~ 5위는 학생팀으로 4,5위 대학교팀을 제치고 고등학교팀이 3위 달성.
Press
담당 역할 및 기술 스택
•
프로토타입 개발: 1인 개발
◦
React
◦
Redux
◦
Nest.js
◦
MySQL 5.7
◦
Vercel
•
공모전 개선 버전 개발: BackEnd 담당
◦
Nest.js
◦
MySQL 5.7
◦
GoLang
주요 개발사항
•
프로토타입
◦
시도별 SVG 지도 출력을 통합한 컴포넌트
◦
서울시 하천수위 현황 API를 지도 인포그래픽으로 시각화 기능
◦
i18n 다국어 기능
◦
SNS 공유 기능 (카카오톡, 페이스북, 링크복사)
◦
기본적인 UI
•
공모전 개선 버전
◦
GoLang으로 각 기관별 하천수위 API에 최적화된 크롤러 개발
◦
GoLang 크롤러 Cron schedule 작성
◦
기관별 하천수위 데이터의 통합 시스템 개발 (유효성 필터링, 표기 체계 통일화, 스키마 통일화)
◦
하천 수위 제공을 위한 통합 RESTful API 개발
•
백엔드 설계
◦
프론트 앱은 Netlify와 GitHub+JSDelivrCDN으로 정적 서비스
◦
Nest JS로 API 서버 운영 (동시성 문제와 권한 문제 방지를 위해 DB 접속은 API 서버로 제한함)
◦
발행한 API 별로 Role을 부여하여 접근 가능한 엔드포인트 분리
◦
크롤러 인스턴스를 Cron을 통해 주기적으로 실행하여 공공데이터 API에서 데이터를 받아와 API 서버로 전달 (DB에 데이터 삽입은 전적으로 API 서버만이 수행한다.)
•
하천수위 공공데이터 API 통합계획
◦
대체적으로 실시간성이 떨어지는 정보들이 포진해있음.
실시간성이 떨어진다는 이유로 서비스 범위에서 모두 배제하게되면 실질적으로 이용가능한 api 턱 없이 부족함.
◦
따라서 실시간성이 떨어지더래도 크롤링에 대상으로 정보를 가져오고,
시각화를 하는 과정에서 최신 데이터의 업데이트 일자가 너무 오래된 경우 이를 경고해주는 식으로 진행해야할 것 같다.