"육회비빔밥"의 두 판 사이의 차이

cdc wiki
이동: 둘러보기, 검색
308번째 줄: 308번째 줄:
  
  
===이론적 계산 및 시뮬레이션===
+
===소프트웨어 설계===
내용
+
 
 +
 
  
 
===상세설계 내용===
 
===상세설계 내용===

2022년 12월 19일 (월) 23:59 판

프로젝트 개요

기술개발 과제

국문 : 서울특별시 폐수거함 위치 정보 제공 서비스

영문 : Huemap

과제 팀명

육회비빔밥

지도교수

최* 교수님

개발기간

2022년 9월 ~ 2022년 12월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부·과 20179200** 강**(팀장)

서울시립대학교 컴퓨터과학부·과 20179200** 김**

서울시립대학교 컴퓨터과학부·과 20179200** 류**

서울시립대학교 컴퓨터과학부·과 20179200** 손**

서론

개발 과제의 개요

개발 과제 요약

◇ 대다수의 서울시민이 현재 서울시내에 설치된 폐수거함을 찾는 것을 어려워하고 폐수거함이 충분하지 않게 설치됐다고 여긴다.

◇ 무단투기를 방지하고 폐수거함을 찾고자하는 서울시민의 편의성 증대를 위해 서울특별시 폐수거함 위치 정보 서비스를 개발하고자 한다.

◇ 서울특별시에 설치된 쓰레기통, 의류수거함, 폐건전지 수거함 등 여러 폐수거함들의 위치 정보를 제공한다.

◇ 사용자는 폐수거함에 대한 제보를 통해 서울시내 폐수거함 관리에 기여할 수 있다.

◇ 공공기관에게 API를 통한 폐수거함 정보를 제공한다.


개발 과제의 배경

◇ 지난 1995년 서울시 쓰레기통 종량제 시행된 개수는 약 7607개였다. 하지만 가정과 사업장 등 쓰레기를 길거리 쓰레기에 배출하는 일이 잇따르면서 서울시는 2007년 3707개로 줄였다. 하지만 대중교통 이용시 뚜껑이 없는 음료나 음식이 승차거부 되면서 쓰레기통을 찾지 못하는 시민들의 불편과 민원이 증가하기 시작했다.

◇ 가정에서 복용하지 않고 남은 폐의약품, 수명을 다한 폐형광등, 폐건전지, 입지 않은 의류 등을 종량제 봉투, 하수 등을 통해 배출되는 경우 유해 성분이 토양이나 하천에 유입돼 수생태계를 교란시키고 인체 건강을 위협할 수 있기에 철저한 관리가 필요하다.

◇ 폐수거함 위치에 대한 정보가 부족해 시민들이 지차체로 문의하거나 찾아 버리기 귀찮다는 것을 이유로 종량제 봉투에 버리는 경우가 많았다.

◇ 서울시민에게 근처에 있는 폐수거함을 쉽게 이용할 수 있도록 도와주고 투기 문제를 해결하기 위하여 프로젝트를 시작하게 되었다.

◇ 폐수거함을 찾지 못하는 대상에게 근처에 있는 폐수거함 위치 정보를 제공할 수 있고 사용자 제보를 통하여 폐수거함 관리에 기여할 수 있다.

◇ 사용자 제보를 공공기관에게 제공함으로써 폐수거함 청결 문제 해결, 폐수거함 추가 설치 등을 기대할 수 있다.


개발 과제의 목표 및 내용

◇ 서울특별시에 설치된 쓰레기통, 의류수거함, 폐건전지, 폐형광등 수거함, 폐의약품 수거함의 위치 정보를 지도 형태로 제공한다.

◇ 사용자는 폐수거함에 대한 제보를 할 수 있다.

● 서비스에는 존재하지만 실제로는 존재하지 않은 폐수거함을 제보할 수 있다.
● 서비스에는 존재하지 않지만 실제로 존재하는 폐수거함을 제보할 수 있다.
● 서비스에 존재하는 폐수거함의 훼손, 더러움, 가득 찬 정도의 현재 상태를 제보할 수 있다.
● 적절한 폐수거함의 위치를 건의할 수 있다.

◇ 공공기관에게 폐수거함 상태, 폐수거함 설치 건의 현황을 API 형태로 제공한다.

● 사용자가 수거함이 필요하다고 생각하는 위치를 제보하면 제보량이 많은 지역을 공공기관에게 제공


관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황

◇ Clustering 유사한 성격의 객체들을 같은 그룹으로 묶어 그룹화하고, 서로 유사하지 않은 성격의 객체들은 다른 그룹으로 분리하는 것을 클러스터링이라고 한다.

