An open API service indexing awesome lists of open source software.

https://github.com/knu-k/java-convenience-store-7-knu-k


https://github.com/knu-k/java-convenience-store-7-knu-k

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

## ๐Ÿช ํŽธ์˜์  ๊ด€๋ฆฌ ์‹œ์Šคํ…œ - ์šฐ์•„ํ•œ ํ…Œํฌ ํ”„๋ฆฌ์ฝ”์Šค 4์ฃผ์ฐจ ํ”„๋กœ์ ํŠธ

> **ํŽธ์˜์  ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ**๋Š” ํŽธ์˜์  ์ƒํ’ˆ ๊ด€๋ฆฌ, ํ”„๋กœ๋ชจ์…˜ ์ ์šฉ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ธฐ๋Šฅ, ๊ฒฐ์ œ ๋ฐ ์˜์ˆ˜์ฆ ๋ฐœํ–‰๊นŒ์ง€ ํŽธ์˜์  ์šด์˜์˜ ํ๋ฆ„์„ ๊ตฌํ˜„ํ•œ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ์„ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์™€ ๋‹ค์–‘ํ•œ ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๋…๋ฆฝ์ ์ด๊ณ  ์œ ์ง€ ๋ณด์ˆ˜์„ฑ์ด ๋†’์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋ชฉํ‘œ๋กœ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

---

