๐Ÿญ Projects_

Project#9 _ OTT Program (์œ ํšจ์„ฑ ๊ฒ€์‚ฌ / ์˜ˆ์™ธ ์ฒ˜๋ฆฌ)

CodeLoge 2025. 2. 4. 21:34

#1 ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์˜ ๋ชฉ์ 

: ์‚ฌ์šฉ์ž๊ฐ€ ์ž˜๋ชป๋œ ๊ฐ’์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋„๋ก ์œ ๋„ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์ด ์ •์ƒ์ ์œผ๋กœ ์ถœ๋ ฅ๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ

 

#2 Project์— ํ™œ์šฉํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

public int inputNum() {

int num;

while (true) {

try {

System.out.print("๋ฒˆํ˜ธ๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š” >> ");

num = sc.nextInt();

sc.nextLine(); // ๋ฒ„ํผ ๋น„์šฐ๊ธฐ

if (num >= 0) {

return num;

} else {

System.out.println("โŒ ์Œ์ˆ˜๋Š” ์ž…๋ ฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.");

}

} catch (Exception e) {

sc.nextLine(); // ์ž…๋ ฅ ๋ฒ„ํผ ๋น„์šฐ๊ธฐ

System.out.println("โŒ ์ˆซ์ž๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”. >> ");

}

}

}

 

๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๋ฉ”์„œ๋“œ

 : ์‚ฌ์šฉ์ž๊ฐ€ ์Œ์ˆ˜์˜ ๊ฐ’( - )์ด๋‚˜ ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž ๋˜๋Š” ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ, ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์„ ๋‹ค์‹œ ์ž…๋ ฅํ•˜๋„๋ก ํ•จ

 

// ID/PW ์ž…๋ ฅ ๋ฉ”์„œ๋“œ

// ID >> ๊ณต๋ฐฑ ์ฒดํฌ

public String inputId() {

String id;

while (true) {

System.out.print("์•„์ด๋””๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” >> ");

id = sc.nextLine().trim(); // ๊ณต๋ฐฑ ์ œ๊ฑฐ

if (id.isEmpty()) {

System.out.println("โŒ ์•„์ด๋””๋Š” ๊ณต๋ฐฑ์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!");

} else if (id.contains(" ")) {

System.out.println("โŒ ์•„์ด๋””์— ๋„์–ด์“ฐ๊ธฐ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!");

} else {

return id;

}

}

}

 

// PW >> ๊ณต๋ฐฑ ์ฒดํฌ

public String inputPw() {

String pw;

while (true) {

System.out.print("๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” >> ");

pw = sc.nextLine().trim();

if (pw.isEmpty()) {

System.out.println("โŒ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ๊ณต๋ฐฑ์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!");

} else if (pw.contains(" ")) {

System.out.println("โŒ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ๋„์–ด์“ฐ๊ธฐ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!");

} else {

return pw;

}

}

}

 

ID, PW๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋ฉ”์„œ๋“œ

: ๊ณต๋ฐฑ์œผ๋กœ ๋‘” ์ƒํƒœ์—์„œ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ๋„์–ด์“ฐ๊ธฐ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ทธ๋Œ€๋กœ ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ฌ๋ฐ”๋ฅธ ID์™€ PW๋ฅผ ์ž…๋ ฅ๋ฐ›๋„๋ก ํ•จ

 

public boolean printCheckDelete() {

while (true) {

System.out.print("์ •๋ง ํ•ด๋‹น ์˜์ƒ์„ ์‚ญ์ œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? (Y/N) >> ");

String answer = sc.nextLine().trim().toUpperCase();

if (answer.equals("Y"))

return true;

if (answer.equals("N"))

return false;

System.out.println("โŒ Y ๋˜๋Š” N์œผ๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.");

}

}

 

๋ฌธ์ž์—ด ์ž…๋ ฅ ํ™•์ธ ๋ฉ”์„œ๋“œ

๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๊ณ  ์ง€์ •ํ•œ ๋ฌธ์ž์—ด์„ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ, ์žฌ์ž…๋ ฅ ํ•˜๋„๋ก ํ•˜๋Š” ๋ฉ”์„œ๋“œ

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์„ ๋ฌด์กฐ๊ฑด ๋Œ€๋ฌธ์ž๋กœ ์ž…๋ ฅ๋˜๊ฒŒ ํ•˜๋Š” toUpperCase๋ฅผ ํ™œ์šฉํ•œ ํ›„, if๋ฌธ์— Y, N์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐ’์„ ํ™•์ธ ๋ฐ›๋„๋ก ํ•จ

 

public int addNewAd() {

System.out.println("\n======== ๊ด‘๊ณ  ์˜์ƒ ๋“ฑ๋ก ========");

while (true) {

try {

System.out.print("๊ด‘๊ณ ๋กœ ๋“ฑ๋กํ•  ์˜์ƒ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” >> ");

return Integer.parseInt(sc.nextLine());

} catch (NumberFormatException e) {

System.out.println("โŒ ์˜ฌ๋ฐ”๋ฅธ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.");

}

}

}

 

์ˆซ์ž๋งŒ ์ž…๋ ฅํ•˜๋„๋ก ํ•˜๋Š” ์˜ˆ์™ธ์ฒ˜๋ฆฌ

๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜๋”๋ผ๋„ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜๋Š” Integer.parseInt ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ

๋งŒ์•ฝ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ’์ด ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๊ฐ’์ด ๋‚˜์˜จ๋‹ค๋ฉด ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์—ฌ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋„๋ก ํ•˜๋Š” ๋ฉ”์„œ๋“œ

 

public void showMovieList(ArrayList<MovieDTO> movies) {

System.out.println("\n======== ์˜ํ™” ๋ชฉ๋ก ========");

if (movies.isEmpty()) {

System.out.println("๋“ฑ๋ก๋œ ์˜ํ™”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.");

} else {

System.out.println("[๋ฒˆํ˜ธ] ์ œ๋ชฉ ํ‰์  ");

System.out.println("----------------------------");

for (MovieDTO movie : movies) {

System.out.printf("[%d] %-12s %.1f \n", movie.getMovieId(), movie.getTitle(), movie.getRating());

}

}

System.out.println("==========================");

}

 

๋ฐฐ์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฉ”์„œ๋“œ

๋งŒ์•ฝ ๋ฐฐ์—ด์ด ๋น„์–ด ์žˆ๋‹ค๋ฉด, if๋ฌธ์˜ isEmpty() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ๋‹ค๊ณ  ์ถœ๋ ฅ,

๋งŒ์•ฝ ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด, ์ •์ƒ์ ์œผ๋กœ ๋ฐฐ์—ด ์ถœ๋ ฅ