Skip to content

team2room/Cofface

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

시작사진

📌 목차

  1. 프로젝트 소개
  2. 팀 소개
  3. 주요 기능
  4. 시연 영상
  5. 주요 기술
  6. 기술 스택
  7. 기술 아키텍처
  8. 프로젝트 구조
  9. 산출물

💻 프로젝트 소개

SSAFY 12기 2학기 자율 프로젝트

⌛ 프로젝트 기간 : 2025.04.21 ~ 2025.05.22 (4.5주)

📆 상세 기간 : 기획 1주 + 개발 3.5주

🔗 노션 링크

🖥️ 키오스크 배포 URL

📲 앱 배포 URL

🤖 "당신을 기억하는 스마트 주문 솔루션, Cofface(커페이스)!"

✨ 더 이상 복잡한 주문은 그만! 얼굴 인식 한 번이면 주문, 결제, 적립, 추천까지 한 번에!
커페이스는 얼굴 인식을 통해, 나만의 취향을 기억한 딱 맞는 커피 주문 경험을 제공합니다.
카페 사장님도, 손님도 모두 만족하는 똑똑한 키오스크 솔루션을 만나보세요!

☕ 이런 분들을 위한 스마트 주문 솔루션이에요
메뉴 고민 없이 단골 손님처럼 나를 알아보고 메뉴를 추천받고 싶은 분
얼굴만으로 빠르고 안전한 결제로 시간을 절약하고 싶은 분
여러 카페의 스탬프 적립, 주문 내역, 결제 관리까지 한 번에 하고 싶은 분
직관적인 UI와 편리한 주문을 경험하고 싶은 분

🙆🏻 커페이스만의 특별한 기능
3D depth 카메라로 얼굴을 인식해 자동 로그인 및 개인 맞춤 추천
AI 기반 성별/연령 분석으로 비회원도 맞춤 추천 제공
머리 모션 인식으로 손 없이도 인터페이스 제어
통합 시스템으로 여러 매장 주문 내역·스탬프 적립 현황 실시간 확인
실시간 푸시 알림으로 주문 완료 안내
얼굴만 인식하면 등록된 카드로 자동 결제

👨🏻‍💻 이렇게 사용해보세요!
1️⃣ 키오스크 앞에 서기만 하면 얼굴인식으로 자동 로그인 완료
2️⃣ 분석한 맞춤 메뉴를 확인하고 원하는 음료 선택
3️⃣ 등록된 카드로 자동결제 또는 QR코드로 간편 결제
4️⃣ 앱에서 실시간 알림을 받고 완성된 음료 픽업
5️⃣ 다음 방문 시, 내 취향에 맞는 추천 메뉴로 더 빠른 주문

🔒 보안도 걱정 없어요!
얼굴 데이터 암호화 및 분산 저장으로 개인정보 보호
3D depth 카메라로 정확하고 안전한 얼굴 인식

👥 팀 소개

이수환
@getbravelee
권규리
@rnjs010
김주찬
@PoloCeleste
박혜원
@hyeOOO
서성우
@bamtol2
이혜령
@hyerongii
AI 개발
(팀장)
프론트 개발 인프라/AI 개발 백엔드 개발 백엔드 개발 프론트 개발
AI모델 파인튜닝, 얼굴인식, 모션인식, 라이브니스, 얼굴등록 키오스크 전체 개발 및 UX/UI 디자인 보조모니터 프론트, 얼굴 검증 및 모션 인식 백엔드, 벡터 DB 클러스터링, GPU서버 구축, 인프라 세팅, CI/CD ERD설계, 유저, 주문, 결제, 알림 ERD설계, 추천 알고리즘, 키오스크, 앱 선호조사 앱 전체 개발 및 UX/UI 디자인, 키오스크 메인/옵션/결제 화면 구현

⌨️ 주요 기능

APP
회원가입/로그인 홈페이지 비활성화 홈페이지 활성화 홈페이지 하단
login
문자 인증 회원가입/로그인 기능을 제공합니다. 정보가 등록되어있지 않은 사용자는 홈화면 기능이 비활성화 됩니다. 얼굴/결제 정보가 등록된 사용자만 홈화면이 활성화되며
방문한 카페와 횟수를 확인할 수 있습니다.
홈페이지 하단에는 얼굴 등록과 결제정보등록 버튼이 구성되어있습니다.
메뉴선호조사 옵션선택조사 설정 카드설정 페이지
처음 가입한 사용자의 경우 자신이 좋아하는 메뉴들를 선택하면
추후 추천 알고리즘에 반영됩니다.
자신이 자주 주문하는 옵션 선택을 선택하면 추후 추천 알고리즘에 반영됩니다. 설정 페이지 입니다. 자신이 등록한 결제 카드 정보를 간략하게 확인하고 수정할 수 있습니다.
얼굴등록 카드등록
전면 카메라로 정면/좌/우/상/하 얼굴을 가이드라인에 맞게 캡쳐하여 등록할 수 있습니다. 카드번호, 유효기간, CVC, 비밀번호 앞 2자리를 통해 카드 결제 정보를 등록할 수 있습니다.
키오스크
얼굴인식 페이지 주문 페이지 옵션 선택 포장/방문 페이지
처음 로그인 시 얼굴인식이 보조모니터를 통해 진행됩니다. 다양한 카테고리 기반으로 추천된 메뉴들을 한 메뉴씩 확인할 수 있습니다. 옵션의 얼음양, 샷추가, 온도, 사이즈를 선택할 수 있습니다. 포장/방문의 여부를 선택할 수 있습니다.
결제 페이지(자동) 결제 페이지(일반) 주문 완료 페이지 비회원 안내 페이지
카드를 드래그하여 리더기 쪽으로 올리면 자동 결제가 진행됩니다. 비회원일 경우 다양한 페이로 결제를 진행할 수 있습니다. 주문 완료 후 주문 번호와 완료 메세지가 뜨게 됩니다. 비회원일 경우 앱 링크 QR코드가 제공되고, 사용자는 쉽게 앱을 설치해 이용할 수 있습니다.

🎥 시연 영상

📱 App

회원가입/로그인 선호조사 홈페이지
카페 세부 페이지 얼굴 등록 카드 등록

🧋 키오스크

얼굴 인식 로그인 및 라이브니스 주문-회원
주문-비회원 전체 메뉴

🔍 주요 기술

카메라 기술

  얼굴인식

  • InsightFace 기반 얼굴 임베딩 : Buffalo-L 모델을 사용하여 512차원의 얼굴 특징 벡터(임베딩)를 생성합니다.
  • 다방향 얼굴 캡처 : 정면, 좌, 우, 상, 하 총 5개 각도에서 얼굴을 캡처하여 다양한 각도에서의 인식 정확도를 향상시킵니다.
  • 벡터 DB 기반 저장 : Qdrant 벡터 데이터베이스를 사용하여 얼굴 임베딩을 COLLECTION_NAME="face_embeddings" 컬렉션에 저장합니다.
  • 코사인 유사도 기반 매칭 : 유사도 임계값(SIMILARITY_THRESHOLD=0.7)을 기준으로 얼굴 매칭을 판단합니다.

  라이브니스

  • 3D 깊이 정보 활용 : Intel RealSense D435f/D455 깊이 카메라를 사용하여 실제 얼굴의 입체감을 측정합니다.
  • 깊이 변화 분석 : 얼굴 영역의 깊이 변화가 15mm~100mm 사이일 때 실제 얼굴로 판단합니다.
  • 피크-밸리 검사 : 코 주변의 작은 영역과 얼굴 둘레의 평균 깊이 차이를 계산하여 입체감을 확인합니다.
  • 평면 피팅 잔차 분석 : 얼굴 영역에 평면을 피팅하고, 잔차의 표준편차가 3mm 이상인 경우 실제 얼굴로 판단합니다.

  얼굴 데이터 검색

  • 벡터 유사도 검색 : qdrant(벡터 데이터베이스)에 저장된 쿼리 얼굴 임베딩과 저장된 임베딩 간의 코사인 유사도를 계산합니다.
  • 다중 얼굴 샘플 평균화 : 사용자별로 저장된 여러 방향의 얼굴 임베딩에 대한 유사도 평균을 계산하여 정확도를 높입니다.
  • 임계값 기반 판단 : 평균 유사도가 임계값(0.7)을 초과하는 경우에만 매칭 성공으로 간주합니다.
  • 신뢰도 스코어 : 사용자별 평균 유사도를 신뢰도 점수로 제공합니다.

  성별 및 나이 확인

  • InsightFace 모델 활용 : Buffalo-L 모델에 내장된 성별 및 나이 추정 기능을 사용합니다.
  • 모델 파인튜닝 : UTKFace 데이터셋을 사용하여 CNN 기반 모델을 파인튜닝하여 성별 및 나이 추정 정확도를 향상시킵니다.
  • 평균 값 활용 : 여러 프레임에서 감지된 나이 및 성별 정보를 통계적으로 처리하여 안정적인 결과를 제공합니다.
  • 다수결 원칙 : 성별 판단에는 다수결 원칙을 적용하여 안정성을 높입니다.

  파인튜닝

  • UTKFace 데이터셋 활용 : 나이, 성별, 인종 정보가 포함된 데이터셋을 사용하여 모델을 훈련합니다.
  • 컨볼루션 신경망 구조 : 4개의 컨볼루션 레이어와 배치 정규화, ReLU 활성화 함수를 사용한 구조를 채택합니다.
  • 듀얼 헤드 아키텍처 : 나이 예측(회귀 문제)과 성별 분류(이진 분류)를 위한 별도의 헤드를 가진 신경망 구조를 사용합니다.
  • ONNX 포맷 변환 : 훈련된 모델을 ONNX 형식으로 변환하여 InsightFace와 통합합니다. insightface 라이브러리와 호환되게 하기 위해서. cpu, gpu 등 다양한 하드웨어 가속기에 최적화된 추론제공.

  데이터 흐름

  • 얼굴등록 : 사용자(앱) → 카메라 → 얼굴 캡처 → 5방향 촬영 완료 → 서버로 이미지 전송 → 벡터 임베딩 생성 → Qdrant DB 저장

  • 얼굴인식 : 사용자(키오스크) → 카메라 → 이미지 캡처 → 라이브니스 검사(depth 카메라) → GPU 서버로 이미지 전송 → 임베딩 생성 → Qdrant DB 검색 → 유사도 계산 → 결과 반환 → 인증 완료/실패

  • 모션감지 : 사용자(키오스크) → MediaPipe FaceMesh → 얼굴 랜드마크 추출 → 3축 회전 계산(pitch, yaw, roll) → 모션 패턴 분석 → 모션 이벤트 발행 → 구독 컴포넌트에서 이벤트 처리 → UI 업데이트/액션 수행

