Skip to content

원티드 프리온보딩 백엔드코스 D팀 - 1주차 기업과제 랩큐 (서울시 하수관로 수위현황과 강수량 데이터 활용 API개발)

Notifications You must be signed in to change notification settings

reumachoi/01-LabQ-wanted-D

 
 

Repository files navigation

1주차: LabQ 기업과제

RUN


$ git clone https://github.com/3rd-wanted-pre-onboarding-team-D/01-LabQ-wanted-D.git
$ cd 01-LabQ-wanted-D
$ npm i --silent
$ npm run start

환경변수 설정


OPEN_API_KEY={인증키}

API 명세 문서


GET /anomalydetection/gubn

GET /anomalydetection/{gubn}

과제 용어 정리


  • GUBN_NAM (하수관로 수위 현황 - 구분명 출력값)
  • GU_NAME (강우량 정보 - 구청명 출력값)
  • GUBN (하수관로 수위 현황 - 구분코드 요청값)

요구사항 분석


  • 클라이언트가 요청하는 서울시 구별 강우량 정보와 그에 따른 하수관로 수위 현황을 제공하는 서비스
    • 서울시 구별 강우량 현황을 받아오는 OPEN API 모듈 개발이 필요함.
    • 서울시 하수관로 수위 현황을 받아오는 OPEN API 모듈 개발이 필요함.
    • 클라이언트로부터 받은 GUBN과 날짜를 기준으로 강우량과 수위 현황을 매핑 후에 데이터를 응답하는 모듈 개발이 필요함.
      • 매핑 기준은 GUBN과 일(Day)로 한다.

팀원별 역할


  • 프로젝트 세팅
    • 담당: @JuyeopJang
    • Hot-Reload, response-interceptor, ConfigModule
  • 강수량 api 모듈 제작
    • 담당: @username1103
    • OpenAPI를 요청해 데이터 가져오는 모듈
  • 하수관로 api 모듈 제작
    • 담당: @reumachoi
    • OpenAPI를 요청해 데이터 가져오는 모듈
  • Data 처리 모듈 제작
    • 담당: @khsexk
    • 두 OpenAPI 모듈을 통해 가져온 데이터 파싱
  • Response 관리
    • 담당: @YongsHub
    • 데이터 처리 모듈을 import해서 response까지

Response 예시


- 클라이언트가 잘못된 또는 없는 구분코드(GUBN)으로 API 호출시 BadRequestResponse
- 올바른 구분코드(GUBN)을 명시하여 API 호출을 하는 경우
- OPEN API 호출에 실패할 경우의 Response

DFD


Module Dependencies


Before Refactor

- HTTP모듈을 DrainpipeMonitoring, Rainfall, AnomalyDetection 3개의 모듈에서 각각 받음
- Rainfall모듈의 경우 Config모듈을 OpenApiConfig모듈로 받고 DrainpipeMonitoring모듈의 경우엔 Config모듈을 전역모듈로 받음
- App모듈에서 Config, OpenApiConfig, DrainpipeMonitoring, Rainfall, AnomalyDetection 모듈을 다 받음

After Refactor

- OpenApi모듈로 Config와 Http모듈을 통합해서 Rainfall, DrainpipeMonitoring 모듈에서 사용
- App모듈에 불필요하게 가져오던 모듈들을 정리하고 AnomalyDetection모듈만 사용

About

원티드 프리온보딩 백엔드코스 D팀 - 1주차 기업과제 랩큐 (서울시 하수관로 수위현황과 강수량 데이터 활용 API개발)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 94.8%
  • JavaScript 5.2%