## ๐Ÿ“– ๋ชฉ์ฐจ
1. [๋„๋ฉ”์ธ ์„ค๊ณ„](#-๋„๋ฉ”์ธ-์„ค๊ณ„)
2. [์ „์ฒด ๊ธฐ๋Šฅ ๋ช…์„ธ](#-์ „์ฒด-๊ธฐ๋Šฅ-๋ช…์„ธ)
2. [์‹œ์Šคํ…œ ํ๋ฆ„](#-์‹œ์Šคํ…œ-ํ๋ฆ„)
3. [์ฃผ์š” ๋กœ์ง ๋ฐ ๋””์ž์ธ ํŒจํ„ด](#-์ฃผ์š”-๋กœ์ง-๋ฐ-๋””์ž์ธ-ํŒจํ„ด)
4. [๋‹จ๊ณ„๋ณ„ ์ฑ…์ž„ ๋ถ„๋ฆฌ](#-๋‹จ๊ณ„๋ณ„-์ฑ…์ž„-๋ถ„๋ฆฌ)
5. [์‹œ๊ฐ„ ๊ณ ์ • ํ…Œ์ŠคํŠธ](#-์‹œ๊ฐ„-๊ณ ์ •-ํ…Œ์ŠคํŠธ)
6. [์„ค์น˜ ๋ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•](#-์„ค์น˜-๋ฐ-์‹คํ–‰-๋ฐฉ๋ฒ•)

---

## ๐Ÿ— ๋„๋ฉ”์ธ ์„ค๊ณ„

ํŽธ์˜์  ์šด์˜์— ํ•„์š”ํ•œ ์š”์†Œ๋“ค์„ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•˜์˜€์œผ๋ฉฐ, ํ•„์š”ํ•œ ๋กœ์ง์„ ์บก์Аํ™”ํ•˜์—ฌ ์œ ์ง€ ๋ณด์ˆ˜์„ฑ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.

| ๋„๋ฉ”์ธ | ํด๋ž˜์Šค ๋ช… | ์„ค๋ช… |
|--------|-----------|------|
| **์ƒํ’ˆ** | `Product` | ์ƒํ’ˆ์˜ ๊ธฐ๋ณธ ์ •๋ณด(์ด๋ฆ„, ๊ฐ€๊ฒฉ) ๊ด€๋ฆฌ ๋ฐ ์ถœ๋ ฅ ๊ธฐ๋Šฅ |
| **์žฌ๊ณ ** | `Stock` | ํŠน์ • ์ƒํ’ˆ์˜ ์žฌ๊ณ  ์ˆ˜๋Ÿ‰ ๊ด€๋ฆฌ ๋ฐ ํ’ˆ์ ˆ ์—ฌ๋ถ€ ํ™•์ธ |
| **ํ”„๋กœ๋ชจ์…˜ ์žฌ๊ณ ** | `PromotionStock` | ํ”„๋กœ๋ชจ์…˜ ์กฐ๊ฑด์„ ๊ฐ€์ง„ ์žฌ๊ณ  ๊ด€๋ฆฌ |
| **์žฌ๊ณ  ๊ด€๋ฆฌ** | `Inventory` | ๋ชจ๋“  ์ƒํ’ˆ๊ณผ ํ”„๋กœ๋ชจ์…˜ ์žฌ๊ณ ๋ฅผ ํ†ตํ•ฉ ๊ด€๋ฆฌ |
| **์žฅ๋ฐ”๊ตฌ๋‹ˆ** | `Cart` | ์‚ฌ์šฉ์ž ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‚ด ์ƒํ’ˆ ๋ชฉ๋ก์„ ๊ด€๋ฆฌ |
| **์žฅ๋ฐ”๊ตฌ๋‹ˆ ํ•ญ๋ชฉ** | `CartItem` | ๊ฐœ๋ณ„ ์ƒํ’ˆ ํ•ญ๋ชฉ๊ณผ ์ˆ˜๋Ÿ‰ ์กฐ์ • ๊ธฐ๋Šฅ ํฌํ•จ |
| **๊ฐ€๊ฒฉ** | `Price` | ๊ฐ€๊ฒฉ ์—ฐ์‚ฐ(๊ณฑ์…ˆ, ๋ง์…ˆ, ๋ฐฑ๋ถ„์œจ) ๋ฐ ํฌ๋งท |
| **ํ”„๋กœ๋ชจ์…˜** | `Promotion` | ํŠน์ • ์ƒํ’ˆ์— ์ ์šฉํ•  ํ”„๋กœ๋ชจ์…˜ ์ •์˜ ๋ฐ ๊ฒ€์ฆ |
| **์˜์ˆ˜์ฆ** | `Receipt` | ๊ตฌ๋งค ๋‚ด์—ญ๊ณผ ์ด์•ก, ํ• ์ธ๊ธˆ์•ก ๊ณ„์‚ฐ ๋ฐ ์ถœ๋ ฅ |
| **์ฃผ๋ฌธ** | `Order` | ์ฃผ๋ฌธ ์ •๋ณด ๊ด€๋ฆฌ ๋ฐ ์ฃผ๋ฌธ ํ•ญ๋ชฉ ์ƒ์„ฑ |
| **์ฃผ๋ฌธ ํ•ญ๋ชฉ** | `OrderItem` | ์žฅ๋ฐ”๊ตฌ๋‹ˆ ํ•ญ๋ชฉ์„ ์ฃผ๋ฌธ ํ•ญ๋ชฉ์œผ๋กœ ๋ณ€ํ™˜ |
| **๊ฒฐ์ œ** | `Payment` | ๊ฒฐ์ œ ์ •๋ณด ๋ฐ ํ• ์ธ ๊ณ„์‚ฐ ๊ด€๋ฆฌ |
| **๊ฒฐ์ œ ํ•ญ๋ชฉ** | `PaymentItem` | ๊ฐœ๋ณ„ ๊ฒฐ์ œ ํ•ญ๋ชฉ ๋ฐ ํ• ์ธ ๊ธˆ์•ก ๊ด€๋ฆฌ |
| **ํ”„๋กœ๋ชจ์…˜ ์ •์ฑ…** | `PromotionPolicy` | ํ”„๋กœ๋ชจ์…˜ ์กฐ๊ฑด ์ •์˜ ๋ฐ ์กฐ๊ฑด ์ถฉ์กฑ ์—ฌ๋ถ€ |

---
## ๐Ÿ“œ ์ „์ฒด ๊ธฐ๋Šฅ ๋ช…์„ธ

### 1. **์ƒํ’ˆ ๋ฐ ์žฌ๊ณ  ๊ด€๋ฆฌ**
- **์ƒํ’ˆ ๊ด€๋ฆฌ**: ์ƒํ’ˆ์€ ์ด๋ฆ„๊ณผ ๊ฐ€๊ฒฉ์„ ๊ธฐ์ค€์œผ๋กœ ๊ด€๋ฆฌ๋˜๋ฉฐ, ๊ฐ ์ƒํ’ˆ์˜ ์žฌ๊ณ  ์ˆ˜๋Ÿ‰๋„ ํ•จ๊ป˜ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
- **์žฌ๊ณ  ๊ด€๋ฆฌ**: ์ƒํ’ˆ์˜ ์žฌ๊ณ ๋Š” ๊ตฌ๋งค ์‹œ ์ฐจ๊ฐ๋˜๋ฉฐ, ์žฌ๊ณ ๊ฐ€ ๋ถ€์กฑํ•  ๊ฒฝ์šฐ ๊ตฌ๋งคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์žฌ๊ณ ๋Š” ์ƒํ’ˆ๋ณ„๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

### 2. **์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋ฐ ์ฃผ๋ฌธ**
- **์žฅ๋ฐ”๊ตฌ๋‹ˆ**: ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ์ƒํ’ˆ์€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธฐ๋ฉฐ, ์ƒํ’ˆ์˜ ์ˆ˜๋Ÿ‰๊ณผ ๊ฐ€๊ฒฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
- **์ฃผ๋ฌธ ์ƒ์„ฑ**: ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธด ์ƒํ’ˆ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฃผ๋ฌธ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ฃผ๋ฌธ ์ƒ์„ฑ ์‹œ ํ”„๋กœ๋ชจ์…˜ ์กฐ๊ฑด์„ ์ ์šฉํ•˜์—ฌ ํ• ์ธ ํ˜œํƒ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

### 3. **๊ฒฐ์ œ ์‹œ์Šคํ…œ**
- **์ตœ์ข… ๊ฒฐ์ œ ๊ธˆ์•ก ๊ณ„์‚ฐ**: ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ๊ณผ ์ˆ˜๋Ÿ‰์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ฒฐ์ œ ๊ธˆ์•ก์ด ๊ณ„์‚ฐ๋˜๋ฉฐ, ํ”„๋กœ๋ชจ์…˜ ๋ฐ ๋ฉค๋ฒ„์‹ญ ํ• ์ธ ์ •์ฑ…์ด ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.
- **์˜์ˆ˜์ฆ ์ถœ๋ ฅ**: ๊ฒฐ์ œ ํ›„ ์˜์ˆ˜์ฆ์„ ์ถœ๋ ฅํ•˜๋ฉฐ, ๊ตฌ๋งค ๋‚ด์—ญ๊ณผ ์ตœ์ข… ๊ฒฐ์ œ ๊ธˆ์•ก์ด ์•ˆ๋‚ด๋ฉ๋‹ˆ๋‹ค.
- **์ž˜๋ชป๋œ ์ž…๋ ฅ ์ฒ˜๋ฆฌ**: ์‚ฌ์šฉ์ž๊ฐ€ ์ž˜๋ชป๋œ ๊ฐ’์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ `IllegalArgumentException`์„ ๋ฐœ์ƒ์‹œํ‚ค๋ฉฐ, ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ๋‹ค์‹œ ์ž…๋ ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

### 4. **ํ”„๋กœ๋ชจ์…˜ ๋ฐ ํ• ์ธ ์ •์ฑ…**
- **ํ”„๋กœ๋ชจ์…˜ ์ ์šฉ**: ํ”„๋กœ๋ชจ์…˜์€ 'Buy N Get 1 Free' ํ˜•ํƒœ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๋‚ ์งœ๊ฐ€ ํ”„๋กœ๋ชจ์…˜ ๊ธฐ๊ฐ„ ๋‚ด์— ํฌํ•จ๋  ๊ฒฝ์šฐ ํ•ด๋‹น ํ”„๋กœ๋ชจ์…˜์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
- **ํ”„๋กœ๋ชจ์…˜ ์žฌ๊ณ  ์ฐจ๊ฐ**: ํ”„๋กœ๋ชจ์…˜์ด ์ ์šฉ๋˜๋Š” ์ƒํ’ˆ์€ ํ”„๋กœ๋ชจ์…˜ ์žฌ๊ณ ์—์„œ ์šฐ์„  ์ฐจ๊ฐ๋˜๋ฉฐ, ํ”„๋กœ๋ชจ์…˜ ์žฌ๊ณ ๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ ์ผ๋ฐ˜ ์žฌ๊ณ ์—์„œ ์ฐจ๊ฐ๋ฉ๋‹ˆ๋‹ค.
- **ํ”„๋กœ๋ชจ์…˜ ์•ˆ๋‚ด**: ํ”„๋กœ๋ชจ์…˜ ์ ์šฉ ๋Œ€์ƒ ์ƒํ’ˆ์— ๋Œ€ํ•ด ํ•„์š”ํ•œ ์ˆ˜๋Ÿ‰์„ ๋” ์ถ”๊ฐ€๋กœ ๊ตฌ๋งคํ•  ๊ฒฝ์šฐ ํ˜œํƒ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

### 5. **์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ์˜ˆ์™ธ**
- **์ž˜๋ชป๋œ ์ž…๋ ฅ ์ฒ˜๋ฆฌ**: ์‚ฌ์šฉ์ž๊ฐ€ ์ž˜๋ชป๋œ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด `IllegalArgumentException`์„ ๋ฐœ์ƒ์‹œํ‚ค๋ฉฐ, ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ์ž…๋ ฅ์„ ์œ ๋„ํ•ฉ๋‹ˆ๋‹ค.
- **์œ ํšจํ•˜์ง€ ์•Š์€ ์ƒํƒœ**: ํ”„๋กœ๋ชจ์…˜ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์ง€ ์•Š๊ฑฐ๋‚˜, ์žฌ๊ณ ๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ ์ ์ ˆํ•œ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

### 6. **๊ธฐํƒ€**
- **์ถ”๊ฐ€ ๊ตฌ๋งค ๋˜๋Š” ์ข…๋ฃŒ ์„ ํƒ**: ์˜์ˆ˜์ฆ ์ถœ๋ ฅ ํ›„ ์ถ”๊ฐ€ ๊ตฌ๋งค๋ฅผ ํ• ์ง€ ๋˜๋Š” ์ข…๋ฃŒํ• ์ง€๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
---
## ๐Ÿ”„ ์‹œ์Šคํ…œ ํ๋ฆ„

### ์ „์ฒด ํ๋ฆ„
1. **ํŒŒ์ผ ์ฝ๊ธฐ**
- `promotions.md` ํŒŒ์ผ์„ ํ†ตํ•ด ํ”„๋กœ๋ชจ์…˜ ๋กœ์ง์„ ์„ค์ •ํ•˜๊ณ , `products.md`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ `Inventory`๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
2. **์นดํŠธ์— ์ƒํ’ˆ ๋‹ด๊ธฐ**
- ์‚ฌ์šฉ์ž๊ฐ€ ์ƒํ’ˆ์„ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ถ”๊ฐ€ํ•˜๊ณ , ์žฌ๊ณ ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
3. **์ฃผ๋ฌธ ์ƒ์„ฑ**
- ํ”„๋กœ๋ชจ์…˜ ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ˜œํƒ ์ ์šฉ ์—ฌ๋ถ€๋ฅผ ํŒ๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
- ํ”„๋กœ๋ชจ์…˜ ์กฐ๊ฑด:
1. n+1 ํ–‰์‚ฌ ์ƒํ’ˆ ํฌํ•จ ์—ฌ๋ถ€
2. ์ •๊ฐ€๋กœ ๊ฒฐ์ œํ•ด์•ผ ํ•˜๋Š” ์ƒํ’ˆ ์œ ๋ฌด
4. **๊ฒฐ์ œ ์ฒ˜๋ฆฌ**
- ๋ฉค๋ฒ„์‹ญ ํ• ์ธ ์ ์šฉ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์ตœ์ข… ๊ฒฐ์ œ ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
5. **์˜์ˆ˜์ฆ ๋ฐœํ–‰**
- ์ตœ์ข… ๊ฒฐ์ œ ์™„๋ฃŒ ํ›„ ์˜์ˆ˜์ฆ์„ ์ƒ์„ฑํ•˜์—ฌ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

---

## ๐Ÿงฉ ์ฃผ์š” ๋กœ์ง ๋ฐ ๋””์ž์ธ ํŒจํ„ด

### 1. **Callback Interface**๋กœ ์ž…๋ ฅ ์ œ์–ด
- `Order`์—์„œ ๋ถ„๊ธฐ๋ณ„ ์ž…๋ ฅ ์ œ์–ด์— **Callback ํŒจํ„ด**์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ  ์œ ์—ฐ์„ฑ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.

### 2. **Strategy ํŒจํ„ด**์œผ๋กœ ํ”„๋กœ๋ชจ์…˜ ์ „๋žต ์ ์šฉ
- ๊ฐ ํ”„๋กœ๋ชจ์…˜์— ๋งž๋Š” ์ „๋žต์„ **ํŒฉํ† ๋ฆฌ ๋ฐ ์ „๋žต ํŒจํ„ด**์œผ๋กœ ์ ์šฉํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๊ฐ•ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

### 3. **์‹ฑ๊ธ€ํ†ค ํŒจํ„ด**์œผ๋กœ `InventoryExtension` ์„ค์ •
- `Inventory`๋ฅผ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ, ํ…Œ์ŠคํŠธ ์‹œ ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ์ž…ํ•˜์—ฌ ํ…Œ์ŠคํŠธ ํšจ์œจ์„ฑ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.

---

## โš™๏ธ ๋‹จ๊ณ„๋ณ„ ์ฑ…์ž„ ๋ถ„๋ฆฌ

1. **์ƒํ’ˆ ์กฐํšŒ ๋ฐ ์„ ํƒ** - ์‚ฌ์šฉ์ž๊ฐ€ ์ƒํ’ˆ์„ ์„ ํƒํ•˜๊ณ  ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
2. **์žฌ๊ณ  ํ™•์ธ ๋ฐ ํ”„๋กœ๋ชจ์…˜ ์ ์šฉ** - ์ƒํ’ˆ์˜ ์žฌ๊ณ ๋ฅผ ํ™•์ธํ•˜๊ณ , ํ”„๋กœ๋ชจ์…˜ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
3. **์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ตฌ์„ฑ** - ์„ ํƒ๋œ ์ƒํ’ˆ๊ณผ ์ˆ˜๋Ÿ‰์„ ๋ฐ”ํƒ•์œผ๋กœ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
4. **์ฃผ๋ฌธ ์ƒ์„ฑ** - ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ฃผ๋ฌธ์„ ์ƒ์„ฑํ•˜๊ณ , ํ”„๋กœ๋ชจ์…˜ ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ˜œํƒ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
5. **๊ฒฐ์ œ** - ์ด์•ก ๋ฐ ํ• ์ธ ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜์—ฌ ๊ฒฐ์ œ๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
6. **์˜์ˆ˜์ฆ ๋ฐœํ–‰** - ๊ฒฐ์ œ ํ›„ ์˜์ˆ˜์ฆ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ ๋ฐ ์œ ์ง€ ๋ณด์ˆ˜์„ฑ์„ ํ•œ์ธต ๋” ํ–ฅ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

---

## ๐Ÿ•’ ์‹œ๊ฐ„ ๊ณ ์ • ํ…Œ์ŠคํŠธ

์‹œ๊ฐ„ ์˜์กด ๋กœ์ง ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด `DateTimeGenerator`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ `fixedMode`์™€ `nonFixedMode`๋กœ ์‹œ๊ฐ„์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹œ๊ฐ„์— ๋ฏผ๊ฐํ•œ ๊ธฐ๋Šฅ์„ ์ผ๊ด€๋˜๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

---

## ๐Ÿ’ป ์„ค์น˜ ๋ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•

1. **ํด๋ก **
ํ”„๋กœ์ ํŠธ๋ฅผ ํด๋ก ํ•ฉ๋‹ˆ๋‹ค:
```bash
git clone https://github.com/KNU-K/java-convenience-store-7-KNU-K
```

2. **๋นŒ๋“œ ๋ฐ ์‹คํ–‰**
Gradle์„ ์‚ฌ์šฉํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:
```bash
./gradlew build
./gradlew run
```

3. **ํ…Œ์ŠคํŠธ ์‹คํ–‰**
๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:
```bash
./gradlew test
```