FCM

  FCM 작동 방식

  • 클라이언트 앱이 FCM 서버에 등록 요청을 보내고, 고유한 등록 토큰(Registration Token)을 발급
  • 클라이언트 앱은 발급받은 토큰을 자체 백엔드 서버에 전달하여 저장
  • 백엔드 서버는 특정 사용자 또는 그룹의 토큰을 이용해 전송할 메시지를 준비
  • 백엔드 서버가 메시지와 타겟 토큰을 FCM 서버에 전송
  • FCM 서버는 메시지 요청을 수신하고, 토큰을 기반으로 타겟 디바이스를 식별
  • FCM 서버는 플랫폼별 전송 레이어(예: Android ATL, iOS APNs, Web Push)를 통해 메시지를 해당 디바이스로 전달
  • 클라이언트 단의 FCM SDK가 메시지를 수신하고, 앱 상태(포그라운드/백그라운드)에 따라 알림을 표시하거나 데이터 처리를 수행

  프로젝트 내 플로우

  • 앱 → fcm 토큰 발급 → FCM 서버
  • 키오스크 로그인/주문/결제 시 → 백 서버 → FCM 서버 이벤트 발송
  • FCM 서버 → 앱 알림
추천

  컨텍스트 기반 필터링

  • 시간, 날씨, 요일, 주차, 월 등 상황적 요소를 고려한 추천
  • 사용자의 정보(성별, 나이) 활용

  하이브리드 추천 시스템

  • 사용자 개인 이력 기반 필터링과 컨텍스트 기반 필터링 결합하여 추천

  데이터베이스 쿼리 최적화

  • 복잡한 SQL 쿼리를 통한 효율적인 추천 데이터 추출

🔧 기술 스택

Back

기술스택1

Front

기술스택1

Infra

기술스택1

🗺️ 시스템 아키텍처

아키텍처

📂 프로젝트 구조

