Skip to content

캡스톤디자인으로 진행한 차수벽 가동 자동화 프로젝트입니다.

Notifications You must be signed in to change notification settings

2022-Dev-OOPS/Back_End

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 

Repository files navigation

image

Dev.OOPS! Back-End

파트 소개

공공데이터 포털에서 기상청이 제공하는 API를 이용하여 각 서버 (FE, IoT)에 필요한 정보를 가공하여 보내주는 역할을 맡고 있습니다.

주요 특징

실시간으로 기상 정보를 받을 수 없다는 태풍의 특징에 기반하여, 본 프로젝트는 가상 태풍 환경 서버실제 태풍 환경 서버로 나누어 개발을 진행하였습니다.

#ERD image

기술 스택 및 환경

  • Java 17
  • Framework : Springboot
  • DB : MariaDB
  • DB Server : AWS RDS
  • Log 관리 : Logback
  • SQL Mapper : Mybatis
  • 단위 테스트 : Junit5
  • 성능 테스트 : Jmeter
  • api-test : PostMan
  • lombok

작동 과정

태풍은 늘 관찰할 수 있는 것이 아니라 6월에서 9월 사이의 기간 동안 발생하는 특수한 기상 변화이기에

개발 기간 동안 정상적인 테스트가 불가능하여 과거의 태풍 관측 정보를 기반으로 가상의 환경을 구축하는

가상 환경과 실시간 태풍 관측 API를 통해 정보를 추출하는 실제 환경으로 구분하여 총 2개의 기능을 개발하였습니다.

가상 태풍 환경 서버

태풍 랜덤 선택 기능

  1. 최초 관측 정보 요청 또는 태풍 관측 종료 신호 발생 시, 작동합니다.
  2. 임의의 태풍을 50%의 확률로 선택합니다.
  3. 태풍이 발견되지 않을 경우, 24시간의 공백의 시간이 발생합니다.

태풍 관측 정보 기능

  1. 임의로 선택된 태풍 관측의 시작 시각을 기준으로 시간을 진행 시킵니다.
  2. 3시간마다 호출을 받습니다. 만약 태풍 정보가 존재하지 않는다면 가장 최근의 관측 정보를 제공합니다.
  3. 요청 시간에 해당하는 태풍의 관측 정보를 제공합니다.
[ 태풍 이름 | 태풍 번호 | 태풍 관측 시간 | 태풍 위도&경도 | 태풍 강도 | 태풍 크기 ]

태풍 위험도 측정 기능

  1. 태풍 관측 정보의 태풍 강도를 기준으로 정보를 제공합니다.
[ 태풍 강도 : NULL, 약 = 1 | 중, 강 = 2 | 초강력, 매우 강 = 3 ]

IoT 동작 요청 기능

  1. 태풍 관측 정보의 태풍 강도를 기준으로 차수벽의 동작을 요청합니다.
[ 태풍 강도 : NULL, 약, 중 = wallAlertDeactivation | 강, 매우 강, 초강력 = wallAlertActivation ]

실제 태풍 환경 서버

예,특보 데이터 전송 기능

  1. FE의 요청이 들어오면 기상청 공공데이터 API 서버에서 예,특보 관련 오늘 기준 최대 5일까지의 정보를 수신합니다.
  2. 데이터 형식에 맞춰 FE로 데이터를 전송합니다.

차수벽 명령 데이터 전송 기능

  1. 기상청 공공데이터 API 서버에서 예,특보 관련 정보 요청 및 수신합니다.
    1. (실제 시간 1시간마다 요청합니다.)
  2. 특보 정보를 분석 후 차수벽을 '가동' 및 '가동 해제'하라는 데이터를 전송함. (Activation, Deactivation)

CCTV 영상 데이터 전송 기능

  1. XAMPP를 통해 웹 서버를 열고 IoT의 캠 서버에 접속(RSTP)하여 HLS를 통해 세그먼트 파일(stream0001.ts)과 메타데이터 파일(stream.m3u8)을 만듭니다.
    1. 세그먼트 파일 : 실시간을 구현하기 위해 설정된 시간만큼 영상데이터를 담고 습니다.
      • 본 프로젝트는 10초로 설정해놨으며, 이전 세그먼트 파일과 타임스탬프가 이어집니다.
    2. 메타데이터 파일 : 위 세그먼트 파일을 시간 순서대로 나열해놓은 메타데이터 파일입니다.
      • 이 파일을 통하여 세그먼트 파일에 접근 및 영상 데이터를 볼 수 있음.
  2. 웹 서버에 FE가 접속하여 stream.m3u8을 Dashboard에 정보를 게시합니다.
image

사진 1. 공공데이터 포털에 요청하여 받아온 데이터 모습. (오늘 기준 3일 전 데이터만 불러올 수 있음.)

About

캡스톤디자인으로 진행한 차수벽 가동 자동화 프로젝트입니다.

Resources

Stars

Watchers

Forks

Contributors

Languages