커피 주문 시스템
- 커피 메뉴 목록 조회하기
- 커피 주문/결제하기
- 인기 메뉴 목록 조회하기
- 포인트 충전하기
Swagger : coffee-pos-machine
- 동시성 관련 테스트코드 작성 및 DB Lock을 활용한 동시성 제어
- Swagger를 활용한 API Documentation
- Redis 캐싱을 활용하여 인기 메뉴 조회 성능 최적화
- Redis 분산 락을 활용하여 동시성 제어
- Kafka를 활용하여 별도의 데이터 수집 플랫폼으로 로그를 보내는 로직 작성
분류 | 기술 |
---|---|
Language | |
Framework | |
Build Tool | |
DB | |
Caching & Locking | |
Logging | |
Documentation |
아키텍쳐 바로보기
준비중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`)
);