● K-means Clustering
○ 주어진 데이터를 k개의 클러스터로 그룹화하는 알고리즘
○ 그룹간 비유사도(dissimilarity)와 같은 비용 함수(cost function)을 최소화하는 방식
○ 표준적으로 각 클러스터와 거리 차이의 분산을 최소화하는 방식을 사용한다.
● DBSCAN Clustering
○ 가까운 데이터끼리 그룹화하는 알고리즘
○ 이웃(neighbor)이 많은 점을 그룹화하고 저밀도 지역에 떨어진 점을 outlier로 마킹한다.
○ 특정 분포를 따르지 않는 데이터에 더 유연한 장점이 있다.

◇ Open API

● Open API(Open Application Programming Interface, Open API, 공개 API) 또는 공개 API는 개발자라면 누구나 사용할 수 있도록 공개된 API를 말하며, 개발자에게 사유 응용 소프트웨어나 웹 서비스의 프로그래밍 적인 권한을 제공한다.
● 구글, 카카오, 네이버 등의 여러 기업들은 개발자들을 위한 API를 제공하는 대표적인 예이다. 또한 대한민국 정부에서는 공공데이터포털을 통해 도로명 주소 조회 서비스, 동네예보정보조회서비스 등 Open API를 현재 운영 및 제공하고 있다.


  • 특허조사

◇ 쓰레기통 위치전송 시스템 - 1020170145657

야외 쓰레기통에 쓰레기통 위치 전송 칩을 부착하고, 쓰레기 소지자들이 모바일 앱을 설치해 이를 실행하면 근거리 반경 50-70m내의 쓰레기통에 부착된 쓰레기통의 위치를 모바일 앱에 표시한다.

◇ 쓰레기통 GPS 위치관리와 자동수거요청을 통한 스마트 쓰레기 자동 수거 서비스 시스템 - 1020170145657

쓰레기통용 센싱노드부, 자동수거용 스마트 디바이스, 스마트 자동수거 중계모듈을 통해 쓰레기통에 내용물이 꽉 찼을시, 사용자가 직접 나서지 않아도, 자동 수거 요청을 통해 자동수거서비스를 지원받을 수 있는 새로운 스마트 쓰레기 자동수거 중계시스템을 구축시킬 수 있다


  • 특허 전략 분석

◇ 쓰레기통에 위치 전송 칩을 부착하지 않아도 앱으로 쓰레기통의 위치를 알 수 있고 사용자를 통해 최신 정보가 업데이트 되므로 비용적인 측면에서 매우 현실적이다.

◇ 쓰레기통 자동수거를 위해 3개의 장치가 필요했던 기존 특허와 달리 모바일 앱 하나만으로 쓰레기통의 자동수거가 가능하다.


  • 기술 로드맵

◇ 수거함 위치정보 데이터 수집 -> 수거함에 쓰레기를 버리도록 참여 유도

◇ 수거함 상태, 수요 데이터 수집 -> 공공기관의 수요에 맞는 형태로 데이터 제공

◇ 클러스터링 -> 시민들의 수요에 맞는 수거함 위치 제안

◇ Open API 제공 -> 공공기관에 api를 통해 수거함 관련 정보 제공


시장상황에 대한 분석

  • 경쟁제품 조사 비교

Huemap001.png

