가게 등록 및 회원가입 | 고객 회원가입 |
점주 로그인 | 고객 로그인 |
대기자 호출 | 호출 알림 |
대기자 입장 | 1순위 알림 |
대기 취소 | 취소 알림 |
- React, ReactNative
- TypeScript, Naver Map API
저희 Waiter는 상업주와 소비자 모두를 대상으로하는 플랫폼형 서비스입니다.
이에 따라 두 라이브러리간 상호보완이 잘 되고, 컴포넌트 관리가 용이한 React와 ReactNative를 채택하였습니다.
이 과정에서 개발의 효율성을 위하여 TypeScript를 적용하였습니다.
또한 사용자의 위치 현황과 주변의 인프라 정보를 수집하고자 Naver Map API를 적용하였습니다.
- Django, PostgreSQL
- FireBase
- JWT, Redis
다양한 라이브러리와 클래스 매핑이 가능한 Python 기반 프레임워크인 Django를 사용하였습니다.
DB로는 이와 호환성이 좋은 PostgreSQL를 채택하였고 WSGI를 위한 Gunicorn을 적용하였습니다.
특정 안드로이드 기기에 대하여 알람을 보내주기 위해서 FireBase Cloud Messaging 기술을 적용하였습니다.
로그인시 JWT 토큰을 적용하였으며, 해당 토큰을 관리하기 위해서 Redis를 적용하였습니다.
- NGINX
- ElasticSearch, logstash
- Amazon RDS, Github Actions
Reverse Proxy를 위한 Nginx사용하였습니다.
또한 원하는 음식과 가게를 검색하기 위해서 검색엔진으로 ElasticSearch를 적용하였습니다.
지속적으로 변화하는 가게의 정보들의 실시간으로 연동을 해주기 위해서
logstash를 이용해서 DB의 변동사항을 ElasticSearch로 연동해주었습니다.
보다 간편한 DB의 설정과 협업을 위해서 Severless DB인 Amazon RDS를 사용하였습니다.
Github Action을 이용하여 CI/CD를 적용하였습니다.
- Prometheus, Grafana
- node-exporter
배포를 진행한 EC2 인스턴스의 metric 정보를 수집하고, 통합 모니터링 환경을 위해 Prometheus와 Grafana를 사용하였습니다.
node-exporter를 통해 받은 메모리, 디스크, 네트워크 사용량 및 장고 백엔드를 연결하여 request 데이터를 저장하기 위해 사용했습니다.
Grafana & Prometheus
Prometheus | Node exporter |
---|---|
Grafana | |
Clone Repository
$ git clone https://github.com/2022-Winter-Bootcamp-Team-D/docker.git
루트 경로에 .env 파일 생성
DPOST_ENGINE=
POST_HOST=
POST_PORT=
POST_NAME=
POST_USER=
POST_PASSWORD=
DEBUG=
EC2_HOST=
SECRET_KEY=
/backend/ 경로에 .env 파일 생성
SECRET_KEY =
POST_HOST =
POST_PORT =
POST_NAME =
POST_USER =
POST_PASSWORD =
실행
$ docker-compose up --build
Name | 장현우 | 조현민 | 정혜린 | 강민아 | 강재혁 |
---|---|---|---|---|---|
Profile | |||||
role | Team Leader Frontend, Backend, DevOps |
Backend, DevOps |
Frontend | Frontend | Backend |
GitHub | @aswooo | @Chynmn | @HAERYN | @mineii | @ggamD00 |