테이블오더
AI-DLC(AI-Driven Development Life Cycle) 워크샵의 실습 과제인 테이블오더 서비스를 위한 요구사항 문서 모음입니다. 매장 태블릿에서 고객이 직접 주문하고, 관리자가 실시간으로 주문을 관리하는 디지털 주문 시스템을, 아래 요구사항 정의서와 구현 예외사항을 기준으로 구현합니다.
requirements/ 디렉터리에 두고,
Kiro 에게 이 요구사항을 기반으로 스펙을 작성·구현하도록 요청하세요. 요구사항 정의서는 무엇을 만들지를,
구현 예외사항은 이번 범위에서 제외할 것을 정의합니다.
첨부 파일
다음 두 마크다운 문서를 이 페이지에서 바로 내려받을 수 있습니다. 아래에 각 문서의 전체 내용도 함께 실었습니다.
테이블오더 서비스 요구사항 정의서 — 고객용·관리자용 기능, MVP 범위, 용어 정의
📄 constraints.md테이블오더 구현 예외사항 — 이번 구현에서 제외하는 기능 목록
테이블오더 서비스 요구사항 정의서
1. 프로젝트 개요
1.1 서비스 비전
디지털 주문 시스템을 통해 고객에게는 편리한 주문 경험을, 매장 운영자에게는 효율적인 운영 환경을 제공하는 차세대 테이블오더 플랫폼
1.2 핵심 가치 제안
고객 관점
- 대기 시간 없는 즉시 주문
- 직관적이고 사용하기 쉬운 인터페이스
매장 운영자 관점
- 인건비 절감 및 운영 효율성 증대
- 실시간 주문 관리 및 모니터링
시장 차별화
- 다양한 업종에 적용 가능한 유연한 구조
- 직관적인 관리자 도구
2. 서비스 구성
2.1 주요 구성 요소
- 고객용 인터페이스: 테이블에서 고객이 사용하는 주문 화면 (브라우저에서 동작하는 웹UI 방식)
- 관리자용 인터페이스: 매장 운영자가 사용하는 관리 화면
- 서버 시스템: 주문 처리 및 데이터 관리
- 데이터 저장소: 매장, 메뉴, 주문 정보 저장
3. 핵심 기능 요구사항
3.1 고객용 기능 (Customer Features)
3.1.1 테이블 태블릿 자동 로그인 및 세션 관리
목적: 고객이 별도 로그인 절차 없이 즉시 주문할 수 있도록 자동 인증
기능 요구사항:
- 초기 설정 (관리자가 1회 수행):
- 매장 식별자 입력
- 테이블 번호 입력
- 테이블 비밀번호 입력
- 최종 로그인 정보 로컬 저장
- 자동 로그인:
- 1회 로그인 성공 후, 저장된 정보로 자동 로그인
3.1.2 메뉴 조회 및 탐색
목적: 고객이 매장의 메뉴를 쉽게 탐색하고 선택할 수 있도록 지원
기능 요구사항:
- 기본 화면: 메뉴 화면이 기본 화면으로 항상 표시
- 카테고리별 메뉴 분류 및 표시
- 메뉴 상세 정보 표시
- 메뉴명
- 가격
- 메뉴 설명
- 메뉴 이미지
- 카테고리 간 빠른 이동
UI/UX 요구사항:
- 카드 형태의 메뉴 레이아웃
- 터치 친화적인 버튼 크기 (최소 44x44px)
- 명확한 시각적 계층 구조
3.1.3 장바구니 관리
목적: 주문 전 선택한 메뉴를 임시 저장하고 수정할 수 있는 기능
기능 요구사항:
- 메뉴 추가/삭제
- 수량 조절 (증가/감소)
- 총 금액 실시간 계산
- 장바구니 비우기
- 로컬 저장 (페이지 새로고침 시에도 유지)
데이터 관리:
- 클라이언트 측 임시 저장 (페이지 새로고침 시에도 유지)
- 서버 전송은 주문 확정 시에만 수행
3.1.4 주문 생성
목적: 장바구니의 메뉴를 실제 주문으로 전환
기능 요구사항:
- 주문 내역 최종 확인
- 주문 확정 버튼
- 주문 성공 플로우:
- 주문 번호 표시
- 장바구니 자동 비우기
- 메뉴 화면으로 자동 리다이렉트
- 주문 실패 시 에러 메시지 표시 및 장바구니 유지
주문 정보 포함 항목:
- 매장 식별 정보
- 테이블 식별 정보
- 주문 메뉴 목록 (메뉴명, 수량, 단가)
- 총 주문 금액
- 세션 ID (테이블 세션 추적용)
3.1.5 주문 내역 조회
목적: 현재 테이블의 주문 이력을 확인
기능 요구사항:
- 주문 시간 순 정렬
- 주문별 상세 정보 표시
- 주문 번호
- 주문 시각
- 주문 메뉴 및 수량
- 주문 금액
- 주문 상태 (대기중/준비중/완료)
- 주문 상태 실시간 업데이트 (선택사항)
데이터 필터링:
- 현재 테이블 세션 주문만 표시 (이전 식사 세션 제외)
- 매장 이용 완료 처리된 주문은 제외
- 페이지네이션 또는 무한 스크롤
3.2 관리자용 기능 (Admin Features)
3.2.1 매장 인증
목적: 관리자가 자신의 매장 관리 시스템에 접근
기능 요구사항:
- 매장 식별자 입력
- 사용자명 및 비밀번호 입력
- 세션 관리:
- 16시간 세션 유지
- JWT 토큰 기반 인증
- 브라우저 새로고침 시 세션 유지
- 16시간 후 자동 로그아웃
보안 요구사항:
- 비밀번호 안전한 저장 (bcrypt 해싱)
- 로그인 시도 제한
- 세션 기반 인증
3.2.2 실시간 주문 모니터링
목적: 들어오는 주문을 실시간으로 확인하고 관리
기능 요구사항:
- 주문 목록 실시간 업데이트 (Server-Sent Events 사용)
- 그리드/대시보드 레이아웃:
- 테이블별 카드 형태 표시
- 각 테이블 카드에 총 주문액 표시
- 최신 주문 n개 미리보기
- 주문별 상세 정보 표시
- 테이블 번호
- 주문 번호
- 주문 시각
- 주문 메뉴 및 수량 (축약)
- 총 금액
- 주문 카드 클릭 시: 전체 메뉴 목록 상세 보기
- 주문 상태 변경 (대기중/준비중/완료)
- 신규 주문 시각적 강조 (색상 변경, 애니메이션)
업데이트 방식:
- Server-Sent Events (SSE) 기반 실시간 통신
- 2초 이내 주문 표시
UI 요구사항:
- 그리드 형태의 테이블별 레이아웃
- 최신 주문 강조 표시
- 테이블별 필터링 기능
3.2.3 테이블 관리
목적: 테이블별 주문 상태 관리 및 세션 라이프사이클 관리
기능 요구사항:
1. 테이블 태블릿 초기 설정:
- 테이블 번호 및 테이블 비밀번호 설정
- 16시간 세션 생성
- 설정 정보 저장 및 자동 로그인 활성화
2. 주문 삭제 (직권 수정):
- 특정 주문 삭제 버튼
- 확인 팝업 표시
- 주문 즉시 삭제
- 테이블 총 주문액 재계산
- 성공/실패 피드백
3. 테이블 세션 처리:
- 테이블 세션 시작(세션의 첫 주문) 및 종료 관리(테이블 이용 완료)
- 확인 팝업 표시
- 테이블 세션 종료(이용 완료) 시, 해당 세션의 주문 내역을 과거 이력으로 이동
- 테이블 세션 종료(이용 완료) 시, 테이블 현재 주문 목록 및 총 주문액 0으로 리셋
- 새 고객이 이전 주문 내역 없이 시작 가능
- 성공/실패 피드백
4. 과거 주문 내역 조회:
- "과거 내역" 버튼
- 테이블별 과거 주문 목록 표시 (시간 역순)
- 각 주문 정보: 주문 번호, 시각, 메뉴 목록, 총 금액, 매장 이용 완료 시각
- 날짜 필터링 기능
- "닫기" 버튼으로 대시보드 복귀
데이터 관리:
- 주문 이력 데이터베이스 저장 (OrderHistory 테이블)
- 세션 ID로 주문 그룹화
- 완료 시각 기록
3.2.4 메뉴 관리
목적: 메뉴 정보를 동적으로 관리
기능 요구사항:
- 메뉴 조회 (카테고리별)
- 메뉴 등록
- 메뉴명
- 가격
- 설명
- 카테고리
- 이미지 URL
- 메뉴 수정
- 메뉴 삭제
- 메뉴 노출 순서 조정
데이터 검증:
- 필수 필드 검증
- 가격 범위 검증
4. MVP 개발 범위
핵심 기능 (필수)
목표: 기본적인 주문 프로세스 구현
고객용:
- 테이블 태블릿 자동 로그인 및 세션 관리
- 메뉴 조회
- 장바구니 관리
- 주문 생성 (5초 표시 후 자동 리다이렉트)
- 주문 내역 조회 (현재 세션만)
관리자용:
- 매장 인증 (16시간 세션)
- 실시간 주문 모니터링 (그리드 레이아웃, SSE)
- 테이블 관리 (초기 설정, 주문 삭제, 매장 이용 완료, 과거 내역 조회)
부록
A. 용어 정의
- MVP: Minimum Viable Product (최소 기능 제품)
- API: Application Programming Interface (애플리케이션 프로그래밍 인터페이스)
- UI/UX: User Interface / User Experience (사용자 인터페이스 / 사용자 경험)
- 테이블 세션: 특정 테이블에 고객이 앉아서 첫 주문 시작한 후 부터 해당 테이블 이용 완료 처리까지의 시간. 세션 종료 후 다른 고객의 첫 주문 시작 시, 새로운 세션 시작.
테이블오더 구현 예외사항
제외 기능 (구현하지 않음)
1. 결제 관련
- 실제 결제 처리 (카드, 현금, 디지털 지갑)
- 결제 게이트웨이 연동 (PG사 연동)
- 영수증 발행 및 출력
- 환불 처리
- 포인트/쿠폰 시스템
2. 인증 및 보안
- 복잡한 사용자 인증 (OAuth, SNS 로그인)
- 다단계 인증 (2FA, OTP)
3. 파일 및 컨텐츠 관리
- 이미지 리사이징/최적화
- 컨텐츠 관리 시스템
- 광고 기능 등은 포함하지 않음
4. 알림 시스템
- 푸시 알림 (모바일, 브라우저)
- SMS 알림
- 이메일 발송
- 소리/진동 알림
5. 주방 기능
- 주문 내역 주방 전달
- 주방 식재료 재고 관리
6. 고급 기능
- 데이터 분석 및 대시보드
- 매출 리포트 생성
- 재고 관리 시스템
- 직원 관리 및 권한 설정
- 예약 시스템
- 고객 리뷰 시스템
- 다국어 기능
7. 외부 연동
- 배달 플랫폼 연동
- POS 시스템 연동
- 소셜 미디어 공유
- 지도 API
- 번역 API