소소하게

cdc wiki
2021com3 (토론 | 기여)님의 2021년 12월 18일 (토) 11:32 판 (점주앱 작동 장면)
이동: 둘러보기, 검색

목차

 [숨기기

프로젝트 개요

기술개발 과제

국문 : 소소한 장보기

영문 : Small shopping

과제 팀명

소소하게

지도교수

홍의경 교수님

개발기간

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

구성원 소개

서울시립대학교 컴퓨터과학부 20169200** 이*희(팀장)

서울시립대학교 컴퓨터과학부 20169200** 김*구

서울시립대학교 컴퓨터과학부 20169200** 엄*식

서울시립대학교 컴퓨터과학부 20169200** 우*욱

서론

개발 과제의 개요

개발 과제 요약

  • 소상공인과 소비자 간의 플랫폼을 제작
  • 소상공인, 소비자 각각의 앱을 제작하여 제공
  • 소상공인은 자신의 점포에 대한 정보, 제품에 대한 정보를 앱을 통해 업로드 가능
  • 소상공인은 자신의 점포에서 사용 가능한 쿠폰 발급이나 결제 후 적립되는 포인트의 비율 설정이 가능
  • 발급한 쿠폰과 포인트를 온라인 한정이 아닌 오프라인에서도 사용할 수 있는 기능 지원
  • 소비자는 지역기반 정보를 활용하여 소상공인이 등록한 정보들을 조회 가능하며, 지도를 통해서도 확인 가능
  • 소비자는 또한 채팅을 통해 해당 소상공인과 실시간 소통이 가능

개발 과제의 배경

현재 쿠팡과 배달의 민족 등 대형 플랫폼 기업의 유통/물류 사업 확대로 소상공인들은 공정한 경쟁을 할 기회를 잃기 시작하였다.

또 이러한 흐름은 COVID-19로 인한 사회의 언택트화와 주요 핵심 노동 연령의 온라인을 통한 소비 확대와 맞물려 점점 가속화되고 있다.

이에 우리는 이 문제의 원인을 소상공인이 온라인에 친숙한 현대 세대와 소통 가능한 방법의 부재로 해석하였다.

그리고 이를 해결할 수 있는 소상공인과 소비자 간의 플랫폼을 제작하여 제공하려 한다.

본 서비스를 통해 소상공인들은 온라인 마케팅을 위해 특정 대형 플랫폼에만 의존하는 경향을 줄여 플랫폼 간의 경쟁체제를 유지하고, 온라인 시장 진출 경로를 확대할 수 있다. 또한 소비자들은 더욱 폭넓게 지역 상점을 이용할 수 있다.

개발 과제의 목표 및 내용

소상공인들과 소비자 간의 소통 플랫폼을 제작한다.

해당 플랫폼은 앱 애플리케이션 기반 플랫폼으로, 소상공인과 소비자에게 각각의 애플리케이션을 제작하여 제공한다.

소상공인은 애플리케이션을 통해 자신의 점포에 대한 정보, 판매 물품에 대한 정보를 기재할 수 있고 점포와 관련된 홍보글 등을 작성할 수 있으며 이들은 실시간 수정이 가능하다.

추가적으로 자신의 점포에서 사용 가능한 쿠폰을 발급할 수도 있고, 결제 후 적립되는 포인트의 비율 설정을 할 수도 있다.

또한 이러한 쿠폰이나 포인트 사용을 온라인 상에 국한되지 않고 오프라인 상에서도 사용이 가능하게 기반 서비스를 이용할 수 있다.

소비자는 현재 위치 기반으로 근처 등록된 점포들을 찾을 수 있으며, 검색을 통해서도 점포를 찾을 수 있다. 또한 애플리케이션 내 존재하는 채팅 서비스를 통해 점포 주인에게 궁금한 점을 물어보는 등의 소통이 가능하다.

관련 기술의 현황

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

1. OPEN API
API는 서로 다른 두 프로그램이 상호작용하기 위해 요구되는 규칙의 모음이다. 두 프로그램이 한 컴퓨터에서 돌아가는 경우 OS가 제공하는 메커니즘을 통해 통신한다. 또 다른 종류의 API는 서로 다른 컴퓨터에서 돌아가는 프로그램 간에 소통을 의미한다. 이 경우, 대부분 TCP/IP 프로토콜을 통한 네트워크를 이용해 통신하는데 그중 다수가 HTTP를 통해 접근이 가능하다. 그중 OPEN API는 공공에 공개된 API이며 공개 API라고도 한다.
공개 API는 개발자에게 사유 소프트웨어 혹은, 웹 서비스의 프로그래밍적 접근을 허가한다. 이는 주로 기업, 정부에 의해 공개되며 많은 프로그램이 공개 API를 이용해 개발된다. 작년, 코로나 발생 초창기 많은 관심을 받은 코로나 맵 서비스도 네이버의 공개 API를 통해 개발되었다.
2. 클라우드 서비스
클라우드 서비스는 인터넷을 통해 인프라, 플랫폼, 소프트웨어 등을 추상화된 형태로 편리하게 제공받는 것이다. 서비스 이용자가 원하는 종류의 서비스를 원하는 시간 동안 사용할 수 있는 온디멘드(on-demand) 방식이다.
이와 대비되는 온프레미스(on-premise) 방식이 있는데 이는 클라우드처럼 원격 환경이 아닌 전산실과 같은 자체적인 서버에서 리소스를 관리하는 것을 말한다. 온프레미스 방식은 클라우드 서비스에 비해 보안성이 높다는 장점이 있지만, 구축과 관리에 많은 시간이 들고 확장이 어렵다는 단점이 있다.
현재 개인과 많은 기업의 IT팀에서도 인프라스트럭처 구축 비용에 드는 시간을 줄이고 핵심 업무에 집중할 수 있도록 리소스의 확장이 용이한 클라우드 방식을 많이 택하는 추세이다.
클라우드 서비스의 종류
(ㄱ) IAAS
INFRASTRUCTURE AS A SERVICE의 약자로 cpu, 메모리와 같은 컴퓨팅 자원과 스토리지를 서비스로 제공한다. 이 외에도 운영체제, 서버 위치, 데이터의 파티셔닝, 보안, 백업 등의 복잡한 부분을 추상화해서 고객이 관리하기 쉽도록 API 혹은 대시보드 형태로 제공한다. 컴퓨팅 자원은 리눅스의 cgroups와 namespace를 통해 여러 클라이언트가 같은 물리 하드웨어에서 리눅스 커널의 독립된 파티션을 할당받아 실행된다. 그러므로 사용자의 요구에 따라 유연하게 확장 또는 축소가 가능하다.
IAAS를 사용하면 손쉽게 운영 및 테스트 환경을 구축/제거할 수 있으며 비용 또한 경제적이다. 단점은 제공업체의 보안 문제 가능성, 여러 클라이언트와 물리 하드웨어를 공유함에 따라 생길 수 있는 서비스 신뢰성 등이 있다. (EX) AWS EC2)
(ㄴ) PAAS
PLATFORM AS A SERVICE의 약자로 운영체제, 네트워크, 하드웨어와 같은 세부사항들을 고려하지 않고 사용자가 오로지 애플리케이션 작성에만 집중할 수 있도록 실행환경을 제공한다. PAAS에서는 Java, Node.js 와 같이 애플리케이션을 실행할 수 있는 환경이 미리 설치된 상태로 제공되므로 사용자는 소스 코드만 제공하면 자동으로 컴파일 후 실행된다. IAAS보다 더 많은 프로비저닝을 자동으로 해주므로 매우 빠르게 애플리케이션을 개발 및 실행할 수 있다. 단점은 애플리케이션이 특정 플랫폼에 종속되므로 플랫폼 이동이 어려워질 수 있다는 점이다. (EX) AWS Elastic beanstalk)
(ㄷ) SAAS
SOFTWARE AS A SERVICE의 약자로 가장 포괄적인 형식의 클라우드 서비스이다. 애플리케이션의 모든 부분을 제공업체가 관리하며 사용자는 브라우저를 통해 서비스를 이용한다. 소프트웨어 업데이트가 제공업체를 통해 실행되므로 사용자는 항상 최신 SW를 사용할 수 있게 된다. (EX) 네이버 클라우드, Dropbox)