Back 폴더 구조 보기
📦main
 ┣ 📂java
 ┃ ┗ 📂com
 ┃ ┃ ┗ 📂ssafy
 ┃ ┃ ┃ ┗ 📂orderme
 ┃ ┃ ┃ ┃ ┣ 📂common
 ┃ ┃ ┃ ┃ ┃ ┗ 📜ApiResponse.java
 ┃ ┃ ┃ ┃ ┣ 📂config
 ┃ ┃ ┃ ┃ ┃ ┣ 📜AppConfig.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📜AsyncConfig.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📜FCMConfig.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📜RedisConfig.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📜SecurityConfig.java
 ┃ ┃ ┃ ┃ ┣ 📂kiosk
 ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜KioskController.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PreferredOptionRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserPreferenceRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CategoryResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MenuDetailResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MenuOptionCategoryResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MenuOptionResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MenuResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PreferenceOptionCategoryResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PreferenceOptionItemResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PreferredMenuCategoryResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PreferredMenuResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RecommendedMenuResponse.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂mapper
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CategoryMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MenuMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PreferenceMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StoresMapper.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂model
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Category.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Menu.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MenuOptionCategory.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OptionCategory.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OptionItem.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Order.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderMenu.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderOption.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StampPolicy.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Store.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CategoryService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MenuService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PreferenceService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StoreServices.java
 ┃ ┃ ┃ ┃ ┣ 📂manager
 ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MenuImageController.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MenuImageUploadResponse.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂S3
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜S3Uploader.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MenuImageService.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📂statistics
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StatisticsController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StatisticsRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DailySalesResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GenderAgePreferenceResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PopularMenuResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WeeklySalesResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂mapper
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StatisticsMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂scheduler
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StatisticsScheduler.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StatisticsService.java
 ┃ ┃ ┃ ┃ ┣ 📂notification
 ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FcmController.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FcmTokenRegistrationRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FcmMessageDto.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FcmSendDto.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂mapper
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FcmTokenMapper.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂model
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FcmToken.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FcmService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NotificationService.java
 ┃ ┃ ┃ ┃ ┣ 📂order
 ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StampController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserOrderController.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderMenuResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderOptionResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StampResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TopMenuResponse.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂mapper
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OptionItemMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderMenuMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderOptionMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StampHistoryMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StampMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StampPolicyMapper.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂model
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MenuFrequency.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OptionItem.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderMenu.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderOption.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Stamp.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StampHistory.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StampPolicy.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StampService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserOrderService.java
 ┃ ┃ ┃ ┃ ┣ 📂payment
 ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AutoPaymentController.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜PaymentController.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AutoPaymentRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CardRegistrationRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MenuOrderRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OptionOrderRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PaymentApprovalRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PaymentConfirmRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PaymentRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SetDefaultCardRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CardCompanyResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PaymentInfoResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜PaymentResponseDto.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂exception
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CardNotFoundException.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CardRegistrationException.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂mapper
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PaymentInfoMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜PaymentMapper.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂model
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CardInfo.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Order.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Payment.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜PaymentInfo.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AutoPaymentService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CardService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜PaymentService.java
 ┃ ┃ ┃ ┃ ┣ 📂recommendation
 ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RecommendationController.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AdvancedMenuRecommendation.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MenuWithOptionsDto.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RecommendationResponse.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RecommendedMenuGroup.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂mapper
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RecommendationMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WeatherMapper.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂model
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GeoLocation.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜WeatherData.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WeatherPreference.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RecommendationService.java
 ┃ ┃ ┃ ┃ ┣ 📂security
 ┃ ┃ ┃ ┃ ┃ ┣ 📜CustomUserDetailsService.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtAuthenticationFilter.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📜JwtTokenProvider.java
 ┃ ┃ ┃ ┃ ┣ 📂store
 ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StoreController.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StoreResponse.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂mapper
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StoreMapper.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂model
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Store.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StoreVisit.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StoreService.java
 ┃ ┃ ┃ ┃ ┣ 📂user
 ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜AuthController.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AdminLoginRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AdminRegisterRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KioskSessionRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PhoneLoginRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RefreshTokenRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜VerificationConfirmRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜VerificationRequest.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AdminDto.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserDto.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂mapper
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AdminMapper.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserMapper.java
 ┃ ┃ ┃ ┃ ┃ ┣ 📂model
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Admin.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Gender.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜User.java
 ┃ ┃ ┃ ┃ ┃ ┗ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AdminService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜SmsService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserService.java
 ┃ ┃ ┃ ┃ ┗ 📜OrdermeApplication.java
 ┗ 📂resources
 ┃ ┗ 📂mappers
 ┃ ┃ ┣ 📂kiosk
 ┃ ┃ ┃ ┣ 📜CategoryMapper.xml
 ┃ ┃ ┃ ┣ 📜MenuMapper.xml
 ┃ ┃ ┃ ┣ 📜PreferenceMapper.xml
 ┃ ┃ ┃ ┗ 📜StoreMapper.xml
 ┃ ┃ ┣ 📂manager
 ┃ ┃ ┃ ┗ 📜StatisticsMapper.xml
 ┃ ┃ ┣ 📂notification
 ┃ ┃ ┃ ┗ 📜FcmTokenMapper.xml
 ┃ ┃ ┣ 📂order
 ┃ ┃ ┃ ┣ 📜OptionItemMapper.xml
 ┃ ┃ ┃ ┣ 📜OrderMenuMapper.xml
 ┃ ┃ ┃ ┣ 📜OrderOptionMapper.xml
 ┃ ┃ ┃ ┣ 📜StampHistoryMapper.xml
 ┃ ┃ ┃ ┣ 📜StampMapper.xml
 ┃ ┃ ┃ ┗ 📜StampPolicyMapper.xml
 ┃ ┃ ┣ 📂payment
 ┃ ┃ ┃ ┣ 📜OrderMapper.xml
 ┃ ┃ ┃ ┣ 📜PaymentInfoMapper.xml
 ┃ ┃ ┃ ┗ 📜PaymentMapper.xml
 ┃ ┃ ┣ 📂recommendation
 ┃ ┃ ┃ ┗ 📜RecommendationMapper.xml
 ┃ ┃ ┣ 📂store
 ┃ ┃ ┃ ┗ 📜StoreMapper.xml
 ┃ ┃ ┗ 📂user
 ┃ ┃ ┃ ┣ 📜AdminMapper.xml
 ┃ ┃ ┃ ┗ 📜UserMapper.xml
  
Front - kiosk 폴더 구조 보기
📦src
 ┣ 📂assets
 ┃ ┗ 📜react.svg
 ┣ 📂components
 ┃ ┣ 📂ui
 ┃ ┃ ┣ 📜alert-dialog.tsx
 ┃ ┃ ┗ 📜button.tsx
 ┃ ┣ 📜CustomButton.tsx
 ┃ ┣ 📜CustomDialog.tsx
 ┃ ┣ 📜GestureDetector.tsx
 ┃ ┣ 📜Header.tsx
 ┃ ┣ 📜HighlightText.tsx
 ┃ ┣ 📜ReasonText.tsx
 ┃ ┣ 📜slotDigit.tsx
 ┃ ┗ 📜slotNumber.tsx
 ┣ 📂features
 ┃ ┣ 📂adminLogin
 ┃ ┃ ┣ 📂components
 ┃ ┃ ┃ ┗ 📜LoginForm.tsx
 ┃ ┃ ┣ 📂hooks
 ┃ ┃ ┃ ┗ 📜useAdminLogin.ts
 ┃ ┃ ┗ 📂services
 ┃ ┃ ┃ ┗ 📜adminService.ts
 ┃ ┣ 📂order
 ┃ ┃ ┣ 📂components
 ┃ ┃ ┃ ┣ 📂Main
 ┃ ┃ ┃ ┃ ┣ 📜AnimatedContainer.tsx
 ┃ ┃ ┃ ┃ ┣ 📜MenuInfo.tsx
 ┃ ┃ ┃ ┃ ┣ 📜OptionLayerComponent.tsx
 ┃ ┃ ┃ ┃ ┣ 📜OptionList.tsx
 ┃ ┃ ┃ ┃ ┣ 📜ProgressBar.tsx
 ┃ ┃ ┃ ┃ ┗ 📜SlideButtion.tsx
 ┃ ┃ ┃ ┣ 📂Menu
 ┃ ┃ ┃ ┃ ┣ 📜AllMenuSection.tsx
 ┃ ┃ ┃ ┃ ┣ 📜MenuCard.tsx
 ┃ ┃ ┃ ┃ ┣ 📜OrderSection.tsx
 ┃ ┃ ┃ ┃ ┗ 📜RecommendSection.tsx
 ┃ ┃ ┃ ┣ 📂Option
 ┃ ┃ ┃ ┃ ┣ 📜OptionalOptionSection.tsx
 ┃ ┃ ┃ ┃ ┣ 📜OptionButton.tsx
 ┃ ┃ ┃ ┃ ┣ 📜OptionDialog.tsx
 ┃ ┃ ┃ ┃ ┗ 📜RequiredOptionSection.tsx
 ┃ ┃ ┃ ┣ 📂pay
 ┃ ┃ ┃ ┃ ┣ 📜FailContent.tsx
 ┃ ┃ ┃ ┃ ┣ 📜PayMethodButton.tsx
 ┃ ┃ ┃ ┃ ┣ 📜ProgressContent.tsx
 ┃ ┃ ┃ ┃ ┗ 📜SuccessContent.tsx
 ┃ ┃ ┃ ┣ 📂Receipt
 ┃ ┃ ┃ ┃ ┣ 📜ReceiptDialog.tsx
 ┃ ┃ ┃ ┃ ┗ 📜ReceiptItemList.tsx
 ┃ ┃ ┃ ┣ 📜MainContent.tsx
 ┃ ┃ ┃ ┣ 📜MenuContent.tsx
 ┃ ┃ ┃ ┣ 📜PayContent.tsx
 ┃ ┃ ┃ ┗ 📜PlaceSelectContent.tsx
 ┃ ┃ ┣ 📂hooks
 ┃ ┃ ┃ ┣ 📂pay
 ┃ ┃ ┃ ┃ ┣ 📜useClientKey.ts
 ┃ ┃ ┃ ┃ ┣ 📜useConfirmPay.ts
 ┃ ┃ ┃ ┃ ┣ 📜usePreparePay.ts
 ┃ ┃ ┃ ┃ ┗ 📜useProgressPay.ts
 ┃ ┃ ┃ ┣ 📜useAllMenu.ts
 ┃ ┃ ┃ ┣ 📜useAutoPay.ts
 ┃ ┃ ┃ ┣ 📜useCategory.ts
 ┃ ┃ ┃ ┣ 📜useCoupon.ts
 ┃ ┃ ┃ ┣ 📜useNewRecommend.ts
 ┃ ┃ ┃ ┣ 📜useOption.ts
 ┃ ┃ ┃ ┣ 📜useRecommendMenu.ts
 ┃ ┃ ┃ ┗ 📜useSlideAnimation.ts
 ┃ ┃ ┗ 📂services
 ┃ ┃ ┃ ┣ 📂pay
 ┃ ┃ ┃ ┃ ┣ 📜confirmPayService.ts
 ┃ ┃ ┃ ┃ ┣ 📜keyService.ts
 ┃ ┃ ┃ ┃ ┗ 📜preparePayService.ts
 ┃ ┃ ┃ ┣ 📜allMenuService.ts
 ┃ ┃ ┃ ┣ 📜autoPayService.ts
 ┃ ┃ ┃ ┣ 📜categoryService.ts
 ┃ ┃ ┃ ┣ 📜couponService.ts
 ┃ ┃ ┃ ┣ 📜newRecommendService.ts
 ┃ ┃ ┃ ┣ 📜optionService.ts
 ┃ ┃ ┃ ┗ 📜recommendMenuService.ts
 ┃ ┗ 📂userLogin
 ┃ ┃ ┣ 📂components
 ┃ ┃ ┃ ┣ 📜NewStartScreen.tsx
 ┃ ┃ ┃ ┗ 📜NumKeyPad.tsx
 ┃ ┃ ┣ 📂hooks
 ┃ ┃ ┃ ┣ 📜useExtendSession.ts
 ┃ ┃ ┃ ┣ 📜useLogin.ts
 ┃ ┃ ┃ ┣ 📜useLogout.ts
 ┃ ┃ ┃ ┗ 📜useWeather.ts
 ┃ ┃ ┗ 📂services
 ┃ ┃ ┃ ┣ 📜extendSessionService.ts
 ┃ ┃ ┃ ┣ 📜faceRecogService.ts
 ┃ ┃ ┃ ┣ 📜logoutService.ts
 ┃ ┃ ┃ ┣ 📜phoneLoginService.ts
 ┃ ┃ ┃ ┗ 📜weatherService.ts
 ┣ 📂fonts
 ┃ ┣ 📜SUIT-Variable.woff2
 ┃ ┗ 📜SUITE-Variable.woff2
 ┣ 📂hooks
 ┃ ┗ 📜useDragScroll.ts
 ┣ 📂interfaces
 ┃ ┣ 📜OrderInterface.ts
 ┃ ┣ 📜PayInterface.ts
 ┃ ┣ 📜RecommendInterface.ts
 ┃ ┗ 📜UserInterface.ts
 ┣ 📂lib
 ┃ ┣ 📜axios.ts
 ┃ ┣ 📜changeCamera.ts
 ┃ ┣ 📜changeDisplay.ts
 ┃ ┣ 📜cookie.ts
 ┃ ┗ 📜utils.ts
 ┣ 📂pages
 ┃ ┣ 📂adminLogin
 ┃ ┃ ┗ 📜AdminLoginPage.tsx
 ┃ ┣ 📂order
 ┃ ┃ ┗ 📜OrderPage.tsx
 ┃ ┣ 📂pay
 ┃ ┃ ┣ 📜FailPage.tsx
 ┃ ┃ ┣ 📜PayPage.tsx
 ┃ ┃ ┗ 📜SuccessPage.tsx
 ┃ ┣ 📂userLogin
 ┃ ┃ ┗ 📜UserLoginPage.tsx
 ┃ ┗ 📜LoadingPage.tsx
 ┣ 📂stores
 ┃ ┣ 📜adminStore.ts
 ┃ ┣ 📜directOrderStore.ts
 ┃ ┣ 📜loginStore.ts
 ┃ ┣ 📜orderStore.ts
 ┃ ┣ 📜payStore.ts
 ┃ ┣ 📜recommendStore.ts
 ┃ ┗ 📜stepStore.ts
 ┣ 📂styles
 ┃ ┣ 📜colors.ts
 ┃ ┣ 📜fonts.tsx
 ┃ ┣ 📜RippleEffect.tsx
 ┃ ┗ 📜typography.ts
 ┣ 📂utils
 ┃ ┣ 📜calculateAge.ts
 ┃ ┣ 📜convertMenuToOrder.ts
 ┃ ┣ 📜formatOptionLabel.ts
 ┃ ┣ 📜generateReasonPart.ts
 ┃ ┗ 📜maskUserName.ts
 ┣ 📜App.tsx
 ┣ 📜config.ts
 ┣ 📜index.css
 ┣ 📜main.tsx
 ┗ 📜vite-env.d.ts
  
