Skip to content

deingvelop/coffee-pos-machine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coffee-pos-machine

커피 주문 시스템


💬 API 명세

기능 구현

  • 커피 메뉴 목록 조회하기
  • 커피 주문/결제하기
  • 인기 메뉴 목록 조회하기
  • 포인트 충전하기

✍🏻 도전 과제

  • 동시성 관련 테스트코드 작성 및 DB Lock을 활용한 동시성 제어
  • Swagger를 활용한 API Documentation
  • Redis 캐싱을 활용하여 인기 메뉴 조회 성능 최적화
  • Redis 분산 락을 활용하여 동시성 제어
  • Kafka를 활용하여 별도의 데이터 수집 플랫폼으로 로그를 보내는 로직 작성

📜 기술스택

분류 기술
Language
Framework
Build Tool
DB
Caching & Locking
Logging
Documentation

🏰 아키텍쳐

아키텍쳐 바로보기 준비중

📕 DB 설계

ERD

erd - 230212.png

SQL - DDL
CREATE TABLE `beverage` (
    `id` BIGINT(20) NOT NULL auto_increment,
    `name` varchar(20) NOT NULL,
    `price` INT(11) NOT NULL,
    PRIMARY KEY(`id`)
);

CREATE TABLE `user` (
    `id` BIGINT(20) NOT NULL auto_increment,
    `point` BIGINT(20) NOT NULL DEFAULT 0,
    PRIMARY KEY(`id`)
);

CREATE TABLE `point_log` (
    `id` BIGINT(20) NOT NULL auto_increment,
    `point` BIGINT(20) NOT NULL,
    `uesr_id` BIGINT(20) NOT NULL,
    PRIMARY KEY(`id`)
);

CREATE TABLE `order` (
    `id` BIGINT(20) NOT NULL auto_increment,
    `created_at` DATETIME NOT NULL,
    `user_id` BIGINT(20) NOT NULL,
    `beverage_id` BIGINT(20) NOT NULL,
    PRIMARY KEY(`id`),
    KEY idx_created_at(`created_at`)
);

About

커피 주문 시스템

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages