Skip to content

nurdy-kim/mipo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

미포 ( 식당 웨이팅 서비스 )


味捕 - 맛을 잡다 / 味For - 맛을 위한
기존 식당 웨이팅 서비스의 사용자 편의 기능 및 리뷰 시스템의 단점을 보완한 프로젝트




목차

  1. 기획 배경
  2. 주요 기능
  3. 개발 환경
  4. 프로젝트 산출물
  5. 팀원 소개 및 역할
  6. 회고


1. 기획 배경

최근 흑백요리사의 인기로 인해 캐치테이블, 테이블링 등 기존 서비스에 트래픽이 급격하게 몰려 시스템에 장애가 발생한 사례가 있었습니다. 해당 사례를 보고 급격하게 몰리는 대량 트래픽을 버틸 수 있는 서비스를 목표했습니다.

총 83,000개의 기존 서비스에 대한 리뷰를 검토해 사용자 편의 기능이 부족하다는 것을 알게 되었고, 이를 개선하고자 했습니다. 또한 기존 별점 시스템이 효과적인 지표가 될 수 없다고 생각해 새로운 시스템을 구축하고자 했습니다.

2. 주요 기능

1) 리뷰 기반 온도 시스템

  • 모두가 별점 5점을 주는 시대, 별점만으로 다양한 측면을 확인하기 어려움
  • 리뷰 텍스트 속 감정 표현 분석을 통해 소비자 경험을 더 정확하게 파악
  • ABSA (Aspect-Based Sentiment Analysis)을 통한 자연어 처리
    • 맛, 서비스, 분위기 총 세 가지 관점을 분석
  • 각 측면별 온도를 통해 별점 시스템 대비 객관적인 지표 확인 가능

2) 식당 관리 시스템

  • 오픈, 마감 버튼을 통해 유연한 식당 관리
  • 매장 관리를 통해 사업자, 매장, 휴무일, 대기 상태 변경 가능
  • 식당 메뉴 및 설명 추가, 품절 처리 가능

3) 식당측 예약 관리 시스템

  • 고객이 예약을 걸 경우 식당의 상태에 따라 예약확인, 방문예정, 방문완료 단계로 구분
  • 일별 예약 건수 현황 확인 가능

4) 식당 휴무일 관리 시스템

  • 식당의 정기 휴무일 및 세부 휴무일 지정 가능
  • 달력 내 요일 및 날짜를 선택해 휴무일 지정
  • 브레이크 타임을 제외한 일부 운영 시간 적용 가능

5) 영업 시간 별 식당 조회 시스템

  • 고객 어플 내 식당조회 시 현재 영업 중 버튼을 통해 영업 시간 별 식당 조회 가능

3. 개발 환경

3.1. Infra

Architecture

Architecture

CI/CD pipeline

Architecture

- AWS EC2 xlarge(lightsail) + Ubuntu 20.04 LTS
- Nginx 1.18.0
- Docker 27.3.1
- Jenkins 2.482.2
- MySQL 8.0.39
- Redis 6.2.14

3.2. Frontend

- Node: 22.3.0
- React Naative: 9.1.2
- React: 18.3.1
- axios: 1.7.7
- MirageJs: 0.1.48
- Zustand: 5.0.0

3.3. Backend

- Java 21
- SpringBoot 3
- JPA
- QueryDsl
- MySQL 8
- Redis

3.4. AI

- Python 3.8.10
- pyTorch: 1.10.1
- boto3L 1.15.18
- mxnet: 1.6.0
- Flask: 3.0.3
- Numpy: 1.19.5

3.5. Tool

- Jira
- GitLab

5. 프로젝트 산출물

6. 팀원 소개 및 역할

  • 황세웅 | 팀장 | BE(고객, admin) / AI(라벨링)
  • 김유리 | FE
  • 문자영 | FE, 최종 발표
  • 김강진 | Infra, BE(웨이팅), AI
  • 공원영 | BE(예약), UCC
  • 이준혁 | BE(식당), 캐시 서버 구축

7. 개발 회고

황세웅

프로젝트 팀장을 맡게 되었는데, 팀원들이 잘 따라와 준 것 같아 고마웠습니다. AI를 처음 해보게 되었는데, 라벨링 과정이 반복되는 작업이 힘들었지만 보람있었던 시간이었습니다. AI 에 좀더 관심이 생겨 공부해 보고 싶습니다. 백엔드에서 로그인을 처리하기위해 Spring Boot filter를 적용하게 되었는데, 다시 공부해보며 이해할 수 있는 유익한 시간이었습니다.

김유리

처음으로 React Native를 활용한 앱 개발을 진행해 봤는데, 기존의 웹 개발과 다르게 페이지 이동이나 화면 터치 시의 반응과 같이 새롭게 고려해야 할 부분들이 많음을 알게 되었습니다. 개발 과정에서 발생하는 오류들을 하나씩 해결해 나가는 과정에서 앱 개발에 대한 이해도 높일 수 있었고, 어려움을 해결했다는 성취감도 느낄 수 있었습니다:blush: 특히 이번 프로젝트에서는 개발을 위한 프로젝트 초기 설정부터 상수 관리, 상태 관리 등등의 과정을 스스로 해보면서 효율적인 협업, 개발을 진행하는 방법에 대해 고민해보았던 것이 의미 있었습니다. 그리고 firebase를 활용한 포그라운드, 백그라운드 알림을 구현해 봤던 것도 흥미로웠던 경험이었습니다. 이전에 프로젝트를 진행하면서 유저 관련 구현을 해 본 적이 없어서 이번 프로젝트를 통해 해 보고 싶다는 목표가 있었는데, 중간 중간에 시행착오가 있기도 했지만 성공적으로 회원가입, 로그인을 구현해 내서 뿌듯합니다! 그리고 딥러닝을 통한 감정 분석 구현 과정에서 기획 단계와 데이터 라벨링 단계에 참여하여 팀이 성공적으로 리뷰 감성분석을 수행할 수 있도록 기여하였습니다:female-technologist: 짧은 시간 안에 진행된 프로젝트여서 팀원 한 사람 한 사람이 제 역할을 하는 것만으로도 벅찰 수 있었는데, 팀원들이 열의를 가지고 프로젝트에 참여한 덕에 마지막까지 잘 마무리 할 수 있었던 것 같습니다!

문자영

미포 프로젝트를 통해 5주 동안 식당과 고객, 두 가지 사용자를 위한 어플을 구현하면서 처음으로 React Native를 익히고 활용해 본 프로젝트라 모든 것이 새롭고 초기 세팅이나 외에도 자잘한 오류가 많아 어렵기도 했지만, 배울 수 있는 기회가 되었습니다. 또한 프로젝트 기획 시, 리뷰 데이터를 활용해서 온도 척도로 나타내고자 했던 부분도 잘 적용된 것 같아 좋았습니다 🙂 네이버 지도 등 외부 API를 활용하거나, 사용자의 상태 별로 데이터를 불러오는 과정에서 어려움도 있었지만, 팀원들과 소통하고 조율해가며 잘 해결해갈 수 있었습니다. 이번 프로젝트를 통해서 기술을 빠르게 익히고 실전에 적용하는 방법, 사용자 중심의 기능 설계, 팀원과의 협업을 통해 유연하게 변화에 대처하는 법을 익힐 수 있었습니다. 해당 경험이 앞으로의 프로젝트에 있어서도 많은 밑거름이 된 것 같습니다. 다들 고생 많으셨습니다 :female-technologist:✨

김강진

인프라와 AI, 백엔드 웨이팅을 담당해서 개발했습니다. 인프라에서 HA를 준비하기 위해 Nginx를 통해 로드 밸런싱도 해보고 여러가지 시도를 해볼 수 있던 프로젝트 였습니다. Kubernates를 적용하지 못해 아쉽긴 하지만 추후에 적용해보고 싶습니다. AI에서는 처음으로 자연어 처리를 경험해 보았습니다. 매번 이미지 처리만 하다가 색다른 경험이었던것 같습니다. 백엔드 에서는 대기열 구현을 위해 동시성 제어를 경험해 보았습니다. 비관적 락만 적용해 보았는데, 다른 락 종류도 해보고 싶습니다.

공원영

기존에 이미 존재하는 서비스를 개선하자는 목표로 본 프로젝트를 시작했습니다. 다양한 이슈로 인해 초기계획한 모든 부분을 적용해보지 못해 아쉽습니다. 하지만 팀원들이 힘을 합쳐 짧은 기간내 완성도 있는 프로젝트를 만들 수 있어 뿌듯합니다. 개인적으로도 동시성 제어에 대한 개념을 숙지하고 학습할 수 있어 유익했습니다.

이준혁

이번 프로젝트는 이전 두 프로젝트와 달리 기획보다 기술에 초점을 둔 프로젝트였습니다. 그래서 단순히 기술을 사용하기만 하는 것에 그치지 않고, 동작 원리에 대해 정확하게 이해하고 장애 상황에 어떻게 대처할 지 고민을 많이 했던 것 같습니다. 이 과정에서 대부분 기대했던 대로 동작했지만, 예상과 다르게 동작하는 부분도 있었습니다. 특히 TPS 측정 과정에서 예상했던 수치와 달랐던 것이 가장 기억에 남으며, 이를 해결하는 과정에서 많은 것을 배울 수 있었습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •