์๊ฐํด๋ณด๊ธฐ
Step2 ์๊ตฌ์ฌํญ์ ์ฝ์ด๋ณด๋, ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋๋ผ ๊ธฐ์กด Step1 ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ์๋ค๊ณ ๋๊ผ๋ค.
Main ํด๋์ค๊ฐ ๋๋ฌด ๋ง์ ์ญํ ์ ๋ด๋นํ๊ณ ์์๊ณ , ์ ๋ ฅ, ์ถ๋ ฅ, ๋ฐ๋ณต, ์ข ๋ฃ ํ๋ฆ์ด ๋ชจ๋ main ๋ฉ์๋์ ๋ชฐ๋ ค ์์๋ค.
๊ทธ๋์ Step2์์๋ ํด๋์ค๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ๋ชฉํ์๋ค.
์ค๊ณ
Step2์์๋ ์ญํ ๊ณผ ์ฑ ์์ ๋ค์๊ณผ ๊ฐ์ด ๋๋์๋ค.
Main ํด๋์ค
- ํ๋ก๊ทธ๋จ ์์ ์ง์
- ์ํ ๋ฐ์ดํฐ ์์ฑ
- CommerceSystem ๊ฐ์ฒด ์์ฑ ๋ฐ start() ํธ์ถ
CommerceSystem ํด๋์ค
- ๋ฉ๋ด ์ถ๋ ฅ
- ์ฌ์ฉ์ ์ ๋ ฅ ์ฒ๋ฆฌ
- ๋ฐ๋ณต ๋ฐ ์ข ๋ฃ ์ ์ด
- ์ํ ์ ํ ๋ก์ง ์ฒ๋ฆฌ
CommerceSystem ํด๋์ค
Step1์์๋ main ๋ฉ์๋ ์์ while๋ฌธ๊ณผ scanner, ๋ฉ๋ด ์ถ๋ ฅ๊ณผ ์
๋ ฅ ๋ถ๊ธฐ ๋ก์ง์ด ๋ชจ๋ ๋ค์ด ์์๋ค.
Step2์์๋ ์ด ํ๋ฆ์ ํ๋์ ํด๋์ค๋ก ๋ฌถ์ด ํ๋ก๊ทธ๋จ ์คํ ํ๋ฆ์ ์ฑ
์์ง๋ ๊ฐ์ฒด๋ก ๋ถ๋ฆฌํ๋ค.
ํ๋ ์ค๊ณ
- List<Product>: Main์์ ๋ง๋ ์ํ ๋ฆฌ์คํธ๋ฅผ ์ ๋ฌ๋ฐ์ ๊ด๋ฆฌ
- Scanner: ์ฌ์ฉ์ ์ ๋ ฅ ์ฒ๋ฆฌ
์์ฑ์
public CommerceSystem(List<Product> products) {
this.products = products;
}
Main์์ ๋ง๋ ์ํ ๋ฆฌ์คํธ๋ฅผ ์์ฑ์๋ฅผ ํตํด CommerceSystem์ ์ ๋ฌํ๋๋ก ์ค๊ณํ๋ค.
์ด๋ฅผ ํตํด CommerceSystem์ ์ํ์ด ์ด๋์ ๋ง๋ค์ด์ก๋์ง๋ ์ ํ์๊ฐ ์๊ณ ๊ทธ์ ์ ๋ฌ๋ฐ์ ์ํ ๋ชฉ๋ก์ ์ฌ์ฉํ๋ ์ญํ ๋ง ํ๋ค.
start() ๋ฉ์๋
start() ๋ฉ์๋๋ ํ๋ก๊ทธ๋จ์ ์์์ ์ญํ ์ ํ๋ค.
- ๋ฉ๋ด ์ถ๋ ฅ
- ์ ๋ ฅ ์ฒ๋ฆฌ
- ์ข
๋ฃ ์กฐ๊ฑด ํ๋จ
์ ๋ฐ๋ณตํ๋ฉฐ 0์ด ์ ๋ ฅ๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํ๋๋ก ๊ตฌํํ๋ค.
CommerceSystem.java ์ ์ฒด์ฝ๋
package kr.spartaclub.com.example.commerce.step2;
import kr.spartaclub.com.example.commerce.Product;
import java.util.List;
import java.util.Scanner;
public class CommerceSystem {
private final List<Product> products;
private final Scanner sc = new Scanner(System.in);
// ์์ฑ์: Main์์ ๋ง๋ ์ํ ๋ฆฌ์คํธ๋ฅผ ์ ๋ฌ๋ฐ์
public CommerceSystem(List<Product> products) {
this.products = products;
}
// ํ๋ก๊ทธ๋จ ์์ ๋ฉ์๋
public void start() {
while (true) {
printMenu();
int input = sc.nextInt();
if (input == 0) {
System.out.println();
System.out.println("์ปค๋จธ์ค ํ๋ซํผ์ ์ข
๋ฃํฉ๋๋ค.");
break;
}
handleInput(input);
}
}
// ๋ฉ๋ด ์ถ๋ ฅ
private void printMenu() {
System.out.println("[ ์ค์๊ฐ ์ปค๋จธ์ค ํ๋ซํผ - ์ ์์ ํ ]");
for (int i = 0; i < products.size(); i++) {
Product p = products.get(i);
System.out.printf("%d. %-12s | %,d์ | %s%n",
i + 1, p.getName(), p.getPrice(), p.getDescription());
}
System.out.println("0. ์ข
๋ฃ | ํ๋ก๊ทธ๋จ ์ข
๋ฃ");
System.out.print("> ");
}
// ์
๋ ฅ๊ฐ ์ฒ๋ฆฌ
private void handleInput(int input) {
if (input >= 1 && input <= products.size()) {
Product selected = products.get(input - 1);
System.out.println();
System.out.printf(
"์ ํํ ์ํ: %s | %,d์ | %s | ์ฌ๊ณ : %d๊ฐ%n%n",
selected.getName(),
selected.getPrice(),
selected.getDescription(),
selected.getStock()
);
} else {
System.out.println();
System.out.println("์๋ชป๋ ์
๋ ฅ์
๋๋ค. ๋ค์ ์ ํํด์ฃผ์ธ์.\n");
}
}
}
Main ํด๋์ค ๋ณํ
step2 ์ดํ Main ํด๋์ค๋ ํจ์ฌ ๋จ์ํด์ก๋ค.
while๋ฌธ, scanner, ์
์ถ๋ ฅ ๋ก์ง์ด ๋ค ์ ๊ฑฐ๋์๋ค.
Main์ ์ด์ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ ์ญํ ๋ง ๋ด๋นํ๋ค.
CommerceSystem system = new CommerceSystem(products);
system.start();
Main.java ์ ์ฒด์ฝ๋
package kr.spartaclub.com.example.commerce.step2;
import kr.spartaclub.com.example.commerce.Product;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Product> products = new ArrayList<>();
products.add(new Product("Galaxy S25", 1200000, "์ต์ ์๋๋ก์ด๋ ์ค๋งํธํฐ", 50));
products.add(new Product("iPhone 16", 1350000, "Apple์ ์ต์ ์ค๋งํธํฐ", 30));
products.add(new Product("MacBook Pro", 2400000, "M3 ์นฉ์
์ด ํ์ฌ๋ ๋
ธํธ๋ถ", 15));
products.add(new Product("AirPods Pro", 350000, "๋
ธ์ด์ฆ ์บ์ฌ๋ง ๋ฌด์ ์ด์ดํฐ", 50));
// Step2 ํต์ฌ
CommerceSystem system = new CommerceSystem(products);
system.start();
}
}
๊ฒฐ๊ณผ

Step1๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋๋ฉฐ,
๋ด๋ถ ๊ตฌ์กฐ๋ง ๊ฐ์ ๋์์์ ํ์ธํ ์ ์์๋ค.
'๐ฅ ๋ด์ผ๋ฐฐ์์บ ํ > ๐ ๊ณผ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [๋ด์ผ๋ฐฐ์์บ ํ Spring_3๊ธฐ] CH2 ์ปค๋จธ์ค ๊ณผ์ Step4 (0) | 2026.01.28 |
|---|---|
| [๋ด์ผ๋ฐฐ์์บ ํ Spring_3๊ธฐ] CH2 ์ปค๋จธ์ค ๊ณผ์ Step3 (0) | 2026.01.28 |
| [๋ด์ผ๋ฐฐ์์บ ํ Spring_3๊ธฐ] CH2 ์ปค๋จธ์ค ๊ณผ์ Step1 (0) | 2026.01.28 |
| [๋ด์ผ๋ฐฐ์์บ ํ Spring_3๊ธฐ] CH2 ๊ณ์ฐ๊ธฐ๊ณผ์ Step3 (0) | 2026.01.27 |
| [๋ด์ผ๋ฐฐ์์บ ํ Spring_3๊ธฐ] CH2 ๊ณ์ฐ๊ธฐ ๊ณผ์ Step2 (0) | 2026.01.27 |