기술 로드맵

2021 2학기 소소하게 경쟁력분석보고서 기술로드맵.jpg

특허 조사

  1. 사용자 위치기반 추천 서비스 시스템 및 방법
  • 출원번호 / 일자 : 1020100107156 / 2010.10.29
  • 사용자의 가맹점 정보 요청에 따라 현재 사용자가 위치해 있는 위치 정보에 근거한 가맹점 정보를 실시간으로 사용자 단말기에 제공하거나, 해당 가맹점이 고객을 유치하기 위해 제공하는 할인이나 마일리지 이용 등에 대한 정보와 현재 이용객 숫자가 낮은 가맹점 정보를 사용자 단말기에 제공함으로써 사용자로 하여금 방문할 가맹점의 선택을 용이하게 하거나, 근방의 다수의 가맹점 중 최적의 가맹점을 추천할 수 있도록 된, 사용자 위치기반 추천 서비스 시스템 및 방법에 관한 것이다.

관련 시장에 대한 분석

경쟁제품 조사 비교

1. 놀러와요 시장

2021 2학기 소소하게 경쟁력분석보고서 놀장.png


  • 놀러와요 시장은 주식회사 위주에서 운영하는 전통시장 전용 배달 서비스 애플리케이션이다. 모바일온누리상품권, 서울사랑상품권 결제를 지원하며 소비자가 지역 광고를 시청할 시 현금처럼 사용할 수 있는 포인트를 지급한다.
  • 현재 광명전통시장, 망원시장 등 16개 전통시장에서 서비스가 이루어지며, 배달 대행 업체 중개 방식으로 운영하기 때문에 오전 10시에서 오후 5시까지만 주문 접수가 가능하다.
  • 또한 사업자가 점포 상황에 맞춰 주문을 처리할 수 있도록 주문 현황 정보를 제공하며 판매 매출을 관리할 수 있도록 사업자용 애플리케이션을 제공한다.

2. 먹깨비

2021 2학기 소소하게 경쟁력분석보고서 먹깨비.png


  • 먹깨비는 주식회사 먹깨비에서 운영하는 지역화폐 연계 요식업 배달 서비스 애플리케이션으로 서울, 세종, 충북, 경북 등 다양한 지역화폐를 통한 결제를 지원한다.
  • 쿠폰 서비스 뿐 아니라 타임할인 등 다양한 할인 개념을 사용하며 스탬프 기능을 통해 기존 오프라인 실물로 관리하던 재주문 고객을 위한 쿠폰을 온라인으로 사용할 수 있도록 지원한다.
  • 또한 점주가 메뉴에 대한 설명 뿐 아니라 별도로 PR을 작성할 수 있도록 하고 있다.