◇ 쓰레기통 찾기 (https://play.google.com/store/apps/details?id=studios.applab.dustbinfinder)

● GPS 기술을 활용한 쓰레기통 위치 제공 애플리케이션
● 쓰레기통을 재활용과 비 재활용으로 구분하여 지도 기반 위치 조회 가능
● 넓은 사용 대상 지역의 설정 (글로벌)
● 공공데이터 미사용
● 쓰레기통 위치 정보가 제공되는 지역이 한정적이며 표시되는 개수 또한 적음
● 서비스에 등록되어 있지 않은 쓰레기통은 사용자의 참여로 제보 및 등록 가능
● 쓰레기통 위치 등록은 다른 사용자들의 채점을 통해 이뤄지고 점수가 너무 낮은 경우 허위 정보로 판단해 등록이 취소됨
● 사용자의 참여에 전적으로 의존하여 서비스 운영


◇ 쓰게더 (https://play.google.com/store/apps/details?id=kr.co.oliveandwine.trashcan&ref=apkcombo.com)

● 전국 쓰레기통 위치 안내 서비스 애플리케이션
● 쓰레기통의 위치를 지도상의 아이콘으로 표시하고, 아이콘 클릭시 해당 쓰레기통에 대한 정보(주소, 작성자, 내용) 제공
● 대한민국 전국 사용 대상
● 사용자는 사진과 위치를 서비스에 제공하여 미등록된 쓰레기통 등록 제보 가능
● 선택한 쓰레기통을 도착지로 설정하여 현재 위치로부터 도착지까지의 만보기 서비스 제공
● 서울특별시의 경우 공공데이터의 활용을 통해 1,000개 이상의 쓰레기통 위치가 등록되어 있음
● 일반 쓰레기통만을 취급하여 쓰레기통 종류에 따른 분류가 따로 있지 않습니다.


◇ Intellibins (http://intellibins.nyc/)

● 재활용 쓰레기통 위치 안내, 재활용 품목 정보 제공 애플리케이션
● 현재 서비스 종료
● 뉴욕시의 5개 자치구 대상
● 지도를 기반으로 1,535개의 재활용 수거 장소와 21개의 재활용 품목에 대한 정보 제공
● 지도상의 쓰레기통 아이콘 클릭시 쓰레기통이 설치된 곳의 주소, 현재 위치에서 떨어진 거리와 그곳에서 재활용이 가능한 다른 품목 정보 제공
● 의류, 전자기기 등 다양한 종류의 수거함을 분류하여 취급
● 가장 가까운 위치의 수거함을 자동으로 찾아주는 기능 제공


  • 마케팅 전략 제시

◇ Strength (강점)

● 관련 시장에 대한 분석 단계에서 프로젝트와 동일한 서비스를 제공하는 애플리케이션을 찾을 수 없었다. ‘쓰레기통 찾기’, ‘쓰게더’는 위치 기반 쓰레기통 위치 정보만들 제공해주는 애플리케이션이다. ‘Intellibins’는 쓰레기통에 대한 정보를 제공하지만 우리나라와 쓰레기통 수거 방법이 다른 것으로 확인되었고 현재 종료된 서비스이다. 또한 국내를 대상으로 한 ‘쓰레기통 찾기’는 공공 데이터가 아닌 사용자의 제보로만 등록된 쓰레기통으로 서비스를 운영하고 있다.
● 본 프로젝트는 쓰레기통 뿐만 아니라 일반 쓰레기통, 재활용 쓰레기통, 의류수거함, 폐형광등 수거함, 폐건전지 수거함, 폐의약품 수거함 총 7개의 폐수거함의 정보를 제공하여 폐수거함을 찾고자 하는 서울 시민들의 편의성을 증대시키기 위한 해결책을 제시한다.
● 7개의 폐수거함에 대한 정보는 공공데이터 포털에서 제공하는 서울특별시 각 구의 수거함 정보 데이터를 활용하여 애플리케이션 하나로 정확한 위치에서 간편하게 버릴 수 있도록 한다.
● 사용자의 자발적인 참여로 아직 서비스에 등록되지 않은 폐수거함의 정보를 등록하고 이를 검증하여 서비스의 품질을 향상시킨다. 사용자들이 폐수거함의 수요가 있다고 생각하는 위치를 검토해볼 수 있도록 수거함 설치 제안 기능을 갖는다. 또한 폐수거함이 꽉 차거나 제대로 관리되지 않아 문제가 생겼을 때 사용자가 이를 서비스에 제보할 수 있는 기능을 갖는다.

◇ Weakness (약점)

● 첫 번째, 공공데이터를 활용하여 공익성을 추구하는 프로젝트이기 때문에 상용적인 기능으로 수익 창출을 고려하지 않아도 된다. 하지만 서비스를 운영하고 관리하기 위해서는 최소한의 비용이 필요하고 서비스의 품질을 항샹시키기 위하여 관리 및 유지보수를 자동화 해야한다.
● 이를 극복하기 위해서는 사용자의 자발적인 참여와 공공기관의 협력 관계를 형성할 수 있다. 서비스에는 존재하지만 실제로는 존재하지 않은 폐수거함 제보, 서비스에는 존재하지 않지만 실제로 존재하는 폐수거함 제보, 서비스에 존재하는 폐수거함의 훼손, 더러움, 가득 찬 정도의 현재 상태 제보, 적절한 폐수거함 위치 건의를 통해 사용자의 자발적인 참여로 서비스의 품질을 향상시킬 수 있다. 또한 사용자 제보를 공공기관에게 제공함으로써 폐수거함 청결 문제 해결, 폐수거함 추가 설치 등을 기대할 수 있다.
● 두 번째, 폐수거함을 관리하는 공공기관과의 협력 관계가 형성되지 않으면 폐수거함 관리 요청, 폐수거함 추가 설치 제안 등의 기능이 제대로 작동하지 못할 수 있다.
● 이를 극복하기 위해서 폐수거함을 관리하는 공공기관에게 공공기관의 수요에 맞는 형태로 API를 제공함으로써 언제든지 접근할 수 있도록 도와줄 수 있다. 폐수거함 추가 설치 같은 경우에는 클러스터링을 통하여 서울시민들의 수요를 쉽게 확인할 수 있도록 도움을 줄 수 있다.

◇ Opportunity (기회)

● 서울특별시에서 서비스가 좋은 성과를 거두면 각 지자체와의 협력으로 서비스 제공구역 범위의 확장을 기대할 수 있다.
● 분리수거 쓰레기가 제대로 수거되어 쓰레기 문제로 발생하는 국가적 비용을 줄이고 환경 생태계를 보호하는 한편, 사람들의 움직임이 많은 거리, 시설의 미화효과 등을 기대해 볼 수 있다.

◇ Threat (위협)

● 아무리 긍정적인 기대효과가 있어도 사람들의 흥미와 관심을 이끌어내지 못하면 의미가 없다. 이에 쓰레기 분리수거와 수거 대상에 대한 도움이 되는 정보를 제공하거나, 사용자의 참여로 나타나는 긍정적인 변화의 지표를 게시하는 등 참여를 장려할 방안을 생각해 볼 수 있다.
● 거주지 공용 쓰레기통에서 종종 일어나는 생활쓰레기 배출 사례와 같이 공공 쓰레기통의 부정사용을 부추기는 등의 역효과를 방지해야한다. 생활쓰레기 배출 우발 쓰레기통에 무게 센서를 장착하는 등의 방법을 생각해볼 수 있다.


개발과제의 기대효과

기술적 기대효과

◇ 서울시 내의 쓰레기통, 의류수거함, 폐건전지 수거함, 폐형광등 수거함, 폐의약품 수거함 위치 정보를 API 형태로 외부에 공개함으로써 서비스의 저변을 넓힐 수 있다.

◇ 사용자의 참여로 아직 등록되지 않은 수거함의 정보를 등록하여 추후 업데이트에 영향을 미칠 수 있다.

◇ 쓰레기통이나 수거함의 위치에 대한 정보 데이터 전처리와 데이터를 가공 및 클러스터링을 거쳐 적절한 설치 위치를 각 행정구역 공공기관에게 추천할 수 있다.

경제적, 사회적 기대 및 파급효과

◇ 쓰레기통이나 수거함을 찾지 못하는 대상에게 가까운 쓰레기통의 위치를 제공함으로써 쓰레기 투기 현상을 감소시킬 수 있다.

◇ 쓰레기통이나 수거함이 꽉 차거나 제대로 관리되지 않아 생긴 문제들을 해당 행정구역 공공기관에게 알릴 수 있다.

◇ 사용자들이 적절한 수거함의 위치를 직접 제보함으로써 길거리 쓰레기통과 수거함 부족 문제 해결에 직접 영향력을 미치게 할 수 있다.


기술개발 일정 및 추진체계

개발 일정

Huemap002.png

구성원 및 추진체계

  • 구성원

◇ 강민성(팀장) : 프론트엔드

◇ 김지산 : 백엔드

◇ 류영준 : 백엔드

◇ 손동완 : 데이터마이닝, 프론트엔드


  • 추진체계

◇ 매주 정기 회의 시 진척도 보고와 피드백, 차주 계획 회의를 진행한다.

◇ 진척도 보고 시 지난주 구현 일정의 완성도를 수치화 하여 보고하며 이후 개발 일정에 수시로 반영한다.

◇ 문서 관리는 Notion, 개발 일정 관리는 GitHub Projects & Issues, 버전 관리는 GitHub, 회의 진행은 Google Meet를 활용


설계

설계사양

제품의 요구사항

  • 사용자 요구사항

◇ R1: 일반 사용자는 폐수거함이 표시된 지도를 볼 수 있다.

◇ R2: 일반 사용자는 지정한 폐수거함에 대한 상세 정보를 볼 수 있다.

◇ R3: 일반 사용자는 서비스에는 존재하지만 실제로는 존재하지 않은 폐수거함을 제보할 수 있다.

◇ R4: 일반 사용자는 서비스에 존재하는 폐수거함의 현재 상태(가득참, 훼손)를 제보할 수 있다.

◇ R5: 공공기관 사용자는 적절한 폐수거함의 위치를 건의할 수 있다.

◇ R6: 공공기관 사용자는 가득찬 폐수거함 위치 정보 API를 받아볼 수 있다


  • 사용자 요구사항 만족을 위한 기능 정의 및 기능별 정량목표

소프트웨어 개발 방법론 중 하나인 애자일(Agile) 방법론을 적용하며 프로젝트를 진행하고 있다. 기획 과정을 통해서 기획안을 작성하는데 애자일 방법론에서는 유저스토리와 백로그를 만들면서 방향을 나타낸다. 유저스토리(user story)는 통상 ‘요구 사항’이라고 부르는 시스템의 기능 설명을 사용자 관점에 이야기 하는 것이다. 백로그는 기능들에 대한 우선순위를 나타내고 기능적인 방향성, 비즈니스적 관점에 대해서 나타내며 추진해야 하는 업무를 뜻한다. 우선순위를 정하기 위해서 MosCow 방법론을 가지고 제품의 요구사항을 정의하였다.

- Must have: 프로젝트, 제품에 있어 반드시 필요한 기능을 의미 - Should have: 중요하지만 시급성이 Mush have 대비 낮은 기능 - Could have: 있으면 좋지만, 꼭 있어야 할 필요는 없는 기능 - Wont’t have: 가장 덜 중요하고, 효과도 미미한 기능


◇ Must have

Huemap003.png

◇ Should have

Huemap004.png


  • 기능 구현을 위한 세부기술 선택사항

◇ Spring Framework

Java/Kotlin 기반의 웹 프레임워크이며 DI를 지원하여 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.

프로젝트를 간편하게 설정할 수 있도록 도와주는 서브 프로젝트 스프링 부트가 있어 간단한 설정으로 빠른 실행이 가능하다.

◇ Docker

도커는 컨테이너 기반의 가상화 플랫폼으로, 도커를 이용하면 이미지를 실행시켜 컨테이너로 만들거나, 생성된 컨테이너를 관리하거나, 컨테이너를 다시 이미지로 만드는 작업을 통해 개발환경을 한번에 설정할 수 있는 이점이 있다.

◇ Flutter

Flutter는 구글이 출시한 오픈 소스 크로스 플랫폼으로 GUI 애플리케이션 프레임워크이다. 안드로이드, iOS, 윈도우즈, 리눅스 및 웹용 애플리케이션과 구글 퓨시아용 앱의 주된 소스코드로 사용된다.

◇ Flask

Python 기반 micro web framework이며 기본적으로 제공하는 기능이 적어 가벼우나 확장성이 뛰어나고 모듈 형식으로 다양한 기능을 추가할 수 있다.


◇ 지도상 폐수거함 조회 사용자 편의성과 직관성에 우수한 ‘사용자가 선택한 폐수거함 종류만 조회’ 방식 선택

◇ 사용자 제보 신뢰성과 서비스 품질 향상에 우수한 ‘제보하려는 폐수거함과의 일정 거리 이내에서의 제보만 반영’ 방식 선택

◇ 클러스러링을 통한 폐수거함 위치 제안 대용량 데이터를 더 잘 다루고 공공기관의 수용 맞는 군집 수를 처리할 수 있는 ‘K-means Clustering’ 방식 선택


개념설계안

◇ 서울특별시 내에 설치된 폐수거함 위치 정보 조회

● 일반 쓰레기통, 재활용 쓰레기통, 의류수거함, 폐건전지, 폐형광등, 폐의약품 수거함의 위치 정보 제공
● 지도상에서 사용자가 선택한 폐수거함 종류별로 위치 정보 제공

◇ 폐수거함 제보

● 서비스에는 존재하지만 실제로는 존재하지 않은 폐수거함 제보
● 서비스에는 존재하지 않지만 실제로 존재하는 폐수거함 제보
● 폐수거함의 훼손, 더러움, 가득 찬 정도의 현재 상태 제보
● 제보자와 제보하려는 폐수거함과의 거리가 10m 이내인 제보만 반영

◇ 폐수거함 추가 설치 위치 건의

● 사용자가 원하는 장소에 폐수거함 설치 건의

◇ 공공기관 협력

● 폐수거함 상태, 폐수거함 추가 설치 건의 현황을 API 형태로 제공
● 폐수거함 추가 설치 위치를 K-means 클러스터링하여 제공


소프트웨어 설계

상세설계 내용

내용

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

내용

포스터

내용

관련사업비 내역서

내용

완료작품의 평가

내용

향후계획

내용

특허 출원 내용

내용