qcoding

1) 프로젝트 소개 및 개발 계획 본문

[사이드 프로젝트]App개발 - 전국 국밥 찾기

1) 프로젝트 소개 및 개발 계획

Qcoding 2022. 1. 10. 10:32
반응형

1) 목적

-> 각 종 온라인 강의와 유튜브를 통해 많은 것을 배웠음에도 아직 무언가를 스스로 만드는 것 자체에 부담감이 많이 있는 와중에 ReactNative를 공부한 후 App제작에 대한 흥미가 생겨 Android로 출시하기 위해 사이드 프로젝트를 진행하고자 한다.

 주제를 어떤 것을 정할까 하다가 다양한 기능 중에서 지도기반의 위치를 보여주는 기능을 해본적이 없다는 것을 생각하여 내가 좋아하는 국밥을 지도상에서 표시하고 정보를 전달하는 App을 만들기로 결정하였다.

 

2) 개발계획

- 개발환경

1) React Native Cli

-> expo cli 사용과 고민하였지만, 추후에 기능을 추가로 넣을 수 있고 ReactNative Cli에만 지원되는 라이브러리 등이 있어서 결정하였다.

https://reactnative.dev/

 

React Native · Learn once, write anywhere

A framework for building native apps using React

reactnative.dev

 

2) DB (Firebase or 내부 저장소 (AsyncStorage 또는 Realm SDK 사용)

-> 국밥집 정보를 저장하기 위해서는 DB가 반드시 필요하고 음식점 추가나 폐업등으로 인한 정보 변경 시에는 DB에서 수정을 해야함으로 Firebase를 사용하려고 계획하고 있다. 그러나 Firebase 사용은 특정 트래픽이 넘어가면 유료로 변하게 되므로 우선 local json파일 형태를 만들어 App을 구축한다음 Realm SDK를 사용하여 스마트폰에 정보를 저장하는 식으로 만들려고 한다. 추후에는 Firebase 연결도 진행할 예정이다.

 

https://firebase.google.com/?gclsrc=aw.ds&gclid=CjwKCAiArOqOBhBmEiwAsgeLmRs4WGIjtFzCzRs9veOwXqO8RQD3gs-mXXms5TxyPsr-kq3vvNMbhhoCAYUQAvD_BwE 

 

Firebase

Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다.

firebase.google.com

https://docs.mongodb.com/realm/sdk/

 

Realm SDKs — MongoDB Realm

Docs Home → MongoDB RealmMongoDB Realm has open-source SDKs available for most popular languages, frameworks, and platforms. Each SDK is language-idiomatic and includes:The core database APIs for creating and working with on-device databases.The APIs you

docs.mongodb.com

 

 

- 기능

1) 전국에 있는 국밥집을 지역별로 구분하여, 지역을 클릭하였을 때 지도상에 나타나게 한다.

2) 내가 좋아하거나 가본적이 있는 국밥집에 대하여 스마트폰내에 내부 저장소에 저장할 수 있게한다.

3) 별도의 부가기능 ex) 국밥값 내기를 위한 게임기능 

 

만들면서 변경이 될 수도 있지만 위와 같이 3가지의 기능을 중점적으로 개발을 진행하려고 한다. 위의 기능 구현을 위한 각각의 필요한 것을 좀더 살펴보도록 하자.


1) 전국에 있는 국밥집을 지역별로 구분하여, 지역을 클릭하였을 때 지도상에 나타나게 한다.

 

 

-> 우선 전국에 있는 국밥집에 대한 정보를 가져와야 한다. 이 때 유용하게 사용할 수 있는 것이 python을 통한 크롤링이다. 이미 많은 사람들이 크롤링을 통해 필요한 정보를 수집하고 그를 활용해서 빅데이터, AI 학습, App개발에 활용하고 있으며 유용한 라이브러리들이 많이 있다. 

 여기서는 PYTHON + Selinium + Beautiful Soup를 사용하여 chrome을 통해서 웹크롤링을 진행할 예정이다.

https://www.selenium.dev/

 

Selenium

Selenium automates browsers. That's it!

www.selenium.dev

https://www.crummy.com/software/BeautifulSoup/bs4/doc/

 

Beautiful Soup Documentation — Beautiful Soup 4.9.0 documentation

Non-pretty printing If you just want a string, with no fancy formatting, you can call str() on a BeautifulSoup object, or on a Tag within it: str(soup) # ' I linked to example.com ' str(soup.a) # ' I linked to example.com ' The str() function returns a str

www.crummy.com


2) 내가 좋아하거나 가본적이 있는 국밥집에 대하여 스마트폰내에 내부 저장소에 저장할 수 있게한다.

-> 위의 기능을 구현하기 위해서는 클라우드 서비스(Firebase)를 이용하거나 스마트폰 내부저장소 (AsyncStorage 또는 Realm SDK 사용) 하는 방법이 있을 수 있다.

 먼저 Firebase로 구현하려면 user에 대한 정보가 저장되어야 하므로. 회원가입과 로그인 기능을 만들고 FireStore를 통해서 user id에 따른 정보를 저장하는 것을 구현해야 한다.

 두번쨰로 내부저장소를 통해 구현을 하려면 AsyncStorage 또는 Realm SDK를 사용해서 스마트폰 내부저장소에 저장하는 기능을 만들면 된다. 그러나 이는 스마트폰에 한정되어 있어서 기기 변경시에는 유지되지 못한다는 단점이 있다. 

우선은 두번째로 내부저장소를 통해 구현한 후 필요성이 있으면 Firebase를 사용하려고 한다. 그 이유로는 현재 만들고자 하는 App은 유저와 소통이 필요한 형태 또는 실시간 정보가 필요한 형태가 아니라고 생각했기 때문이다.

 


3) 별도의 부가기능 ex) 국밥값 내기를 위한 게임기능 

-> 별도의 부가기능은 아직 확정하지는 않았지만, ReactNative를 통해 구현할 수 있고 간단한 내기를 위한 기능을 만들려고 한다. 추후에 변경이 될 수 있으므로 추가적인 업로드에서 결정할 계획이다.

반응형
Comments