3. 띵동

2021 2학기 소소하게 경쟁력분석보고서 띵동.png


  • 띵동은 주식회사 허니비즈에서 운영하는 요식업 배달 서비스로 서울사랑상품권 결제를 지원하며 추가로 자체 띵동페이, 간편결제 PAYCO 등 다양한 결제 방식을 지원한다.
  • 또한 일부 지역에 한하여 소비자의 주문 패턴과 재주문율 등 다양한 정보를 바탕으로 맞춤 추천을 제공하지만, 사업자를 위한 애플리케이션을 제공하지는 않는다.

마케팅 전략

1. 3C 분석
A) 자사 (Company)

컴퓨터과학종합설계 교과목을 진행하기 위해 최초로 구성된 팀에서 기존 서비스와의 연계, 자사의 브랜딩 및 방향성과의 유사성을 분석하는 자사 분석은 적합하지 않다고 판단하여 생략한다.

B) 경쟁사 (Competitor)

본 보고서의 2-가에 서술한 주요 경쟁 서비스와 기타 유사 서비스들은 지원하는 업종에 따라 요식업 중심 서비스, 소매업 중심 서비스로 구분할 수 있다. 요식업 중심 서비스의 경우 전체 점포를 대상으로 운영하지만 소매업 중심 서비스의 경우 전통시장 등 특정한 점포만을 대상으로 운영하는 경우가 대다수이다.

C) 고객 (Customer)

본 보고서의 분석 대상 프로젝트는 사업자와 소비자를 연결하는 B2C 플랫폼이므로 고객 분석은 사업자와 소비자 2가지 측면으로 나누어 진행한다.
(ㄱ) 사업자
2021 2학기 소소하게 경쟁력분석보고서 모바일판매채널확대.png
소상공인 연합회가 소상공인 사업주들을 대상으로 조사를 진행하여 2019년 12월 26일에 발표한 위 자료를 보면, 사업자들의 37.1%는 온라인/모바일 판매 채널 확대가 사업에 긍정적인 영향을 미칠 것이라고 전망하고 있으며 49%의 사업주가 매출 증대에 도움이 될 것이라는 의견을 보여 매장 관리 및 판매를 온라인으로 확대하는 것을 지원하는 본 프로젝트의 고객이 될 가능성이 매우 크다고 판단한다.
(ㄴ) 소비자
2021 2학기 소소하게 경쟁력분석보고서 물품구매경로.png
2021 2학기 소소하게 경쟁력분석보고서 물품구매종류.png
전국 경제인 연합회가 MZ세대 (2,30대)를 대상으로 조사를 진행하여 2021년 9월 13일에 발표한 위 자료를 보면, MZ세대 소비자 중 주로 온라인/모바일을 통해 물품을 구입한다는 응답이 55.3%에 달했고, 향후 모바일, 온라인 구매를 현재 수준으로 유지하거나 늘리겠다는 응답은 96.7%에 달하는 것으로 나타났다. 또한 73.2%의 소비자는 모든 물품을 온라인으로 구매한다고 응답했다. 따라서 내 주변 소상공인의 점포와 물품을 온라인을 통해 노출하고 구매할 수 있도록 하는 본 프로젝트의 고객이 될 가능성이 매우 크다고 판단된다. 또한 서울시와 신한카드의 자체 조사결과 5,60대의 온라인 소비 증가율이 22.3%로 조사되어 MZ세대 뿐 아니라 시니어 세대 역시 본 프로젝트의 고객이 될 가능성이 크다고 판단된다.

2. STP 분석
A) 시장 세분화 (Segmentation)

본 보고서의 분석 대상 프로젝트는 사업자와 소비자를 연결하는 B2C 플랫폼이므로, 시장 구분 역시 3C 분석의 소비자 분석과 같이 2가지 측면으로 나눠서 진행한다.
(ㄱ) 사업자
  • 인구통계학적 구분 - 연령 및 성별 무관, 소상공인
  • 지리적 구분 - 국내 지역으로 한정
  • 심리적 구분 - 매장 관리 및 홍보, 판매를 온라인 영역으로 확대하고자 하는 사람
(ㄴ) 소비자
  • 인구통계학적 구분 - MZ세대 및 핵심노동연령, 성별 무관, 직업 무관
  • 지리적 구분 - 국내 지역으로 한정
  • 심리적 구분 - 온라인을 통한 물품 구매에 익숙하고 관심이 있는 사람

B) 타겟팅 (Targeting)

시장 세분화 결과 사업자 시장에 대해 구체적인 타겟 선정이 필요할 것으로 판단하여 사업자 시장에 대해 타겟 시장을 구체화한다.
  • 3C 분석의 경쟁사 분석에서 언급한 것과 같이 소상공인을 타겟으로 한 유사 서비스는 요식업 중심 서비스, 소매업 중심 서비스로 크게 구분할 수 있으므로, 사업자 시장 역시 요식업자와 소매업자로 구분한다.
  • 요식업자의 경우 우아한 형제들, 쿠팡과 같은 대형 플랫폼 기업의 서비스를 포함한 유사한 서비스가 매우 많아 온라인 영역으로 확장이 매우 쉽게 가능하지만, 소매업자의 경우 유사 서비스가 적고, 전통시장 내 점포 등 특정 조건을 만족하는 점포에 대해 서비스를 제공하는 경우가 많아 일부 사업자들만 서비스를 활용하고 있다. 따라서 소매업자를 타겟 시장으로 선정한다.

