์๋ฐ๋ฅผ ํ์ฉํ์ฌ ์์ดํฌ์ ํ๋ฒ๊ฑฐ ํค์ค์คํฌ ์์คํ ์ ๊ฐ๋ฐํ ํ๋ก์ ํธ์ ๋๋ค. ๋จ์ํ ๋ฉ๋ด ์ ํ๋ถํฐ ์์ํด ๊ฐ์ฒด์งํฅ ์ค๊ณ ์์น์ ์ ์ฉํ๊ณ , ์บก์ํ, ํด๋์ค ๊ฐ ํ๋ ฅ ๋ฑ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ ๊ฐ๋ ์ ์ ์ฉํด๋ณด์์ต๋๋ค.
์ด ํ๋ก์ ํธ๋ ๋จ๊ณ์ ์ผ๋ก ๊ธฐ๋ฅ์ ํ์ฅํ๋ฉฐ ์๋ฐ์ ๋ค์ํ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ฒด์งํฅ ์ค๊ณ ์์น์ ํ์ตํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์งํ๋์์ต๋๋ค.
์ฒ์์๋ ๋จ์ํ ๋ฉ๋ด๋ฅผ ํ์ํ๊ณ ์ฌ์ฉ์ ์ ๋ ฅ์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ณธ์ ์ธ ํค์ค์คํฌ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. ๋ชจ๋ ์ฝ๋๊ฐ ํ๋์ ํด๋์ค ํ์ผ์ ์์๊ณ , ๊ตฌ์กฐํ๋์ง ์์์ง๋ง ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋์ํ์ต๋๋ค.
// ์ฒ์ ๊ตฌํํ๋ ๋จ์ํ ๋ฐฉ์
Scanner scanner = new Scanner(System.in);
System.out.println("[ SHAKESHACK MENU ]");
System.out.println("1. ShackBurger | W 6.9 | ํ ๋งํ , ์์์ถ, ์์์ค๊ฐ ํ ํ๋ ์น์ฆ๋ฒ๊ฑฐ");
// ... ๋ฉ๋ด ์ถ๋ ฅ ์ฝ๋์ฝ๋๊ฐ ๊ธธ์ด์ง๊ณ ๋ณต์กํด์ง๋ฉด์ ์ ์ง๋ณด์์ ์ด๋ ค์์ ๋๊ผ์ต๋๋ค. ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด MenuItem ํด๋์ค๋ฅผ ๋ง๋ค์ด ๋ฉ๋ด ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๊ฒ ํ์ต๋๋ค.
// MenuItem ํด๋์ค๋ฅผ ํตํด ๋ฉ๋ด ์ ๋ณด ์บก์ํ
public class MenuItem {
private String name;
private double price;
private String description;
// ์์ฑ์, getter, setter ๋ฑ
}๋ฉ๋ด ํ์์ ์
๋ ฅ ์ฒ๋ฆฌ ๋ฑ ๋ชจ๋ ๋ก์ง์ด Main ํด๋์ค์ ์๋ ๊ฒ์ด ๋นํจ์จ์ ์ด๋ผ ์๊ฐํ์ต๋๋ค. ํค์ค์คํฌ ๋์์ ๋ด๋นํ๋ Kiosk ํด๋์ค๋ฅผ ๋ง๋ค์ด ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ์ต๋๋ค.
// Kiosk ํด๋์ค๋ฅผ ํตํด ํค์ค์คํฌ ๋์ ๋ก์ง ๋ถ๋ฆฌ
public class Kiosk {
private List<MenuItem> menuItems;
public void start() {
// ํค์ค์คํฌ ์คํ ๋ก์ง
}
// ๋ค๋ฅธ ๋ฉ์๋๋ค...
}์ค์ ํค์ค์คํฌ์ฒ๋ผ ์นดํ
๊ณ ๋ฆฌ๋ณ ๋ฉ๋ด ๊ตฌ์กฐ๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. Menu ํด๋์ค๋ฅผ ์ถ๊ฐํด '๋ฒ๊ฑฐ', '์๋ฃ', '๋์ ํธ' ๋ฑ์ ์นดํ
๊ณ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ , ๊ฐ ์นดํ
๊ณ ๋ฆฌ ์์ ๋ฉ๋ด ํญ๋ชฉ์ ๊ตฌ์ฑํ์ต๋๋ค.
// Menu ํด๋์ค๋ฅผ ํตํ ์นดํ
๊ณ ๋ฆฌ ๊ตฌํ
public class Menu {
private String name; // ์นดํ
๊ณ ๋ฆฌ ์ด๋ฆ (์: "Burgers")
private List<MenuItem> menuItems;
// ๋ฉ์๋๋ค...
}ํ๋ก๊ทธ๋จ์ด ์ปค์ง๋ฉด์ ๋ฐ์ดํฐ ๋ณดํธ์ ์ผ๊ด์ฑ ์ ์ง๊ฐ ์ค์ํด์ก์ต๋๋ค. ๋ชจ๋ ํด๋์ค์ ํ๋๋ฅผ private์ผ๋ก ์ ์ธํ๊ณ , getter/setter ๋ฉ์๋๋ฅผ ํตํด์๋ง ์ ๊ทผํ๋๋ก ์บก์ํ ์์น์ ์ ์ฉํ์ต๋๋ค.
๋ฉ๋ด ์ด๋ฆ์ ์ผ์ ํ ๊ธธ์ด๋ก ๋ง์ถ๊ธฐ ์ํ formatName ๋ฉ์๋๋ ๊ตฌํํ๋๋ฐ, ์ด๋ ์ถ๋ ฅ์ ๊น๋ํ๊ฒ ํ๋ ๋ฐ ํฐ ๋์์ด ๋์์ต๋๋ค.
private String formatName(String name) {
int length = 16;
if (name.length() >= length) {
return name;
}
for (int i = name.length(); i < length; i++) {
name += " ";
}
return name;
}์ค์ ํค์ค์คํฌ์ฒ๋ผ ๋ฉ๋ด๋ฅผ ์ ํํ๊ณ ์ฅ๋ฐ๊ตฌ๋์ ๋ด๋ ๊ธฐ๋ฅ์ด ํ์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. Cart ํด๋์ค๋ฅผ ์ถ๊ฐํ์ฌ ์ฌ์ฉ์๊ฐ ์ ํํ ๋ฉ๋ด ํญ๋ชฉ์ ๊ด๋ฆฌํ๊ณ , ์ฃผ๋ฌธ ์ฒ๋ฆฌ์ ์ทจ์ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค.
// Cart ํด๋์ค๋ฅผ ํตํ ์ฅ๋ฐ๊ตฌ๋ ๊ด๋ฆฌ
public class Cart {
private List<CartItem> items;
public void addItem(MenuItem menuItem) {
// ์ฅ๋ฐ๊ตฌ๋์ ์์ดํ
์ถ๊ฐ ๋ก์ง
}
public double calculateTotal() {
// ์ด์ก ๊ณ์ฐ ๋ก์ง
}
public void clearCart() {
// ์ฅ๋ฐ๊ตฌ๋ ๋น์ฐ๊ธฐ
}
}์ฌ์ฉ์ ์ ํ(๊ตญ๊ฐ์ ๊ณต์, ๊ตฐ์ธ, ํ์, ์ผ๋ฐ์ธ)์ ๋ฐ๋ผ ๋ค๋ฅธ ํ ์ธ์จ์ ์ ์ฉํ๊ธฐ ์ํด Enum์ ํ์ฉํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ถ๊ฐ์ ์ธ ์ฌ์ฉ์ ์ ํ์ด ์๊ฒจ๋ ์ฝ๊ฒ ํ์ฅํ ์ ์๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์์ต๋๋ค.
// UserType Enum์ ํตํ ํ ์ธ์จ ๊ด๋ฆฌ
public enum UserType {
VETERAN("๊ตญ๊ฐ์ ๊ณต์", 0.1), // ๊ตญ๊ฐ์ ๊ณต์ 10% ํ ์ธ
SOLDIER("๊ตฐ์ธ", 0.05), // ๊ตฐ์ธ 5% ํ ์ธ
STUDENT("ํ์", 0.03), // ํ์ 3% ํ ์ธ
GENERAL("์ผ๋ฐ์ธ", 0.0); // ์ผ๋ฐ์ธ 0% ํ ์ธ
private String description;
private double discountRate;
UserType(String description, double discountRate) {
this.description = description;
this.discountRate = discountRate;
}
// ํ ์ธ ์ ๋ณด ์ถ๋ ฅ ๋ฐ ์ฌ์ฉ์ ์ ํ ์ ํ ๋ฉ์๋
public static void discountInfo() {
System.out.println("ํ ์ธ ์ ๋ณด๋ฅผ ์ ํํด์ฃผ์ธ์.");
int index = 1;
for (UserType type : values()) {
System.out.printf("%d. %s : %.0f%%\n", index++, type.description, type.discountRate * 100);
}
}
}์ฅ๋ฐ๊ตฌ๋ ๊ด๋ฆฌ, ๋ฉ๋ด ์ถ๋ ฅ, ๊ฐ๊ฒฉ ๊ณ์ฐ ๋ฑ์ ๊ธฐ๋ฅ์ ๋๋ค์ ์คํธ๋ฆผ์ ์ ์ฉํ์ฌ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ํจ์จ์ฑ์ ๋์์ต๋๋ค.
// ์คํธ๋ฆผ์ ํ์ฉํ ์ฅ๋ฐ๊ตฌ๋ ๊ฐ๊ฒฉ ๊ณ์ฐ
public double calculateTotal() {
return cartItems.stream()
.mapToDouble(item -> item.getMenuItem().getPrice() * item.getQuantity())
.sum();
}
// ์คํธ๋ฆผ์ ํ์ฉํ ํน์ ๋ฉ๋ด ์ ๊ฑฐ
public void removeItem(String menuName) {
cartItems = cartItems.stream()
.filter(item -> !item.getMenuItem().getName().equals(menuName))
.collect(Collectors.toList());
}
// ์คํธ๋ฆผ์ ํ์ฉํ ๋ฉ๋ด ์ถ๋ ฅ
IntStream.range(0, menuItems.size())
.forEach(i -> {
MenuItem item = menuItems.get(i);
String formatName = formatName(item.getName());
System.out.println((i + 1) + ". " + formatName + " | W " + item.getPrice() + " | " + item.getDescription());
});- ๋ฒ๊ฑฐ, ์๋ฃ, ๋์ ํธ ๋ฑ ๋ค์ํ ์นดํ ๊ณ ๋ฆฌ์ ๋ฉ๋ด ๊ด๋ฆฌ
- ๊ฐ ๋ฉ๋ด ํญ๋ชฉ์ ์ด๋ฆ, ๊ฐ๊ฒฉ, ์ค๋ช ์ ๋ณด ์ ์ฅ ๋ฐ ์ถ๋ ฅ
- ๊ณ์ธต์ ๋ฉ๋ด ๊ตฌ์กฐ๋ฅผ ํตํ ์ง๊ด์ ์ธ ํ์
- ๋ฉ์ธ ๋ฉ๋ด์ ์นดํ ๊ณ ๋ฆฌ๋ณ ํ์ ๋ฉ๋ด ์ ๊ณต
- ๋ฉ๋ด ์ ํ ๋ฐ ๋ค๋ก๊ฐ๊ธฐ ๊ธฐ๋ฅ
- ์ถ๋ ฅ ํฌ๋งทํ ์ ํตํ ์ ๋๋ UI
- ํด๋์ค ๊ฐ ์ฑ ์ ๋ถ๋ฆฌ๋ก ์ฝ๋ ๊ด๋ฆฌ ์ฉ์ด
- ์บก์ํ๋ฅผ ํตํ ๋ฐ์ดํฐ ๋ณดํธ
- ํ์ฅ์ฑ์ ๊ณ ๋ คํ ๊ตฌ์กฐ ์ค๊ณ
- ์ ํํ ๋ฉ๋ด๋ฅผ ์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ
- ์ฅ๋ฐ๊ตฌ๋ ๋ด์ญ ํ์ธ ๋ฐ ๊ด๋ฆฌ
- ์ฃผ๋ฌธ ์ฒ๋ฆฌ ๋ฐ ๊ฒฐ์ ๊ธฐ๋ฅ
- ์ฅ๋ฐ๊ตฌ๋ ๋น์ฐ๊ธฐ ๋ฐ ์ฃผ๋ฌธ ์ทจ์ ๊ธฐ๋ฅ
- Enum์ ํ์ฉํ ์ฌ์ฉ์ ์ ํ ๊ด๋ฆฌ(๊ตญ๊ฐ์ ๊ณต์, ๊ตฐ์ธ, ํ์, ์ผ๋ฐ์ธ)
- ๊ฐ ์ฌ์ฉ์ ์ ํ๋ณ ๋ค๋ฅธ ํ ์ธ์จ ์ ์ฉ
- ์ฃผ๋ฌธ ์ ์ฌ์ฉ์ ์ ํ ์ ํ ๋ฐ ํ ์ธ๋ ๊ฐ๊ฒฉ ๊ณ์ฐ
- ๋๋ค์ ์คํธ๋ฆผ์ ํ์ฉํ ๊ฐ๊ฒฐํ ์ฝ๋ ์์ฑ
- ์ฅ๋ฐ๊ตฌ๋ ํญ๋ชฉ ํํฐ๋ง ๋ฐ ๊ฐ๊ฒฉ ๊ณ์ฐ์ ์คํธ๋ฆผ API ํ์ฉ
- ๋ฉ๋ด ์ถ๋ ฅ ๋ฐ ํฌ๋งทํ ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ ์ฉ
[ MAIN MENU ]
1. Burgers
2. Drinks
3. Desserts
0. ์ข
๋ฃ | ์ข
๋ฃ
๋ฉ๋ด๋ฅผ ์ ํํ์ธ์: 1
[ BURGERS MENU ]
1. ShackBurger | W 6.9 | ํ ๋งํ , ์์์ถ, ์์์ค๊ฐ ํ ํ๋ ์น์ฆ๋ฒ๊ฑฐ
2. SmokeShack | W 8.9 | ๋ฒ ์ด์ปจ, ์ฒด๋ฆฌ ํํผ์ ์์์ค๊ฐ ํ ํ๋ ์น์ฆ๋ฒ๊ฑฐ
3. Cheeseburger | W 6.9 | ํฌํ
์ดํ ๋ฒ๊ณผ ๋นํํจํฐ, ์น์ฆ๊ฐ ํ ํ๋ ์น์ฆ๋ฒ๊ฑฐ
4. Hamburger | W 5.4 | ๋นํํจํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ผ์ฑ๊ฐ ๋ค์ด๊ฐ ๊ธฐ๋ณธ๋ฒ๊ฑฐ
0. ๋ค๋ก๊ฐ๊ธฐ
๋ฉ๋ด๋ฅผ ์ ํํ์ธ์: 2
์ ํํ ๋ฉ๋ด: SmokeShack | W 8.9 | ๋ฒ ์ด์ปจ, ์ฒด๋ฆฌ ํํผ์ ์์์ค๊ฐ ํ ํ๋ ์น์ฆ๋ฒ๊ฑฐ
"SmokeShack | W 8.9 | ๋ฒ ์ด์ปจ, ์ฒด๋ฆฌ ํํผ์ ์์์ค๊ฐ ํ ํ๋ ์น์ฆ๋ฒ๊ฑฐ"
์ ๋ฉ๋ด๋ฅผ ์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐํ์๊ฒ ์ต๋๊น?
1. ํ์ธ 2. ์ทจ์
1
SmokeShack ์ด ์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐ๋์์ต๋๋ค.
์๋ ๋ฉ๋ดํ์ ๋ณด์๊ณ ๋ฉ๋ด๋ฅผ ๊ณจ๋ผ ์
๋ ฅํด์ฃผ์ธ์.
[ MAIN MENU ]
1. Burgers
2. Drinks
3. Desserts
0. ์ข
๋ฃ | ์ข
๋ฃ
[ ORDER MENU ]
4. Orders | ์ฅ๋ฐ๊ตฌ๋๋ฅผ ํ์ธ ํ ์ฃผ๋ฌธํฉ๋๋ค.
5. Cancel | ์งํ์ค์ธ ์ฃผ๋ฌธ์ ์ทจ์ํฉ๋๋ค.
4
์๋์ ๊ฐ์ด ์ฃผ๋ฌธ ํ์๊ฒ ์ต๋๊น?
[ Orders ]
SmokeShack | W 8.9 | ๋ฒ ์ด์ปจ, ์ฒด๋ฆฌ ํํผ์ ์์์ค๊ฐ ํ ํ๋ ์น์ฆ๋ฒ๊ฑฐ
[ Total ]
W 8.9
1. ์ฃผ๋ฌธ 2. ๋ฉ๋ดํ
1
ํ ์ธ ์ ๋ณด๋ฅผ ์ ํํด์ฃผ์ธ์.
1. ๊ตญ๊ฐ์ ๊ณต์ : 10%
2. ๊ตฐ์ธ : 5%
3. ํ์ : 3%
4. ์ผ๋ฐ : 0%
3
์ฃผ๋ฌธ์ด ์๋ฃ๋์์ต๋๋ค. ๊ธ์ก์ W 8.633 ์
๋๋ค.
๋ฉ๋ด ํญ๋ชฉ์ ์ด๋ฆ ๊ธธ์ด๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ ์ถ๋ ฅ์ด ์ ์ ๋ ฌ๋์ง ์๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด formatName ๋ฉ์๋๋ฅผ ๊ตฌํํ์ต๋๋ค. ์ด ๋ฉ์๋๋ ์ด๋ฆ์ด ์ง์ ๋ ๊ธธ์ด๋ณด๋ค ์งง์ผ๋ฉด ๊ณต๋ฐฑ์ ์ถ๊ฐํด ์ผ์ ํ ๊ธธ์ด๊ฐ ๋๋๋ก ํ์ต๋๋ค.
์ฒ์์๋ ์ฌ์ฉ์๊ฐ ๋ฉ๋ด ๋ฒํธ๊ฐ ์๋ ๋ค๋ฅธ ์ ๋ ฅ์ ํ์ ๋ ํ๋ก๊ทธ๋จ์ด ์ถฉ๋ํ๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๋ ฅ๊ฐ ๊ฒ์ฆ ๋ก์ง์ ์ถ๊ฐํ์ต๋๋ค.
if (choice >= 1 && choice <= menus.size()) {
// ์ ํ๋ ๋ฉ๋ด ์ฒ๋ฆฌ
} else {
System.out.println("๋ฉ๋ด์ ์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.");
}์ฅ๋ฐ๊ตฌ๋์ ์ํ์ด ์๋ ๊ฒฝ์ฐ์๋ง ์ฃผ๋ฌธ ๋ฉ๋ด๋ฅผ ํ์ํด์ผ ํ์ต๋๋ค. ์ด๋ฅผ ์ํด ์ฅ๋ฐ๊ตฌ๋์ ์ํ๋ฅผ ํ์ธํ๋ ๋ก์ง์ ์ถ๊ฐํ๊ณ , ์ฅ๋ฐ๊ตฌ๋๊ฐ ๋น์ด์์ ๋ ์ฃผ๋ฌธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค ํ๋ฉด ์์ธ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํ์ต๋๋ค.
if (cart.isEmpty() && (choice == 4 || choice == 5)) {
System.out.println("์ฅ๋ฐ๊ตฌ๋๊ฐ ๋น์ด ์์ต๋๋ค. ๋ฉ๋ด๋ฅผ ๋จผ์ ์ถ๊ฐํด์ฃผ์ธ์.");
continue;
}๋ํ ์ฃผ๋ฌธ ์๋ฃ ํ ์ฅ๋ฐ๊ตฌ๋๋ฅผ ๋น์ฐ๋ ๊ธฐ๋ฅ๋ ๊ตฌํํ์ต๋๋ค.
์ฒ์์๋ ํ ์ธ์จ์ ํ๋์ฝ๋ฉํ์ผ๋, ํ์ฅ์ฑ๊ณผ ์ ์ง๋ณด์๋ฅผ ๊ณ ๋ คํ์ฌ Enum์ผ๋ก ๋ฆฌํฉํ ๋งํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์ ์ ํ์ ์ถ๊ฐํ๊ฑฐ๋ ํ ์ธ์จ์ ๋ณ๊ฒฝํ ๋ ์ฝ๋ ์ ์ฒด๋ฅผ ์์ ํ์ง ์๊ณ ๋ Enum๋ง ์์ ํ๋ฉด ๋๋๋ก ๊ตฌํํ์ต๋๋ค.
์ฅ๋ฐ๊ตฌ๋ ํญ๋ชฉ ๊ณ์ฐ์ด๋ ํํฐ๋ง ๋ก์ง์ด ๋ณต์กํด์ง๋ฉด์ for ๋ฃจํ์ if ๋ฌธ์ด ์ค์ฒฉ๋์ด ์ฝ๋ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ด๋ฅผ ์คํธ๋ฆผ๊ณผ ๋๋ค ํํ์์ ํ์ฉํ์ฌ ๊ฐ๊ฒฐํ๊ณ ์ฝ๊ธฐ ์ฌ์ด ์ฝ๋๋ก ๊ฐ์ ํ์ต๋๋ค.
ํ๋ก์ ํธ๋ ๊ธฐ๋ฅ๋ณ๋ก ํจํค์ง๋ฅผ ๋๋์ด ๋จ๊ณ๋ณ๋ก ์งํํ์ต๋๋ค:
src/com/example/kiosk/
โโโ level1/ - ๊ธฐ๋ณธ ์ฝ์ ๋ฉ๋ด ๊ตฌํ
โโโ level2/ - MenuItem ํด๋์ค ๋์
โโโ level3/ - Kiosk ํด๋์ค๋ก ์ฑ
์ ๋ถ๋ฆฌ
โโโ level4/ - ๊ณ์ธต์ ๋ฉ๋ด ๊ตฌ์กฐ ์ถ๊ฐ
โโโ level5/ - ์บก์ํ ๊ฐํ ๋ฐ ์ฝ๋ ๊ตฌ์กฐ ๊ฐ์
โโโ level6/ - ์ฅ๋ฐ๊ตฌ๋ ๋ฐ ์ฃผ๋ฌธ ์์คํ
๊ตฌํ
โโโ level7/ - Enum, ๋๋ค & ์คํธ๋ฆผ์ ํ์ฉํ ์ฃผ๋ฌธ ๋ฐ ์ฅ๋ฐ๊ตฌ๋ ๊ด๋ฆฌ
- Level 1: ๋จ์ ์ฝ์ ์ถ๋ ฅ๊ณผ ์ฌ์ฉ์ ์ ๋ ฅ๋ง ์ฒ๋ฆฌ
- Level 2: MenuItem ํด๋์ค๋ก ๋ฉ๋ด ์ ๋ณด ์บก์ํ
- Level 3: Kiosk ํด๋์ค๋ก ํค์ค์คํฌ ๊ด๋ จ ๋ก์ง ๋ถ๋ฆฌ
- Level 4: ์นดํ ๊ณ ๋ฆฌ ๋ณ ๋ฉ๋ด ๊ตฌ์กฐ ๊ตฌํ
- Level 5: ์ ๊ทผ ์ ์ด์์ getter/setter ์ ์ฉํด ์บก์ํ ๊ฐํ
- Level 6: ์ฅ๋ฐ๊ตฌ๋ ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฐ ์ฃผ๋ฌธ ํ๋ก์ธ์ค ๊ตฌํ
- Level 7: Enum์ ํ์ฉํ ์ฌ์ฉ์ ์ ํ๋ณ ํ ์ธ์จ ๊ด๋ฆฌ, ๋๋ค์ ์คํธ๋ฆผ์ ํ์ฉํ ์ฝ๋ ๊ฐ์
- ํ๋ก์ ํธ๋ฅผ ํด๋ก ํฉ๋๋ค.
- IDE์์ ํ๋ก์ ํธ๋ฅผ ์ฝ๋๋ค.
src/com/example/kiosk/level7/Main.javaํ์ผ์ ์คํํฉ๋๋ค.- ์ฝ์ ์ฐฝ์์ ํค์ค์คํฌ๋ฅผ ์กฐ์ํฉ๋๋ค.