TecaPicker App 설계

ddoachi·2025년 4월 5일

TekaPicker

목록 보기
1/30

TekaPicker MSA 아키텍처 설계

TekaPicker를 MSA + gRPC + Kubernetes 환경으로 구성하기 위한 설계 가이드


1. 전체 아키텍처 개요

[Frontend (React + Vite + TypeScript)]
↓ HTTPS
[API Gateway (NestJS)]
↓ gRPC
[User Service] - 사용자 관리
[Meal Service] - 메뉴, 태깅, 선택
[Storage Service] - 냉장/냉동/가져가기
[History Service] - 기록/선호도
[DB] PostgreSQL (또는 GPDB)
[Search] Elasticsearch (선택)
[Queue] Kafka (선택)

2. 서비스 구성

API Gateway

  • 역할: HTTPS 통신 처리, 인증 및 라우팅
  • 기술스택: NestJS + @grpc/microservices

User Service

  • 기능: 회원가입 및 인증, 사용자 정보, 시급 계산
  • DB: PostgreSQL

Meal Service

  • 기능: 끼니별 메뉴 조회 및 선택, 태깅 처리
  • 로직: 주메뉴/반메뉴/음료 조합 조건 처리 포함

Storage Service

  • 기능: 메뉴 보관 위치 기록 (냉장/냉동/집), 퇴근시 상태 변경

History Service

  • 기능: 선택한 메뉴 이력, 선호도 기록, 캘린더/주간 뷰 제공

3. 기술 요소

  • NestJS Microservices: 각 서비스는 NestJS 기반 gRPC 서버로 구성
  • gRPC: API Gateway와 각 서비스 간 통신
  • PostgreSQL: 기본 저장소로 활용
  • Elasticsearch (선택): 메뉴 검색, 필터 등 고속 조회에 활용 가능
  • Kafka (선택): 메뉴 선택/보관 등 이벤트 처리
  • Kubernetes: 서비스 배포 및 운영

4. 개발 순서 (우선순위 기반)

  1. 태깅 및 메뉴 선택 기능
  • UserService + MealService + Frontend 메뉴 선택 뷰
  1. 아내 계정 생성 및 선호도 기록
  • UserService 확장 + 선호도 입력 UI
  1. 냉장/냉동 보관 상태 처리
  • StorageService + 보관 UI
  1. 기록 조회 기능
  • HistoryService + Calendar/Weekly View

5. 권장 개발 방법

  • 기능 단위로 프론트 + 백엔드를 페어 개발
  • Swagger 또는 Postman으로 API 문서 병행
  • proto 파일 기반 gRPC 명세 우선 설계
  • 최소 단위부터 배포 테스트 → 점진적 확장

6. 향후 확장 아이디어

  • 추천 메뉴 기능 (선호도 기반 추천 알고리즘)
  • Slack/카카오톡 알림 봇 연동
  • 점심 예측 API (사용자 패턴 기반)
profile
내일도 풀스택

0개의 댓글