C) 차별화 (Positioning)

2021 2학기 소소하게 경쟁력분석보고서 STP차별화.png
첫 번째 업종 및 지리적 구분에 따른 잠재적 고객 구분을 보면, 경쟁 서비스의 사업 형태를 반영하여 지리적 구분은 전통시장 내의 점포와 전통시장 외의 점포, 업종 구분은 소매업과 요식업으로 구분하였다. 두 번째 서비스 범위 구분을 보면 기존 서비스들의 경우 요식업을 타겟으로 한 서비스의 경우 전체 점포, 소매업을 타겟으로 한 서비스의 경우 전통시장 내의 점포를 타겟으로 하여 전통시장 외의 소매업에 대한 서비스 공백이 발생하는 것을 확인할 수 있다.


따라서 본 보고서의 분석 대상 프로젝트의 서비스 범위를 포함한 마지막 합체도를 보면 서비스 공백 범위를 포함하는 차별성을 확보하며 전통시장 내의 소매업자 역시 고객으로 유치할 수 있을 것으로 판단한다.

차별화 전략

시장 타겟팅 전략과 함께 다음과 같은 서비스를 제공하여 사용자의 유입을 이끌어내고자 한다.

1. 위치 기반 정보 제공, 지역화폐 가맹점 소개

현재 프로젝트의 서비스는 지역 내에서의 소상공인과 소비자의 소비활동을 지원하는 것으로, 이에 사용자가 설정한 지역, 혹은 사용자의 현 위치를 기반으로 하여 주변 점포들의 정보를 전달한다.
2021 2학기 소소하게 경쟁력분석보고서 재난지원금(1).png
2021 2학기 소소하게 경쟁력분석보고서 재난지원금(2).png
또한 소상공인과 소비자의 소비활동 지원에 있어서 정부나 지역 단체 차원에서도 지원을 해주는데, 서울시의 제로페이나 경기도의 지역화폐가 그 대표적 예이다. 이러한 지역화폐가 최근 들어 많은 소비자들에 의해 사용되고 있지만, 이러한 지역화폐가 특정 매장들에서 사용 가능한지 확인하는 방법들의 편의성이 떨어진다는 불편 사례들이 많이 있다.
이에 본 서비스에서는 소상공인 점포들의 위치 기반 정보 제공과 함께 지역화폐 가능 매장 정보도 제공함으로써 사용자들의 유입을 유도하고자 한다.


2. 물품의 상세 정보 제공, 채팅 서비스

소상공인 온라인 플랫폼을 통해 소비자들은 물품의 상세 정보를 확인할 수 있다.
또한, 상인과의 채팅 서비스를 제공하여 더욱 사용자가 원활하게 정보를 획득하고, 소비까지 이어질 수 있도록 지원한다.


3. 각 상점별 자체 쿠폰/포인트 제도 지원

기존의 소상공인들이 대형 프렌차이즈 사들과의 경쟁에서 불리했던 부분 중 하나는 쿠폰, 포인트 제도라고 판단하였다. 소비자가 각각 다른 점포에서 운영하는 쿠폰, 포인트를 오프라인으로 관리하는데 불편함을 느끼기 때문이다. 또한, 기존의 대형 플랫폼사에서는 통합적인 쿠폰, 포인트 제도를 시행함으로써 각 소상공인들이 단골 고객을 유치하고, 그들만을 위한 혜택을 제공하는데는 어려움을 겪었다.
본 서비스에서는 각 상점 별 자체 쿠폰/포인트 제도를 지원함으로써 소상공인들의 독자적인 홍보 이벤트와 단골 고객 유치를 지원하고, 소비자에게는 편리함과, 경제성을 제공하고자 한다.


4. 온라인 장바구니 및 픽업 예약 서비스

소상공인 플랫폼을 통해, 각 점포들의 물건을 확인하고 소비자가 이를 예약 및 픽업할 수 있는 기능을 제공한다.
점주에게는 일정 관리 기능을 제공하여, 예약 및 픽업 서비스 관리를 돕고 가게 운영의 편의성을 제공한다.

개발과제의 기대효과

기술적 기대효과

  • 모바일 중심 개발을 통해 소상공인들의 편의성 및 접근성을 확대할 수 있을 것이며, 지도 API를 활용한 위치기반 서비스를 통해 소비자들이 기대하는 지역적 정보를 용이하게 획득 가능할 것이다.
  • 또한, 클라우드 서버를 통해 안정성 있는 서비스의 제공을 기대할 수 있으며, 지역화폐, 금융사, 카드사와의 협력을 통한 결제수단 확충, 배달 서비스와의 연계 등과 같이 다양한 기술적 확장가능성 역시 기대할 수 있다.
  • 나아가 점포 정보, 매출, 소비 패턴 등의 데이터 확충으로 추후 다양한 소상공인 상권 연구에도 활용될 수 있을 것이다.

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

  • 본 서비스를 통해 소상공인들의 온라인 시장 진출 경로를 확대하고, 매장 관리 서비스를 제공하여 상인들의 업무 부담감을 줄일 수 있을 것이다. 나아가 서비스의 이용을 통해 소상공인들의 ICT 기술 친숙도를 높힘으로써 4차 산업혁명 시대에서 이들을 보호하고, 지속적인 경쟁력을 유지하는데 기여할 수 있을 것이다.
  • 한편, 소비자는 지역 기반 상권에 대한 접근성 증가와 각 점포와의 실시간 소통을 통해 폭넓은 정보에 따른 소비 선택 범위가 증가할 것이고, 각 물품 등에 대한 정보 및 가격을 실시간으로 확인할 수 있어 정찰제 문화의 정착까지 기대할 수 있을 것이다.
  • 나아가 소상공인-소비자 소통 플랫폼의 이용 확산을 통해 특정 대형 플랫폼들에 종속되던 온라인 마케팅 방식을 개선하고, 지역 소상공인들과 대형 프랜차이즈들과의 공정한 경쟁과 더불어 이들의 상생을 도모하여 건전한 시장질서의 확립으로 나아갈 수 있을 것이다.

과제에서 사용할 세부기술

주제벌 세부기술

1. Firebase

  • Firebase는 구글에서 운영하는 플랫폼으로, 여러 가지 백엔드 기능을 제공해준다. 이를 통해 인증이나 데이터베이스, 스토리지 등의 기능을 보다 쉽게 사용할 수 있다.
  • 특히 Firebase는 데이터베이스로 RDBM이 아닌 클라우드에 호스팅 되는 NoSQL 기반의 데이터베이스를 사용하여, 사용자의 기기와 실시간으로 데이터 동기화가 가능하다. 이를 통해 애플리케이션의 실시간 동기화나 채팅 기능을 구축한다.

2. Android

  • 프로젝트의 구성 상 앱 애플리케이션이 필수적이고, 팀원 전체의 러닝 커브를 고려하여 상당수가 한 번이라도 경험해본 안드로이드 os 기반으로 앱 애플리케이션을 제작한다.
  • 최근 Android 11(API 수준 30)부터는 애플리케이션에 대하여 외부 저장소의 접근 권한이 대폭 강화되어, 프로젝트 기능에 대해 외부 저장소를 접근을 최대한 줄인다. 추가로 프로젝트 설계 상 API 서버를 두고 애플리케이션이 이와 API 통신을 해야 하기에, 안드로이드에서는 HttpURLConnection 기능을 사용하여 서버와 통신을 할 수 있다.

3. Spring Framework

  • 객체 지향 언어인 자바 기반의 오픈 소스 프레임워크로, 해당 프레임워크 위에서 Spring Data JPA, Spring Session, Spring Security 등 다양한 기술을 활용하여 웹 서버를 구축할 수 있다. 특히 대한민국의 경우 웹 서비스 개발에 대해 권장하고 있는 전자정부 프레임워크의 기반 기술이 바로 이 Spring Framework이다.
  • 기존 단순 자바 언어를 통해 로직을 실행하는 경우, 일반적으로 특정 객체에 대한 의존성 객체들을 주입하고 해당 객체의 함수를 호출하게 된다. 하지만 이런 경우에 만약 의존성 객체를 교체해야 한다면 클라이언트의 코드를 변경해야 하는 단점이 존재한다. 이를 서버에 반영하게 되면 부분 기능의 모듈화에 대해, 유지보수에 있어서 매우 어려움이 생긴다. 이에 Spring Framework를 사용해 이런 의존성 객체를 넣는 권한을 쉽게 다른 객체에 위임하고, 전반적인 객체의 관리를 Spring Framework가 담당하게 하여 매우 효율적인 서버 관리가 가능해진다.
  • 또한 서버의 최대 문제점인 동기화 문제의 해결 방법 중 한 가지는 로직을 진행하는 객체를 싱글톤으로 사용해야 한다. 이런 싱글톤 패턴을 적용하기 위해선 복잡한 코드 적용, 테스트 어려움, 내부 속성을 변경하거나 초기화의 어려움 등 유연성이 매우 떨어진다. 하지만 Spring Framework에서 객체들을 관리하는 Spring 컨테이너는 싱글톤 패턴을 적용하지 않아도, 객체 인스턴스를 싱글톤으로 관리한다. 그러기 때문에 Spring Framework를 사용함으로써 싱글톤 패턴의 문제점을 해결하면서, 객체를 기본적으로 싱글톤으로 만들어서 관리할 수 있다.

4. Amazon Web Services

  • 클라우드 시장에서 전세계적으로 압도적인 시장점유율을 보유하고 있다. 2020년 4분기 기준 AWS가 32%로 1위, Microsoft사의 Azure가 20%로 2위, Google이 9%로 3위를 기록했다. AWS가 제공하는 서비스들은 Azure와 크게 다르지 않으나 조사결과 Azure는 오픈 소스 지원과 기존의 Microsoft의 제품과 일관된 통합을 지원한다는 점에서 강점을 보였다. Google의 클라우드 서비스는 빅데이터 분석과 머신러닝 및 컨테이너 기반의 클라우드 네이티브 애플리케이션을 위한 최적의 서비스를 제공했다.
  • 현재 프로젝트는 모바일 앱 애플리케이션과 그와 통신할 서버를 구성하는 것이 핵심이기 때문에 이에 특별한 강점이 없는 Google 클라우드 서비스는 제외했다. AWS는 광범위한 서비스를 제공하기 때문에 관리에 많은 지식이 필요하다는 특징이 있지만, Azure에 비해 문서화가 잘 되어있다는 의견이 많았다. 이에 더해 팀원들의 러닝 커브를 고려하여 팀원 중 다수가 조금이라도 경험한 적 있는 서비스를 사용하는 것이 옳다고 생각해서 AWS를 사용하기로 하였다.
  • 사용할 주요 서비스는 다음과 같다.
    • AWS EC2 - Spring 기반의 API 서버 실행
    • AWS RDS - MySQL 기반 관계형 데이터 저장, 백업 및 복구
    • AWS S3 - 대용량 파일 스토리지
    • AWS Route53 - 도메인 구입 및 DNS 서버 대용

기술개발 일정 및 추진체계

개발 일정

소소하게 일정.png

구성원 및 추진체계

소소하게 계통도.png

설계

설계사양

제품의 요구사항

소소하게 요구사항.png

평가 내용

2021 2학기 소소하게 개념설계보고서 평가항목.jpg
평가 내용은 다음과 같다.

개념설계안

2021 2학기 소소하게 개념설계보고서 개념설계안.jpg

  • 고객은 지도 API를 통해 위치 좌표를 기반으로 하여 점포 탐색 가능
  • 이후 고객은 검색을 통해 추가적인 점포들의 정보를 파악
  • 고객은 더 알고 싶은 점포 관련 정보를 위해 소상공인과 채팅이 가능
  • 고객은 앱을 통해 점포의 물품들을 구매 가능하며 방문 픽업이나 배달 신청 가능
  • 소상공인은 점포의 소개, 판매 물품, 소식 글이나 이벤트성 글을 작성해 등록
  • 상인들은 마케팅을 위해 자체적인 포인트 정책 설정과 쿠폰 제작 가능
  • 포인트, 쿠폰 사용이 온라인에 국한되지 않고 오프라인 사용도 가능하도록 기능 제공

가. 고객 / 점주를 위한 앱 및 기능 제공 방법

1. 통합 앱 제작 및 배포
하나의 앱으로 두 기능을 모두 제공한다. 서버와 DB는 동일하게 이용하고, 역할 별 계정 역시 통합하여 사용한다.
2. 앱 이원화 제작 및 배포
고객용 / 점주용 앱을 분리하여 개발, 제공한다. 서버와 DB는 동일하게 사용하지만, 역할 별 계정 역시 분리하여 사용한다.


2021 2학기 소소하게 개념설계보고서 분석 앱기능.jpg
2021 2학기 소소하게 개념설계보고서 분석 앱기능 점수.jpg
개발 효율성 및 러닝커브와 이용자의 편의성을 고려하여 총점이 더 높은 ‘통합 앱 제작 배포’ 방식 선택.

나. 고객 위치기반 주변 점포 검색 방법

1. 행정구역 기반 주변 점포 검색
점포 정보 입력 시 받는 도로주소, 상세주소를 행정구역 단위대로 나누어 데이터베이스에 저장하며 해당 필드들에 대해 인덱스를 생성한다. 이후 고객이 주변 점포 검색을 시도할 시 사용자의 주소를 받으며 입력받은 특정 구역(행정동)을 바탕으로 점포 데이터베이스에서 해당 행정동과 인근 행정동들을 필드로 갖는 점포들을 탐색, 해당 결과를 보여준다.
2. 위도, 경도 기반 주변 점포 검색
점포 정보 입력 시 받는 도로주소, 상세주소를 가지고 위도와 경도로 변환하여 데이터베이스에 저장하며 해당 필드들에 대해 인덱스를 생성한다. 이후 고객이 주변 점포 검색을 시도할 시 사용자 위치의 위도와 경도를 바탕으로 특정 범위의 조건문을 생성, 데이터베이스에서 검색한다. 이후 결과들을 사용자에게 보여준다.

2021 2학기 소소하게 개념설계보고서 분석 점포검색.jpg
2021 2학기 소소하게 개념설계보고서 분석 점포검색 점수.jpg
검색 속도와 데이터 무결성 등을 고려하여 총점이 더 높은 ‘위도, 경도 기반 주변 점포 검색’ 방식 선택.

다. 고객과 점포 주인 간의 채팅 정보 저장 방법

1. 관계형 데이터베이스에 저장, 활용 방안
각 고객과 점포 주인의 오가는 채팅에 관한 데이터를 SQL을 사용하는 관계형 데이터베이스에 저장, 활용한다. 이 경우 보내는 메시지를 단위로 저장한다.
2. NoSQL 데이터베이스에 저장, 활용 방안
고객과 점포 주인의 오가는 채팅에 관한 데이터를 NoSQL을 사용하는 데이터베이스에 저장, 활용한다. 이 경우 고객과 점포 주인이 채팅하는 내역 전체를 단위로 저장한다.

2021 2학기 소소하게 개념설계보고서 분석 채팅.jpg
2021 2학기 소소하게 개념설계보고서 분석 채팅 점수.jpg
총합 점수는 동일하나, 팀 내부 회의 결과 채팅이란 기능 자체에서 데이터 구조의 스키마가 크게 중요하지 않고 대량의 단순 정보를 빠르게 저장하고 조회해야 하기 때문에 'NoSQL 기반 데이터 베이스에 저장, 활용 방안' 방식 선택.

라. 쿠폰 코드 발급

1. 동일 쿠폰에 대해 다른 코드 발급
점포 주인이 발급할 쿠폰들을 모두 다른 코드로 미리 발급하여 저장하는 방식으로, 동일한 쿠폰이더라도 받은 고객들은 모두 다른 쿠폰 코드를 가지고, 사용 시에 이에 대해 검증하여 사용한다.
2. 동일 쿠폰에 대해 동일 코드 발급
점포 주인이 쿠폰을 발급할 시 그 쿠폰에 대한 일률적인 코드를 부여하는 방식으로, 고객은 동일한 쿠폰에 대해 모두 동일한 쿠폰 코드를 사용하고, 유효기간과 등록의 방식으로 쿠폰을 고객에게 할당한다.

2021 2학기 소소하게 개념설계보고서 분석 쿠폰.jpg
2021 2학기 소소하게 개념설계보고서 분석 쿠폰 점수.jpg
주요 강점이자 소비자들의 어플 사용 유인을 중시하여 활용성에 중점을 두었고, 이로 인해 점수 차이가 가장 컸음. 총점이 더 높은‘동일 쿠폰에 대해 동일 코드 발급’ 방식 선택.

소프트웨어설계

2021 2학기 소소하게 상세설계보고서 소프트웨어설계.jpg

  • 안드로이드 클라이언트의 요청을 Spring Boot를 통해 처리한다
  • 기본 데이터베이스로는 MySQL을 이용하고, 고객, 점포, 물건, 결제내역 등 서비스에 필요한 대부분의 데이터를 저장한다.
  • Spring Boot와 MySQL은 AWS 서비스를 활용한다.
  • 채팅 서비스는 Firebase RealTime DB를 활용하여 메시지를 저장 / 제공한다.

유스케이스

가. 유스케이스 다이어그램

  • 고객 유스케이스도

2021 2학기 소소하게 상세설계보고서 유스케이스 고객jpg.jpg

  • 점포 주인 유스케이스도

2021 2학기 소소하게 상세설계보고서 유스케이스 점주jpg.jpg

  • 관리자 유스케이스도

2021 2학기 소소하게 상세설계보고서 유스케이스 관리자jpg.jpg

나. 액터 목록

2021 2학기 소소하게 상세설계보고서 유스케이스 액터목록.jpg

다. 유스케이스별 시나리오


2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오1.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오2.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오3.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오4.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오5.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오6.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오7.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오8.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오9.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오10.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오11.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오12.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오13.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오14.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오15.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오16.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오17.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오18.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오19.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오20.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오21.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오22.jpg
2021 2학기 소소하게 상세설계보고서 유스케이스 시나리오23.jpg

UI 정의

UI Flow

관리자 UI

2021 2학기 소소하게 상세설계보고서 UI정의 1.png

고객 UI

2021 2학기 소소하게 상세설계보고서 UI정의 2.png

점포 주인 UI

2021 2학기 소소하게 상세설계보고서 UI정의 3.png

화면 목록

권한은 고객과 점주 모두 로그인 여부로 구분하여, 회원, 비회원, 전체사용자 (회원 + 비회원)으로 구분한다. 2021 2학기 소소하게 상세설계보고서 UI정의 4.png
2021 2학기 소소하게 상세설계보고서 UI정의 5.png
2021 2학기 소소하게 상세설계보고서 UI정의 6.png
2021 2학기 소소하게 상세설계보고서 UI정의 7.png
2021 2학기 소소하게 상세설계보고서 UI정의 8.png
2021 2학기 소소하게 상세설계보고서 UI정의 9.png

화면 정의

소비자용 앱

2021 2학기 소소하게 상세설계보고서 UI정의 10.png
2021 2학기 소소하게 상세설계보고서 UI정의 11.png
2021 2학기 소소하게 상세설계보고서 UI정의 12.png
2021 2학기 소소하게 상세설계보고서 UI정의 13.png
2021 2학기 소소하게 상세설계보고서 UI정의 14.png
2021 2학기 소소하게 상세설계보고서 UI정의 15.png
2021 2학기 소소하게 상세설계보고서 UI정의 16.png
2021 2학기 소소하게 상세설계보고서 UI정의 17.png
2021 2학기 소소하게 상세설계보고서 UI정의 18.png
2021 2학기 소소하게 상세설계보고서 UI정의 19.png

점주용 앱

2021 2학기 소소하게 상세설계보고서 UI정의 20.png
2021 2학기 소소하게 상세설계보고서 UI정의 21.png
2021 2학기 소소하게 상세설계보고서 UI정의 22.png
2021 2학기 소소하게 상세설계보고서 UI정의 23.png
2021 2학기 소소하게 상세설계보고서 UI정의 24.png
2021 2학기 소소하게 상세설계보고서 UI정의 25.png
2021 2학기 소소하게 상세설계보고서 UI정의 26.png
2021 2학기 소소하게 상세설계보고서 UI정의 27.png
2021 2학기 소소하게 상세설계보고서 UI정의 28.png
2021 2학기 소소하게 상세설계보고서 UI정의 29.png
2021 2학기 소소하게 상세설계보고서 UI정의 30.png
2021 2학기 소소하게 상세설계보고서 UI정의 31.png
2021 2학기 소소하게 상세설계보고서 UI정의 32.png
2021 2학기 소소하게 상세설계보고서 UI정의 33.png
2021 2학기 소소하게 상세설계보고서 UI정의 34.png