Front - userApp 폴더 구조 보기
📦src
 ┣ 📂assets
 ┃ ┣ 📂drinks
 ┃ ┃ ┣ 📜cookie.png
 ┃ ┃ ┣ 📜greentea.png
 ┃ ┃ ┗ 📜strawberry.png
 ┃ ┣ 📂icons
 ┃ ┃ ┣ 📜icon-cookie.png
 ┃ ┃ ┣ 📜icon-greentea.png
 ┃ ┃ ┗ 📜icon-strawberry.png
 ┃ ┣ 📜face-scan.gif
 ┃ ┣ 📜ice.png
 ┃ ┣ 📜loading.gif
 ┃ ┣ 📜lock.png
 ┃ ┣ 📜logo.png
 ┃ ┣ 📜phone.png
 ┃ ┣ 📜scroll-down.gif
 ┃ ┣ 📜shield-check.gif
 ┃ ┣ 📜shield.png
 ┃ ┗ 📜wallet.png
 ┣ 📂components
 ┃ ┣ 📂ui
 ┃ ┃ ┣ 📜button.tsx
 ┃ ┃ ┣ 📜drawer.tsx
 ┃ ┃ ┗ 📜input.tsx
 ┃ ┣ 📜AuthRedirect.tsx
 ┃ ┣ 📜DetailHeader.tsx
 ┃ ┣ 📜LoadingMessage.tsx
 ┃ ┣ 📜MainButton.tsx
 ┃ ┣ 📜ProtectedRoute.tsx
 ┃ ┗ 📜WavyHeader.tsx
 ┣ 📂features
 ┃ ┣ 📂home
 ┃ ┃ ┣ 📂components
 ┃ ┃ ┃ ┣ 📂home
 ┃ ┃ ┃ ┃ ┣ 📜HomeMainButton.tsx
 ┃ ┃ ┃ ┃ ┣ 📜HomeSelectDrinks.tsx
 ┃ ┃ ┃ ┃ ┣ 📜HomeTitleLock.tsx
 ┃ ┃ ┃ ┃ ┗ 📜HomeTitleUnlock.tsx
 ┃ ┃ ┃ ┗ 📂order
 ┃ ┃ ┃ ┃ ┣ 📜OrderHistorySection.tsx
 ┃ ┃ ┃ ┃ ┣ 📜StampSection.tsx
 ┃ ┃ ┃ ┃ ┗ 📜TopOrdersSection.tsx
 ┃ ┃ ┗ 📂services
 ┃ ┃ ┃ ┣ 📜homeService.ts
 ┃ ┃ ┃ ┗ 📜storeService.ts
 ┃ ┣ 📂login
 ┃ ┃ ┣ 📂components
 ┃ ┃ ┃ ┣ 📜LoginCodeComponents.tsx
 ┃ ┃ ┃ ┣ 📜LoginComponents.tsx
 ┃ ┃ ┃ ┣ 📜LoginSelectModal.tsx
 ┃ ┃ ┃ ┣ 📜MainLoginButton.tsx
 ┃ ┃ ┃ ┗ 📜MainTopSection.tsx
 ┃ ┃ ┣ 📂hooks
 ┃ ┃ ┃ ┗ 📜useAuth.ts
 ┃ ┃ ┗ 📂services
 ┃ ┃ ┃ ┗ 📜authService.ts
 ┃ ┣ 📂register
 ┃ ┃ ┣ 📂components
 ┃ ┃ ┃ ┣ 📂capture
 ┃ ┃ ┃ ┃ ┣ 📜ActionButton.tsx
 ┃ ┃ ┃ ┃ ┣ 📜CameraView.tsx
 ┃ ┃ ┃ ┃ ┣ 📜CapturedImages.tsx
 ┃ ┃ ┃ ┃ ┣ 📜CaptureHeader.tsx
 ┃ ┃ ┃ ┃ ┣ 📜FaceGuidelines.tsx
 ┃ ┃ ┃ ┃ ┣ 📜StageIndicator.tsx
 ┃ ┃ ┃ ┃ ┣ 📜StatusMessage.tsx
 ┃ ┃ ┃ ┃ ┗ 📜styles.ts
 ┃ ┃ ┃ ┗ 📂intro
 ┃ ┃ ┃ ┃ ┣ 📜FaceRegisterCheckModal.tsx
 ┃ ┃ ┃ ┃ ┣ 📜FaceRegisterMainButton.tsx
 ┃ ┃ ┃ ┃ ┣ 📜PayRandomKeyPad.tsx
 ┃ ┃ ┃ ┃ ┗ 📜PayRegisterComponents.tsx
 ┃ ┃ ┣ 📂hooks
 ┃ ┃ ┃ ┗ 📜useFaceDetection.tsx
 ┃ ┃ ┗ 📂services
 ┃ ┃ ┃ ┣ 📜captureService.ts
 ┃ ┃ ┃ ┗ 📜payService.ts
 ┃ ┣ 📂setting
 ┃ ┃ ┗ 📂components
 ┃ ┃ ┃ ┗ 📜CardComponent.tsx
 ┃ ┗ 📂survey
 ┃ ┃ ┣ 📂components
 ┃ ┃ ┃ ┣ 📜MenuSelectContent.tsx
 ┃ ┃ ┃ ┣ 📜OptionSelectContent.tsx
 ┃ ┃ ┃ ┗ 📜SurveyHeader.tsx
 ┃ ┃ ┗ 📂services
 ┃ ┃ ┃ ┗ 📜surveyService.ts
 ┣ 📂fonts
 ┃ ┣ 📜SUIT-Variable.woff2
 ┃ ┗ 📜SUITE-Variable.woff2
 ┣ 📂interfaces
 ┃ ┣ 📜FaceRegisterInterfaces.ts
 ┃ ┣ 📜HomeInterfaces.ts
 ┃ ┣ 📜LoginInterfaces.ts
 ┃ ┣ 📜PayRegisterInterfaces.ts
 ┃ ┣ 📜StoreInterfaces.ts
 ┃ ┗ 📜SurveyInterfaces.ts
 ┣ 📂lib
 ┃ ┗ 📜utils.ts
 ┣ 📂mocks
 ┃ ┣ 📜mockStore.ts
 ┃ ┗ 📜testStore.ts
 ┣ 📂pages
 ┃ ┣ 📂home
 ┃ ┃ ┣ 📜HomePage.tsx
 ┃ ┃ ┗ 📜StorePage.tsx
 ┃ ┣ 📂login
 ┃ ┃ ┣ 📜LoginConfirmPage.tsx
 ┃ ┃ ┣ 📜LoginVerifyPage.tsx
 ┃ ┃ ┗ 📜MainPage.tsx
 ┃ ┣ 📂register
 ┃ ┃ ┣ 📜FaceRegisterCapturePage.tsx
 ┃ ┃ ┣ 📜FaceRegisterConfirmPage.tsx
 ┃ ┃ ┣ 📜FaceRegisterPage.tsx
 ┃ ┃ ┗ 📜PayRegisterPage.tsx
 ┃ ┣ 📂setting
 ┃ ┃ ┣ 📜SettingPage.tsx
 ┃ ┃ ┗ 📜SettingPayPage.tsx
 ┃ ┗ 📂survey
 ┃ ┃ ┗ 📜SurveyPage.tsx
 ┣ 📂services
 ┃ ┣ 📜api.ts
 ┃ ┗ 📜notificationService.ts
 ┣ 📂stores
 ┃ ┣ 📜authStore.ts
 ┃ ┗ 📜visitedStoreStore.ts
 ┣ 📂styles
 ┃ ┣ 📜colors.ts
 ┃ ┣ 📜fonts.tsx
 ┃ ┗ 📜typography.ts
 ┣ 📂utils
 ┃ ┣ 📜captureUtils.ts
 ┃ ┣ 📜cookieAuth.ts
 ┃ ┣ 📜firebaseUtils.ts
 ┃ ┗ 📜storeUtils.ts
 ┣ 📜App.tsx
 ┣ 📜config.ts
 ┣ 📜firebaseConfig.ts
 ┣ 📜index.css
 ┣ 📜main.tsx
 ┗ 📜vite-env.d.ts
  

📜 산출물

기능 명세서

🔹 키오스크

기능명세서

🔹 유저 앱

기능명세서
erd erd
피그마 피그마 피그마
api 명세서

🔹 키오스크

api명세서

🔹 유저 앱

api명세서

🔹 얼굴 인식

api명세서

🔹 결제

api명세서

🔹 알림

api명세서

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •