/01-LabQ

서울시 25개 자치구의 최근 1시간 하수관 수위와 10분당 강우량 정보를 보여주는 API 서버입니다.

Primary LanguageJavaScriptMIT LicenseMIT

Project 01-LabQ

1.프로젝트 소개
2.팀원 소개 및 프로젝트 역할
3.기술 스택
4.프로젝트 실행방법(Installation)
5.과제 개요
6.프로젝트 기능 구현


1.프로젝트 소개

서울시 25개 자치구의 최근 1시간 하수관 수위와 10분당 강우량 정보를 보여주는 API 서버


2.팀원 소개 및 프로젝트 역할

2-1. 팀원 소개

Team B-Free

팀장 팀원 팀원 팀원 팀원
이지민 강채현 박성용 오주환 최예진

2-2. 프로젝트 역할

각 팀의 개발 과정은 페어 프로그래밍으로 진행

팀원 역할
데이터 수집팀 오주환 박성용 공공데이터 OPEN API 데이터 수집
데이터 전처리팀 강채현, 최예진 반환할 데이터 지정, 데이터 가공
데이터 반환팀 이지민 가공된 데이터 반환 처리



3.기술스택

Node Express


4. 프로젝트 실행방법(Installation)

# 레포지토리 Clone 및 폴더 이동

git clone https://github.com/team-B-free/01-LabQ.git
cd 01-LabQ


# dependencies 설치

npm install


# husky 설치

npm run prepare


# 로컬 서버 실행
npm start




5.과제 개요

프로젝트 기간 : 2022.06.29 ~ 2022.07.01


5-1. 과제 주제

 Open API방식의 공공데이터를 수집, 가공하여 전달하는 REST API개발

5-2. 사용한 공공 데이터


5-3. 과제 컨셉

 과제 주제와 연관 지어 왜 과제를 냈는지를 해석
 서비스 활용사례와 요구사항을 통합하여 주제를 설정하고, 주제를 뒷받침할 근거를 논의

  • 서울시

    • 서울시폭우 로 인한 도로 침수 와 퇴근길 차량 정체 등의 침수 문제
    • 하수관 은 시간 당 75mm의 강수량에 견디게 설계(2011) 그러나 2022년 현재까지빗물 저류 시설이 정비 되지 않아 최근까지도 하수관 역류 및 침수 문제 발생
    • 최근 서울시 에서 온실가스 저감을 위해 기후 변화 대응 종합 계획 추진, 물 환경 분야 사업 추진서울시 물 환경 인프로 구축 을 위한 노력 중

       침수 피해 사전 예방하여 피해 최소화
    

  • 공공 데이터 서비스 활용 사례 파악

    12년 8월 관악구 하수관로 수위가 평소보다 2배이상 상승한 것을 확인 한 뒤 토사를 제거해 침수 피해 예방
    
    • 하수관로 수위 비율80~90% 를 넘어 침수 위험상황 판단시 자치구 재난 안전 대책 본부 에서 해당 지역 주민 문자 등 즉시 전파
    • 하수관로 수위60% 이상 일 시 해당 지역 담당 공무원 들에게 자동으로 문자가 발송, 사전에 침수 예방 조치
    • 강우량이 없음 에도 평상시 수위보다 높은 수위 일 경우, 하수관로 내부 점검 해 하수관로에 유입된 토사, 퇴적물 등을 미리 제거 하여 침수 피해 예방

  • 랩큐

    • 랩큐인공지능 기술을 기반으로 이상징후 탐지 , 문서요약 등 다양한 서비스를 제공

    • 랩큐 의 클라이언트는 문체부, 도로공사공공기관정부 부처 기관

    • 주요 업무는 데이터 수집/전처리, EDA(탐색적 데이터 분석), 빅데이터 분석

        데이터 전처리 및 가공 서비스로 이상징후 탐지 하는 AI 서비스 개발 → 서울시와의 사업 협업을 위함
      

  • 결론

    • 서울시기후변화 대응 계획물 환경 인프라 구축을 위한 사업이 진행 중이고
      랩큐에서는 이를 위해 빅데이터딥러닝 엔진 학습 등의 활용에 데이터 수집을 위한 REST API + 클라이언트 가 필요
    • 랩큐에서 서비스 하고 있는 데이터 전처리 및 가공 서비스 활용 부분 관점에서 볼 때 코스 참여자들데이터수집, 가공 하여 분류 하는 역량을 확인 하여 랩큐의 실무와 잘 맞는지를 확인 하기 위함
    • 데이터를 이용해 REST API를 구현하는 기본적인 설계 및 개발 능력을 보기 위함

6.프로젝트 기능구현

  • 6-1. 응답 요청


    요청주소

    http://localhost:3000/api?guCode=GUBN

    예) http://localhost:3000/api?guCode=01


  • 6-2. 응답 결과


{
  "status": 200,
  "success": true,
  "message": "성공",
  "data": {
    "GUBN": "01",
    "GUBN_NAM": "종로",
    "SEWER_LEVEL_AVG_PER_HOUR": 0.11147826086956529,
    "RAINGAUGE": [
      {
        "RAINGAUGE_CODE": 1001,
        "RAINGAUGE_NAME": "종로구청",
        "RAINFALL_AVG_PER_HOUR": 0,
        "RAINFALL_SUM_PER_HOUR": 0
      },
      {
        "RAINGAUGE_CODE": 1002,
        "RAINGAUGE_NAME": "부암동",
        "RAINFALL_AVG_PER_HOUR": 0,
        "RAINFALL_SUM_PER_HOUR": 0
      }
    ]
  }
}

  • 6-3. 응답 값 설명


  • GUBN: (구)분코드
  • GUBN_NAM: (구)분명
  • SEWER_LEVEL_AVG_PER_HOUR: 최근 1시간 하수관 수위 평균
  • RAINGAUGE
    • RAINGAUGE_CODE: 강우량계 코드
    • RAINGAUGE_NAME: 강우량 계명
    • RAINFALL_AVG_PER_HOUR: 최근 1시간 평균 강우량
    • RAINFALL_SUM_PER_HOUR: 최근 1시간 누적 강우량