관리자 페이지

2021 2학기 소소하게 상세설계보고서 UI정의 35.png
2021 2학기 소소하게 상세설계보고서 UI정의 36.png

데이터베이스

MySQL

ERD

2021 2학기 소소하게 상세설계보고서 데이터베이스 1.png

테이블 정의

2021 2학기 소소하게 상세설계보고서 데이터베이스 2.png
2021 2학기 소소하게 상세설계보고서 데이터베이스 3.png
2021 2학기 소소하게 상세설계보고서 데이터베이스 4.png
2021 2학기 소소하게 상세설계보고서 데이터베이스 5.png
2021 2학기 소소하게 상세설계보고서 데이터베이스 6.png
2021 2학기 소소하게 상세설계보고서 데이터베이스 7.png
2021 2학기 소소하게 상세설계보고서 데이터베이스 8.png
2021 2학기 소소하게 상세설계보고서 데이터베이스 9.png

Firebase Realtime DB

구조도

2021 2학기 소소하게 상세설계보고서 데이터베이스 10.png

JSON 형식

2021 2학기 소소하게 상세설계보고서 데이터베이스 11.png

결과 및 평가

완료 작품의 소개

고객앱 작동 장면

  • 고객 회원가입

1 고객 회원가입.gif

  • 고객 로그인

2 고객 로그인.gif

  • 고객 상점이름 검색

3 고객 상점이름검색.gif

  • 고객 물품이름 검색

4 고객 물품이름검색.gif

  • 고객 상점카테고리 검색

5 고객 상점카테고리검색.gif

  • 고객 지도

6 고객 지도.gif

  • 고객 관심가게

7 고객 관심가게.gif

  • 고객 상점정보

8 고객 상점정보.gif

  • 고객 상점신고

8-1고객 상점신고.gif

  • 고객 채팅

9 고객 채팅.gif

  • 고객 장바구니

10 고객 장바구니.gif

  • 고객 쿠폰

11 쿠폰.gif

  • 고객 포인트확인

15 고객 포인트확인.gif

  • 고객 내 후기

16 내 후기 조회, 이동, 삭제.gif

  • 고객 주문시작

17-1 주문시작.gif

  • 고객 주문일정

17-2 주문 일정.gif

  • 고객 주문포인트

17-3 주문 포인트.gif

  • 고객 주문내역

18 주문내역.gif

  • 고객 내 정보 수정

19 내정보 수정.gif

  • 고객 회원탈퇴, 로그아웃

20 회원탈퇴, 로그아웃.gif

  • 고객 회원탈퇴, 로그인시도

21 회원탈퇴, 로그인시도.gif

  • 고객 아이디찾기, 비밀번호 찾기

22 아이디찾기, 비밀번호찾기.gif

점주앱 작동 장면

  • 점주 회원가입

(점주)1 가입.gif

  • 점주 로그인

(점주)2 로그인.gif

  • 점주 점포 등록 (점포 정보 입력)

(점주)3-1 점포등록.gif

  • 점주 점포 등록 (사업자 정보 입력)

(점주)3-2 점포등록.gif

  • 점주 점포 선택

(점주)4 점포입장.gif

  • 점주 포인트 관리

(점주)5-포인트 수정,적립.gif

  • 점주 쿠폰 발급

(점주)6-1 쿠폰 발급.gif

  • 점주 쿠폰 수정/중단

(점주)6-2 쿠폰 수정,중단.gif

  • 점주 물품 등록

(점주)7-1 물품등록.gif

  • 점주 물품 수정

(점주)7-2 물품수정.gif

  • 점주 게시글 관리

(점주)8 게시글 등록,수정.gif

  • 점주 리뷰확인

(점주)9 리뷰확인+채팅.gif

  • 점주 주문수락

(점주)10 주문수락.gif

  • 점주 주문처리

(점주)11 주문준비완료.gif

  • 점주 점포정보 수정

(점주)12 점포정보 수정.gif

  • 점주 일정 확인

(점주)13 일정확인.gif

  • 점주 채팅

(점주)14 채팅.gif

  • 점주 가계부 관리

(점주)15 가계부 관리.gif

관련사업비 내역서

소소하게 예산.png

완료작품의 평가

소소하게 평가.png

향후계획

  • 향후 실제 비즈니스로의 확대를 위한 사업자 등록, 또한 다양한 실제 결제 서비스와의 연계
  • 점주, 고객 검증용 사업자 등록 검증 프로세스, 휴대폰 인증 프로세스 도입
  • 점주가 다량의 물건을 쉽게 등록할 수 있는 대량 등록 시스템 구축
  • 더욱 다양하고 세분화된 검색 조건 제공
  • 고객, 점주 간의 채팅에서 이미지나 장바구니 데이터 활용이 가능하도록 기반 구축
  • 점주가 점포에서 작성한 글들에 대해 해당 점포를 관심가게로 설정한 고객들에게 알림이 갈 수 있는 알림 서비스 구축