"์•ˆ๋…•, ์•„๋ฏธ๊ณ . ์˜ค๋Š˜์€ Bilaabo๊ฐ€ ์žฌ๊ท€์— ๋Œ€ํ•ด ์•Œ๋ ค์ค„๊ฑฐ์•ผ."

์žฌ๊ท€ - 1

์•„์‹œ๋‹ค์‹œํ”ผ Java์—์„œ ์ผ๋ถ€ ๋ฉ”์„œ๋“œ๋Š” ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ํŠน์ • ์ธ์ˆ˜๊ฐ€ ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌ๋˜์ง€๋งŒ ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋ฉ”์„œ๋“œ์˜ ๋กœ์ปฌ ๋ณ€์ˆ˜๋Š” ํŠน์ • ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

"์–ด ํ—ˆ."

"๊ทธ๋ฆฌ๊ณ  ์•„์‹œ๋‹ค์‹œํ”ผ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ์˜ ๋‚ด๋ถ€ ๋ณ€์ˆ˜๋Š” ์„œ๋กœ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค."

"์–ด ํ—ˆ."

"๋ฉ”์„œ๋“œ๊ฐ€ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ์ƒํ™ฉ์„ ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. ์ด๋ฅผ ์žฌ๊ท€๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค."

์˜ˆ
public static void main(String[] args)
{
 countDown(10);
}

public static void countDown(int x)
{
 if (x <= 0)
  System.out.println("Boom!");
 else
 {
  System.out.println(x);
  countDown(x - 1);
 }
}
ํ™”๋ฉด ์ถœ๋ ฅ:
10
9
8
7
6
5
4
3
2
1
Boom!

"๋ฉ”์„œ๋“œ๊ฐ€ ์ฝ”๋“œ์—์„œ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ์†”์งํžˆ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."

"์Œ, ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๊ฐ™์Šต๋‹ˆ๋‹ค."

"์•„๋‹ˆ์š”, ์ €๋Š” ๋ณ€์ˆ˜์— ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ๋ฌป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฐ’์€ ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ๋ฉ”์„œ๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ข…๋ฃŒํ•ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋ชจ๋“  ๊ฒƒ์„ ํ•œ ๋ฒˆ์— ์ข…๋ฃŒํ•ฉ๋‹ˆ๊นŒ?"

"๋‹คํ–‰์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ํ›จ์”ฌ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ณฑํ•ด์กŒ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋ฉด ์œ ์‚ฌํ•œ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค."

์žฌ๊ท€ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹ค์ œ๋กœ ์ผ์–ด๋‚˜๋Š” ์ผ
public static void main(String[] args)
{
 countDown(10);
}

public static void countDown(int x)
{
 if (x <= 0)
  System.out.println("Boom!");
 else
 {
  System.out.println(x);
  countDown(x - 1);
 }
}
public static void main(String[] args)
{
 countDown1(10);
}

public static void countDown1(int x)
{
 if (x <= 0)
  System.out.println("Boom!");
 else
 {
  System.out.println(x);
  countDown2(x - 1);
 }
}
public static void countDown2(int x)
{
 if (x <= 0)
  System.out.println("Boom!");
 else
 {
  System.out.println(x);
  countDown3(x - 1);
 }
}
public static void countDown3(int x)
{
 if (x <= 0)
  System.out.println("Boom!");
 else
 {
  System.out.println(x);
  countDown4(x - 1);
 }
}

public static void countDown4(int x)
{
 if (x <= 0)
  System.out.println("Boom!");
 else
 {
  System.out.println(x);
  countDown5(x - 1);
 }
}
ํ™”๋ฉด ์ถœ๋ ฅ: ํ™”๋ฉด ์ถœ๋ ฅ:
3
2
1
Boom!
3
2
1
Boom!

"์ฆ‰, ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค(์‹ฌ์ง€์–ด ์ž์ฒด์ ์œผ๋กœ๋„) ์ด ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ƒˆ ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ณต์œ  ๋ณ€์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค."

"ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ ๊ฐ’์„ ๊ฐ€์ง„ ๋ฉ”์„œ๋“œ ์ธ์ˆ˜์˜ ๋˜ ๋‹ค๋ฅธ ๋ณต์‚ฌ๋ณธ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฉ”์„œ๋“œ๋กœ ๋Œ์•„๊ฐ€๋ฉด ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ๊ฑฐ๊ธฐ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์žฌ๊ท€ ์ค‘์— ์‹ค์ œ๋กœ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ์™€ ๊ฐ™์€ ์ฝ”๋“œ! "

"์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋ฐฉ๋ฒ•์„ ์ข…๋ฃŒํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด?"

"์ข‹์•„์š”. ์˜ˆ๋Š” ์ฒœ ๋‹จ์–ด์˜ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. "์—ฌ๊ธฐ์— ๊ท€ํ•˜์˜ ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค."

์žฌ๊ท€ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์žฌ๊ท€ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
public static void main(String[] args)
{
 print(3);
}

public static void print(int x)
{
 if (x <= 0)
  System.out.println("Boom!");
 else
 {
  System.out.println(x);
  print(x - 1);
  System.out.println(x);
 }
}
public static void main(String[] args)
{
 print1(3);
}

public static void print1(int x)
{
 if (x <= 0)
  System.out.println("Boom!");
 else
 {
  System.out.println(x);
  print2(x - 1);
  System.out.println(x);
 }
}

public static void print2(int x)
{
 if (x <= 0)
  System.out.println("Boom!");
 else
 {
  System.out.println(x);
  print3(x - 1);
  System.out.println(x);
 }
}

โ€ฆ
ํ™”๋ฉด ์ถœ๋ ฅ: ํ™”๋ฉด ์ถœ๋ ฅ:
3
2
1
Boom!
1
2
3
3
2
1
Boom!
1
2
3

"์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ดํ•ดํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์™œ ์žฌ๊ท€๊ฐ€ ํ•„์š”ํ•œ๊ฐ€์š”?"

"์›๋ž˜ ์ž‘์—…๊ณผ ๋™์ผํ•œ ๋ณ„๋„์˜ ํ•˜์œ„ ์ž‘์—…์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ์•„์ฃผ ๋งŽ์€ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด XML ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ โ€‹โ€‹์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์š”์†Œ๋Š” ์—ฌ๋Ÿฌ ์ž์‹ ์š”์†Œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž์‹ ์˜ ์ž์‹ ์š”์†Œ."

"๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์™€ ๋ชจ๋“  ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ชจ๋“  ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ธ์ˆ˜: ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ."

"์˜ˆ๋ฅผ ๋“ค์–ด:"

๋””๋ ‰ํ† ๋ฆฌ ๋ฐ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ ํ‘œ์‹œ
public static void main(String[] args)
{
 printAllFiles(new File("c:/windows/"));
}

public static void printAllFiles(File dir)
{
 for (File file : dir.listFiles())
 {
  if (file.isDirectory())
   printAllFiles(file);
  else
   System.out.println(file.getAbsolutePath());
 }
}

"8ํ–‰ โ€“ dir ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ(๋ฐ ๋””๋ ‰ํ† ๋ฆฌ) ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค."

"10-11ํ–‰ โ€“ ํŒŒ์ผ์ด ์‹ค์ œ๋กœ ๋””๋ ‰ํ† ๋ฆฌ์ธ ๊ฒฝ์šฐ printAllFiles๋ฅผ ๋‹ค์‹œ ํ˜ธ์ถœ ํ•˜์ง€๋งŒ ์ด๋ฒˆ์—๋Š” ๋‹ค๋ฅธ ์ธ์ˆ˜์ธ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค."

"13ํ–‰ โ€“ ํ˜„์žฌ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค."

"์•Œ์•˜์–ด. ์ดํ•ดํ•œ ๊ฒƒ ๊ฐ™์•„. ๊ณ ๋งˆ์›Œ, Bilaabo."