Skip to content

항해 14기 13조 실전 프로젝트

Notifications You must be signed in to change notification settings

jujigithub/dawhisky-BE

 
 

Repository files navigation

DA WHISKY - BackEnd

다위스키 리드미 메인


🥃 프로젝트 소개

DA WHISKY는 위스키 체험을 위한 온라인 플랫폼입니다.


구분 바로가기 구분 바로가기
다위스키 아이콘 DA WHISKY 바로가기 노션 아이콘 팀 노션 바로가기
리액트 아이콘 FE 깃허브 바로가기 노션 아이콘 피그마 바로가기
노드js 아이콘 BE 깃허브 바로가기 스웨거 아이콘 스웨거 바로가기

프로젝트 진행 일정
  • 23/05/19 ~ 23/05/21   프로젝트 주제 선정
  • 23/05/22 ~ 23/05/28   UI 디자인 및 와이어프레임 구현
  • 23/05/29 ~ 23/06/04   디자인 적용 및 MVP 1차 스코프 구현
  • 23/06/05 ~ 23/06/18   MVP 2차 스코프 구현
  • 23/06/19 ~ 23/06/25   유저 배포 후 유저 테스트 피드백 반영
  • 23/06/25 ~ 23/06/30   발표 자료 준비 및 최종 발표 진행
브로슈어 확인하기

다위스키 브로슈어_1

다위스키 브로슈어_2

다위스키 브로슈어_3

다위스키 브로슈어_4

다위스키 브로슈어_5



🥃 서비스 아키텍처

다위스키 아키텍처



🥃 주요 기능

CI/CD 실시간 줄서기 줄서기 응답 알림
HTTPS 검색어 자동완성 소셜 로그인



🥃 기술적 의사결정

HTTPS - SSL/TSL 발급을 통하여 도메인에 대한 보안성과 검색 노출 빈도를 증가
- FE에서 vercel사용을 위하여 구축
MySQL - 대부분 정형화된 데이터여서 SQL로 선정
- MySQL로 프로젝트의 모든 기능이 가능하다 판단하여 팀원 모두 숙련도가 높은 DB로 선정
Redis - 이메일 인증코드, Refresh Token, Device Token의 만료시간 관리의 편의성
- Device Token의 경우 Update가 많지 않을거라 판단하여 Global Cache를 통해 성능향상을 위해 선정
S3 CI/CD 파이프라인 구축과 사진 업로드를 위해 선정
CI/CD Tool - 레퍼런스 접근성, 비용, 러닝 커브 기준으로 선정
- 최종 후보로 깃허브 액션(CI) + AWS 코드 디플로이(CD) vs 젠킨스(CI/CD 통합) 중 고민
- CD환경 구성 시 jenkins의 경우 2개의 EC2인스턴스가 필요하고 세팅 기간이 오래 걸릴 것으로 판단되어 빠른 개발을 위해 github actions + Codedeploy로 선정
Puppeteer 동적 이미지 크롤링을 위해 사용
Socket.io 줄서기 기능의 실시간 자리현황 반영을 위해 소켓 방식을 채택하였고, FE와 BE 언어가 동일하여 관련 npm 중 완성도가 가장 높은 라이브러리인 socket.io 선정
Sentry - 오류 추적과 서비스 모니터링을 위하여 선정
- 센트리에 에러의 종류, 발생 위치, 발생 시간이 기록되므로 기존에 화면공유/라이브쉐어/캡쳐를 통한 에러 공유보다 편의성이 개선됨
- 또한, 트레이싱을 통해 어떤 요청이 언제, 얼마나, 어떤 성능으로 들어오는지 모니터링하여 서비스 개선에 필요한 데이터 획득 가능해짐
Swagger - api리스트와 각 api에 대한 req, res값을 가시성 좋게 표현해서 협업 효율 향상을 위해 선정
- 이미 api명세서가 작성되어있지만, api명세서에 비해 접근성, 가독성이 좋음
- 스웨거 페이지에서 직접 api호출이 가능하여 api test가 편리해짐
Jest - test code 작성을 위해 선정
- mocha는 세팅이 자유로운 대신 러닝 커브가 높으며, 추가적인 라이브러리들이 많이 필요하여 개발속도와 편의성을 위하여 jest로 선정



🥃 트러블슈팅



🥃 팀원 소개

이름 역할 담당 기능 깃허브 이메일
김영은 DE - UI/UX 디자인
- 로고 및 브로슈어 디자인
[email protected]
김한솔 FE / L - 공통 컴포넌트 제작
- axios interceptor
- route 인증/인가
- 카카오맵
- PWA
- 위스키 리스트, 디테일 페이지
- 위스키바 리스트, 디테일 페이지
- 좋아요, 코멘트 CRUD
- 유저 마이페이지
- 스토어 주류관리
- 검색 페이지
@hansololiviakim [email protected]
최재홍 FE - 점주 로컬 회원가입/로그인
- 유저 카카오 회원가입/로그인
- PWA
- socket.io를 통한 실시간 줄서기
- FCM 줄서기 알림 기능
- 스토어 마이페이지
@allongsio [email protected]
주지민 BE / VL - 서버 배포/관리
- HTTPS
- CI/CD
- Socket(줄서기)
- DB Polling(자리 현황)
- ERD/아키택쳐/스트럭쳐 설계
- 북마크/좋아요 기능
- Swagger
- Sentry
@jujigithub [email protected]
박지현 BE - 점주 마이페이지
- 줄서기/리뷰 CRUD
- 유저 마이페이지
- 위스키 조회/필터링/검색
@jihyunpark81 [email protected]
이준교 BE - 소셜로그인(카카오)
- 회원가입(점주/유저)
- 줄서기 관련 FCM
- 리프레쉬토큰/디바이스토큰
- 위스키 및 점주 DB 스크랩핑 작업
@junkyo974 @[email protected]



🥃 Copyright ©2023 HangHae99 14th Final: Team Spirits all rights reserved.

About

항해 14기 13조 실전 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.7%
  • Other 0.3%