À̸íÇå °æ¿µ ½ºÄð
HOME | BUSINESS | TECH | CULTURE | FORUM | LIST | @emhdt  
[ÆÞ] ÆÞÀÇ ±¸¹®: ·çÇÁ¿Í ·çÇÁ Á¶Àý
·çÇÁ¿Í ·çÇÁ Å»Ãâ
À̸íÇå / 2003-1-17 /

ÀÌ ±ÛÀº ·¡¸® ¿ù ¾¾°¡ Á÷Á¢ ¾´ ÆÞÀÇ ±³°ú¼­, "Programming Perl"(ij¸ÖºÏ) 4Àå, "Statement and Declaration" À» ¹ÙÅÁÀ¸·Î ÆÞÀÇ ·çÇÁ ¹× °ü·Ã ±¸¹®À» Á¤¸®ÇÑ °ÍÀÔ´Ï´Ù.

´Ü¹®(Simple Statements)

´Ü¹®, º¹¹®.
Èí»ç ¿µ¾î ¹®¹ýÃ¥¿¡¼­³ª ºÃÀ½Á÷ÇÑ ´Ü¾îµéÀÔ´Ï´Ù.
´Ü¹®Àº ¼¼¹ÌÄÝ·Ð;À¸·Î ³¡³ª¸ç ±× ¹®Àå ÀÚü°¡ Á÷Á¢ ¾î¶² ±â´ÉÀ» Çϴ ǥÇö(expression)ÀÔ´Ï´Ù. ¿¹¸¦ µé¸é,


$a++;
$string = 'abc';
print "$myname is cool !";

ÀÌ·¯ÇÑ ´Ü¹®Àº ±× µÚ¿¡ modifier°¡ ºÙ¿©¼­ Àǹ̸¦ ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. ´Ü¹® µÚ¿¡ ºÙÀÏ ¼ö ÀÖ´Â modifier·Î´Â,


if EXPR
unless EXPR
while EXPR
until EXPR
foreach LIST
for LIST

ÀÔ´Ï´Ù. EXPR´Â expressionÀÇ ¾àÀÚÀÔ´Ï´Ù. ¿¹¸¦ µé¾î º¾½Ã´Ù.


++$num while <MYFILE>;
push @even, $number if ($number % 2 == 0);
print $_ , "\n" foreach (@items);

¸ðµÎ ´Ü¹®ÀÔ´Ï´Ù. ±×·±µ¥, Àß º¸¼¼¿ä, µÎ ¹øÂ°, ¼¼ ¹øÂ° ÄÚµå´Â ÀÌ·¸°Ô Ç®¾î ¾µ ¼öµµ ÀÖÀ» °ÍÀÔ´Ï´Ù.


if ($number % 2 == 0) {
	push @even, $number;
}

foreach (@items) {
	print $_ , "\n";
}

¹Ù·Î ÀÌ·± ÇüŰ¡ C³ª ÀÚ¹Ù µîÀÇ ÀϹÝÀûÀÎ ¾ð¾î¿¡¼­ ÁÖ·Î ¾²´Â ¹æ½ÄÀÔ´Ï´Ù.(±×¸®°í À̰ÍÀÌ µÚ¿¡ ³ª¿Ã º¹¹®ÀÇ ÇüÅÂÀÔ´Ï´Ù.) ±×·±µ¥ ÆÞÀº À̰ÍÀ» ÇÑ ÁÙ·Î ÁÙÀÏ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù. ¶Ç ±×·¸°Ô ¾²´Â °ÍÀÌ ÆÞ ½ºÅ¸ÀÏÀÔ´Ï´Ù. ¾î¼øÀ» ¹Ù²Ù¸ç °£°áÇÏ°Ô ¾²´Â °ÍÀÌÁÒ. print something foreach(things)¿Í °°Àº ÆÞ ½ºÅ¸ÀÏ¿¡ »¡¸® Àͼ÷ÇØÁö´Â °Ô ÄÚµùÀ» ÇÏ´Â µ¥³ª ´Ù¸¥ »ç¶÷ÀÇ Äڵ带 Àд µ¥ Å« µµ¿òÀÌ µË´Ï´Ù.

À§ÀÇ ¿¹¸¦ ºÎ¿¬¼³¸íÇÏÀÚ¸é, ù ¹øÂ° ÄÚµå´Â MYFILEÀ̶ó´Â ÆÄÀÏÇÚµé·Î ¿¬ ÆÄÀÏÀÌ ¸î ÁÙÀÎÁö¸¦ ¼¼´Â ÄÚµåÀÔ´Ï´Ù. µÎ ¹øÂ° ¿¹´Â $number¸¦ 2·Î ³ª´²¼­ ³ª¸ÓÁö°¡ 0À̸é @evenÀ̶ó´Â ¹è¿­¿¡ $number¸¦ ³Ö´Â °ÍÀÔ´Ï´Ù. ¼¼ ¹øÂ° ¿¹´Â @items¶ó´Â ¹è¿­¿¡ ´ã±ä °¢ ¿ø¼ÒµéÀ» ÁÙÀ» ¹Ù²ã °¡¸ç Ãâ·ÂÇÏ´Â ÄÚµåÀÔ´Ï´Ù.

´Ù¸¥ ¿¹¸¦ Á¶±Ý ´õ º¾½Ã´Ù.


s/perl/java/ for @resumes;
$count-- until $fire;

ù ¹øÂ° ÄÚµå´Â @resumes¶ó´Â ¹è¿­¿¡ ´ã±ä Ç׸ñ °¢°¢¿¡ ´ëÇØ¼­ "perl"À» "java"·Î ¹Ù²ã ÁÖ´Â ÄÚµåÀÔ´Ï´Ù. s/somepattern/replacement/´Â ·¹±Ö¶ó ÀͽºÇÁ·¹¼Ç(regular expression)¿¡¼­ ÀÚ¼¼ÇÏ°Ô ´Ù·ê °ÍÀÔ´Ï´Ù¸¸ ¿ì¼± somepatternÀ» replacement·Î ¹Ù²Ù´Â ±â´ÉÀ» ÇÏ´Â °ÍÀ¸·Î ¾Ë¸é µË´Ï´Ù. µÎ ¹øÂ° ÄÚµå´Â $fire°¡ ÂüÀÌ µÉ ¶§±îÁö $count °ªÀ» Çϳª¾¿ ÁÙ¿© °¡´Â ÄÚµåÀÔ´Ï´Ù. ù ¹øÂ° ÄÚµå´Â ¼öÇàÇÏ´Â ±â´É¿¡ ºñÇØ Äڵ尡 ±²ÀåÈ÷ °£¼ÒÇØ º¸ÀÌÁÒ? À§¿Í °°Àº °ÍÀÌ ÆÞ ½ºÅ¸ÀÏÀÔ´Ï´Ù. for ·çÇÁ¿¡ ´ëÇØ¼­´Â ¹Ø¿¡¼­ ¼³¸íÀÌ ³ª¿À¹Ç·Î ´«¿¡ ½±°Ô µé¾î¿ÀÁö ¾Ê´õ¶óµµ ¿ì¼±Àº ³Ñ¾î °¡¼¼¿ä.

ÀÌÁ¦ º¹¹®ÀÔ´Ï´Ù.

º¹¹®(Compound Statements)

Áß°ýÈ£ {}·Î ¹­ÀÎ °ÍÀ» BLOCKÀ̶ó°í ÇÕ´Ï´Ù. Áß°ýÈ£´Â º¯¼öÀÇ scopeÀ» Á¤ÇÏ´Â ¿ªÇÒµµ ÇÕ´Ï´Ù. ÆÞÀÇ º¹¹®À̶ó´Â °ÍÀº ÀÌ·± BLOCKÀÌ ÀÖ´Â ±¸¹®À» ¶æÇÕ´Ï´Ù. ´ÙÀ½°ú °°Àº °ÍÀÔ´Ï´Ù.


if (EXPR) BLOCK
if (EXPR) BLOCK else BLOCK
if (EXPR) BLOCK elsif BLOCK ... else BLOCK

unless (EXPR) BLOCK
unless (EXPR) BLOCK else BLOCK
unless (EXPR) BLOCK elsif BLOCK ... else BLOCK

LABLE while (EXPR) BLOCK
LABLE while (EXPR) BLOCK continue BLOCK
LABLE until (EXPR) BLOCK
LABLE until (EXPR) BLOCK continue BLOCK

LABLE for (EXPR; EXPR; EXPR) BLOCK
LABLE foreach VAR (LIST) BLOCK
LABLE foreach VAR (LIST) BLOCK continue BLOCK

LABLE BLOCK
LABLE BLOCK continue BLOCK

º¹ÀâÇØ º¸ÀÌ´õ¶óµµ ½Å°æ¾²Áö ¸»°í °¡º±°Ô ÀÐ¾î º¸¼¼¿ä.
¿ì¼± ¸ðµÎ ´Ù BLOCK, Áï { }·Î ¹­ÀÎ ºÎºÐÀÌ ÀÖ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. º¹¹®ÀÔ´Ï´Ù.
LABLEÀº ¾î¶² BLOCKÀ» ¹®ÀÚ ±×´ë·Î 'Ç¥½ÃÇÏ´Â' ±â´ÉÀ» ÇÏ´Â °ÍÀ¸·Î, À־ µÇ°í ¾ø¾îµµ µË´Ï´Ù.

ÇϳªÇϳª º¾½Ã´Ù. if³ª unlessÀÇ °æ¿ì´Â EXPRÀ̶ó´Â ½ºÄÉÀÏ¶ó ±¸¹®ÀÌ ³ª¿À°í { }ÀÌ ³ª¿É´Ï´Ù¸¸ foreachÀÇ °æ¿ì´Â LIST°¡ µû¶ó ³ª¿ÀÁÒ? ÀÌ·± °ÍÀ» ÄÁÅØ½ºÆ®¶ó ÇÑ´Ù°í Çß½À´Ï´Ù. foreach ¾ÕÀÇ VAR(º¯¼ö) ºÎºÐÀº »ý·«ÇÒ ¼ö ÀÖ´Ù´Â ¾ê±âµµ ÀÌ¹Ì Çß½À´Ï´Ù. »ý·«ÇÏ´Â °æ¿ì, ÆÞÀÇ µðÆúÆ® º¯¼öÀÎ $_¿¡ foreachÀÇ ¾ÆÀÌÅÛ °¢°¢ÀÌ ´ã±é´Ï´Ù. ¸Ç ¸¶Áö¸· 2°³´Â for, if, until µîÀÌ ³ª¿ÀÁö ¾Ê´Â, ¼ø¼öÇÑ { } ºí¶ôÀÔ´Ï´Ù. ÀÌ·± °ÍÀ» ¹ú°Å¹þÀº ºí¶ô(bare block)À̶ó°í ÇÕ´Ï´Ù. ¿ª½Ã ÀÚ¼¼ÇÑ °ÍÀº Â÷Â÷ ³ª¿À¹Ç·Î ¿ì¼± ÇüŸ¸ º¸¼¼¿ä.

Àç¹ÌÀÖ´Â Á¡Àº, À§ÀÇ if ¹®À̳ª until ¹®, for, foreach ¹®µé ¸ðµÎ ¾ÕÀÇ ´Ü¹®¿¡¼­ »ìÆìº» °Íó·³ ÇÑ ÁٷΠǥÇöÇÒ ¼ö ÀÖ´Ù´Â »ç½ÇÀÔ´Ï´Ù. ¹°·Ð { } ¾È¿¡ ´ã±â´Â ±¸¹®ÀÌ Çϳª»ÓÀ϶§¸¸ °¡´ÉÇÑ °ÍÀÌÁö¸¸ ¾î·µç °°Àº ±â´ÉÀ» ÇÏ´Â Äڵ带 ´Ü¹®À¸·Îµµ ¶Ç º¹¹®À¸·Îµµ ÀÚÀ¯·Ó°Ô ¾µ ¼ö ÀÖ´Ù´Â ÆÞÀÇ ³î¶ó¿î À¯¿¬¼º¿¡ ÁÖ¸ñÇϼ¼¿ä. ±¸¹®ÀÌ ÇÑ ÁÙÀÎ °æ¿ì¿£ ´Ü¹® ÇüÅ·Π¾²´Â °ÍÀÌ ÈξÀ ´õ ÆÞ´Ù¿î ÄÚµù ½ºÅ¸ÀÏÀÔ´Ï´Ù. ½ÇÁ¦ ½ÇÇà ¼Óµµ¸é¿¡¼­µµ ´Ù¸¥ Â÷À̰¡ ¾ø´Ù¸é BLOCKÀÌ ¾ø´Â °æ¿ì°¡ ÀÖ´Â °æ¿ìº¸´Ù ´õ ºü¸¨´Ï´Ù. Áï, È¿À²¼ºÀ» »ý°¢ÇÑ´Ù¸é º¹¹®º¸´Ù´Â ´Ü¹®ÇüÅ·Π¾²´Â °ÍÀÌ ´õ ÁÁ½À´Ï´Ù.

ÀÌ»óÀÇ ³»¿ëÀ» °¢°¢ ÀÚ¼¼È÷ ¾Ë¾Æ º¾½Ã´Ù.

if , unless ±¸¹®

´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡µµ ´Ù ÀÖ´Â °ÍÀ̹ǷΠº° ¼³¸íÀÌ ÇÊ¿ä ¾ø½À´Ï´Ù. ¿¹¸¦ µé¾î,


if ($weather eq 'rain') {
	$soju++;
}
elsif ($weather eq 'sunshine') {
	$beer++;
}
else { 
	$water++;
}

¾ÆÁÖ ÁÖÀÇÇØ¾ß ÇÒ Á¡Àº elsif¿¡ 'e'°¡ ¾ø´Ù´Â »ç½Ç´Ï´Ù. ÁÖÀÇÇϼ¼¿ä. ¿¡·¯´Â »ç¼ÒÇÑ Å¸ÀÌÇÎ ½Ç¼ö ¶§¹®¿¡ »ý±â´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. ±×¸®°í ¶Ç Çϳª ÁÖÀÇÇÒ Á¡Àº if .. elsif .. else Áß ÂüÀÎ °Í Çϳª¸¸ ½ÇÇàµÈ´Ù´Â °ÍÀÔ´Ï´Ù. À§ÀÇ ¿¹ÀÇ °æ¿ì, ¸¸¾à $weather°¡ 'rain'À̸é $soju¸¦ 1 Áõ°¡ ½ÃŲ µÚ if..elsif..else º¹¹®Àº Á¾·áÇÕ´Ï´Ù.

¿©±â¼­ Á¶±Ý ´õ ³ª°¡ º¼±î¿ä? ij¸ÖºÏÀÇ 24Àå¿¡ ³ª¿À´Â ³»¿ëÀε¥ ¾ÆÁÖ Àç¹Õ½À´Ï´Ù.


if ($a) { $foo = $a; }
elsif ($b) { $foo = $b; }
elsif ($c) { $foo = $c; }

ÀÌ·± ÇüÅ´ ÈçÈ÷ ³ª¿Ã ¼ö ÀÖ´Â °ÍÀÌÁÒ? ÆÞ¿¡¼­´Â À§¿Í °°Àº º¹¹®À» ´ÙÀ½°ú °°Àº ´Ü¹®À¸·Î È® ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù.

$foo = $a || $b || $c;

³î¶øÁÒ? ºñ½ÁÇÑ °ÍÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ´Â Äڵ尡 ÀÖ½À´Ï´Ù. ¾î¶² º¯¼öÀÇ ±âº»°ª(default value)À» ¼³Á¤ÇÏ´Â ÄÚµå ÀÔ´Ï´Ù.

$pi ||= 3.14;idiom

À§ ÄÚµå´Â $pi¶ó´Â º¯¼ö¿¡ Ưº°ÇÑ °ªÀÌ µé¾îÀÖÁö ¾ÊÀ¸¸é 3.14¸¦ ÇÒ´çÇÑ´Ù´Â ÀÇ¹Ì ÀÔ´Ï´Ù. ÀÚ¼¼È÷ Ç®¾î¼­ º¸¸é A || B¶ó´Â °ÍÀº 'A ¶Ç´Â B'ÀÔ´Ï´Ù. A°¡ ÂüÀ̸é B´Â ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. A°¡ °ÅÁþÀ̸é B°¡ ½ÇÇàµË´Ï´Ù. µû¶ó¼­ $pi°¡ ÂüÀ̸é, Áï $pi¶ó´Â º¯¼ö¿¡ ¾î¶² °ªÀÌ ´ã°ÜÀÖÀ¸¸é ±×´ë·Î ³Ñ¾î °¡°í $pi¿¡ ¾Æ¹« °ªµµ ´ã°ÜÀÖÁö ¾Ê¾Æ¼­ °ÅÁþÀÌ µÇ¸é $pi = 3.14¸¦ ½ÇÇàÇÕ´Ï´Ù. Àç¹ÕÁÒ? ²À ¿Ü¿ö µÎ¼¼¿ä. º¯¼ö ±âº»°ª ¼³Á¤ ÄÚµåÀÔ´Ï´Ù.

·çÇÁ ±¸¹®(Loop Statements)

·çÇÁ(loop)´Â ¾î¶² ÀÛ¾÷À» ¹Ýº¹ÀûÀ¸·Î ¼öÇàÇÏ´Â °ÍÀÔ´Ï´Ù. ÇÁ·Î±×·¡¹Ö¿¡ Á¶±ÝÀÌ¶óµµ °ü½ÉÀ» °®°í ÀÖ´Â ºÐÀ̶ó¸é ´©±¸³ª for , while°ú °°Àº ·çÇÁ ±¸¹®¿¡ ´ëÇØ µé¾î º¸¾ÒÀ» °ÍÀÔ´Ï´Ù. ÆÞ¿¡µµ for, while ·çÇÁ°¡ ÀÖ°í, ±× ¿Ü¿¡ ¸î °¡Áö »õ·Î¿î °ÍÀÌ ÀÖ½À´Ï´Ù.

±×·±µ¥ ·çÇÁ´Â ¹Ýº¹ÀûÀÎ ÀÛ¾÷À» ÇÏ´Â °ÍÀ̱⠶§¹®¿¡ '¾î¶° ¾î¶°ÇÑ °æ¿ì¿¡´Â ·çÇÁ¸¦ ¹þ¾î³­´Ù', '¾î¶° ¾î¶°ÇÑ °æ¿ì¿¡´Â ÁøÇàÇÏ´ø °ÍÀ» ¸ØÃß°í ´ÙÀ½ ¹ø ·çÇÁ¸¦ ´Ù½Ã ½ÃÀÛÇÑ´Ù'¿Í °°Àº È帧 Á¶ÀýÀÌ ÇÊ¿äÇÏ°Ô µË´Ï´Ù. ±×·± °ÍÀ» "loop control"À̶ó Çϰí, È帧 Á¶ÀýÀ» ´õ Á¤¹ÐÇÏ°Ô Çϱâ À§Çؼ­´Â ·çÇÁ¿¡ À̸§À» ºÙ¿©ÁÙ Çʿ䰡 »ý±é´Ï´Ù.

¿¹¸¦ µé¸é A¶ó´Â Å« ·çÇÁ ¾È¿¡ B¶ó´Â ÀÛÀº ·çÇÁ°¡ Àִµ¥ B ·çÇÁ¸¦ µ¹´Ù°¡ ¾î¶² Á¶°ÇÀÌ ¸¸Á·µÇ¸é ´Ù½Ã A ·çÇÁ óÀ½À¸·Î µÇµ¹¾Æ °¡¾ßÇÏ´Â °æ¿ì¿¡ ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä? A ·çÇÁ¿Í B ·çÇÁ¸¦ ±¸ºÐÁö¾îÁÙ ¾î¶² À̸§Ç¥ °°Àº °ÍÀÌ ÇÊ¿äÇÏÁö ¾Ê°Ú½À´Ï±î? ¹Ù·Î ±×·± À̸§Ç¥¸¦ ·¹À̺í(lable)À̶ó ÇÕ´Ï´Ù. ·¹À̺íÀº ¸ðµç ·çÇÁ¿¡ ´Ù ºÙÀÏ ¼ö ÀÖ½À´Ï´Ù.(¹°·Ð ºÙÀÏ Çʿ䰡 ¾øÀ¸¸é ¾È ºÙ¿©µµ µË´Ï´Ù.)

±×·¯¸é ´ëÇ¥ÀûÀÎ ·çÇÁÀÎ while°ú until ±¸¹®¿¡ ´ëÇØ ¾Ë¾Æ º¾½Ã´Ù.

while , until ·çÇÁ

while ±¸¹®Àº ¾î¶² Á¶°ÇÀÌ ÂüÀÎ ÇÑ(while something is true..) °è¼Ó ·çÇÁ¸¦ µ¹°Ô µË´Ï´Ù. while ±¸¹®Àº until ±¸¹®À¸·Î ¹Ù²Ü ¼ö Àִµ¥ until ¿ª½Ã ¹®ÀÚ ±×´ë·Î ¾î¶² Á¶°ÇÀÌ ÂüÀÌ µÉ ¶§±îÁö(until something is true..) ·çÇÁ¸¦ µ½´Ï´Ù.

while ·çÇÁ´Â ÁÖ·Î ¾î¶² ÆÄÀÏÀ» ÀоîµéÀÏ ¶§ ¸¹ÀÌ ¾²ÀÔ´Ï´Ù. myfile.txt ¶ó´Â ÆÄÀÏÀ» ¿­¾î¼­ °¢ ÁÙÀÇ ³¡¿¡ html ÁÙ¹Ù²Þ ÅÂ±× <br>À» ºÙÀÌ´Â ÄÚµå´Â,


open MYFILE, "myfile.txt" or die ("can't open myfile.txt");
while (<MYFILE>) {
	$_ .= "<br>"
}

À§ÀÇ while º¹¹®Àº ´ÙÀ½°ú °°ÀÌ ¾µ ¼ö ÀÖ½À´Ï´Ù. ÆÞ ½ºÅ¸ÀÏÀÔ´Ï´Ù

$_ .= "<br>" while (<MYFILE>);

ÆÄÀÏ Àд °ÍÀº »ç¿ëÀÚ ÀԷ ó¸®¿¡¼­ ´Ù·ç¾ú½À´Ï´Ù.

for ·çÇÁ

for ·çÇÁ´Â for (A;B;C)¶ó´Â ÇüÅ·Π°ýÈ£ ¾È¿¡ 3°³ÀÇ expressionÀ» ³Ö¾î¼­ »ç¿ëÇÕ´Ï´Ù. A¿¡ ÇØ´çÇÏ´Â °ÍÀº ÃʱâÈ­(initialization), B´Â Á¶°Ç(condition), C´Â ÀçÃʱâÈ­ (reinitialization)ÀÔ´Ï´Ù.


for (my $i = 1; $i <= 10; $i++) {
	...
}

$i¿¡ ÃʱâÈ­ °ªÀ¸·Î 1À» ³Ö°í ·çÇÁ¸¦ ½ÃÀÛÇØ¼­, $i°¡ 10º¸´Ù À۰ųª °°Àº Áö¸¦ Å×½ºÆ®ÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é $i¸¦ 1 Áõ°¡½ÃÄѼ­ ´Ù½Ã ÃʱâÈ­, ¶Ç ´Ù½Ã ·çÇÁ¸¦ ½ÃÀÛÇÕ´Ï´Ù. ±× ´ÙÀ½¿¡´Â $i¿¡ 2°¡ ÇÒ´çµÇ¾î¼­ ´ÙÀ½ ·çÇÁ¸¦ µµ´Â °ÍÀÔ´Ï´Ù.

for ·çÇÁ °ýÈ£ ³»ÀÇ ¼¼¹ÌÄÝ·Ð »çÀÌ¿¡´Â ¾Æ¹« °Íµµ ³ÖÁö ¾Ê¾Æµµ µË´Ï´Ù. ±× °æ¿ì °¢°¢Àº ÂüÀ¸·Î °£Áֵ˴ϴÙ.


for(;;) {
	print "-_-", "\n";
}

À̰ÍÀº -_-¸¦ ÁÙÀ» ¹Ù²ã°¡¸ç °è¼Ó ÇÁ¸°Æ®ÇÕ´Ï´Ù. for () ¾ÈÀÌ °è¼Ó ÂüÀ̹ǷΠ¹«ÇÑ·çÇÁÀÔ´Ï´Ù. À§ ÄÚµå´Â while ±¸¹®À¸·Î ¹Ù²Ü ¼öµµ ÀÖ½À´Ï´Ù. while °ýÈ£ ¾ÈÀÇ Á¶°ÇÀÌ Ç×»ó ÂüÀÌ µÇµµ·Ï ÇÏ¸é µË´Ï´Ù.


while(1) {
	print "-_-", "\n";
}

ÀÔ´Ï´Ù.

ÆÞÀÇ À¯¿¬¼ºÀº for ±¸¹®¿¡¼­µµ ¿¹¿Ü°¡ ¾Æ´Õ´Ï´Ù. ¿©·¯ °³ÀÇ º¯¼ö¸¦ µ¿½Ã¿¡ º¯°æÇØ °¡¸é¼­ ·çÇÁ¸¦ µ¹¸± ¼öµµ ÀÖ½À´Ï´Ù.


for ($i=65, $j=97; $i<=90, $j<=122; $i++, $j++) {
	print chr($i), chr($j), "\n";
}

À§ ÄÚµå´Â ½ÊÁø¼ö ¾Æ½ºÅ°°ª 65(´ë¹®ÀÚ A)¿Í ½ÊÁø¼ö ¾Æ½ºÅ°°ª 96(¼Ò¹®ÀÚ a)ºÎÅÍ Z, z±îÁö ÁÙÀ» ¹Ù²ã °¡¸ç Ãâ·ÂÇÏ´Â ÄÚµåÀÔ´Ï´Ù. chr() ÇÔ¼ö´Â ¾Æ½ºÅ° °ªÀ» ÁÖ¸é ¹®ÀÚ·Î ¹Ù²ãÁÖ´Â ÇÔ¼öÀÔ´Ï´Ù.

foreach ·çÇÁ

foreach ·çÇÁ´Â for ·çÇÁ¿Í Ç×»ó ¹Ù²ã ¾µ ¼ö ÀÖ´Â °ÅÀÇ °°Àº °ÍÀÔ´Ï´Ù. µÑ ´Ù ¾î¶² ¸®½ºÆ®(list)ÀÇ ¾ÆÀÌÅÛ °¢°¢À» °®°í ·çÇÁ¸¦ µ½´Ï´Ù. Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù¸é foreach´Â ÇöÀç ¸î ¹øÂ° ¾ÆÀÌÅÛÀ» °¡Áö°í ÀÛ¾÷ÇÏ´ÂÁö¸¦ ¾Ë ¼ö°¡ ¾ø´Ù´Â °Ô ´Ù¸¨´Ï´Ù. ±×°ÍÀ» ¾Ë Çʿ䰡 ÀÖ´Â °æ¿ì¿¡´Â for¸¦ ½á¾ß ÇÕ´Ï´Ù. ¶Ç ±× Á¡ ¶§¹®¿¡ foreach ·çÇÁ°¡ for ·çÇÁº¸´Ù ´õ ¼Óµµ°¡ ºü¸¨´Ï´Ù. foreach´Â ¸®½ºÆ® ¾ÆÀÌÅÛ °¢°¢¿¡ Á÷Á¢ Á¢±ÙÇÏÁö¸¸ for´Â ¼ø¼­¸¦ ³ªÅ¸³»´Â ¼ýÀÚ¸¦ ÅëÇØ¼­ Á¢±ÙÇϱ⠶§¹®ÀÔ´Ï´Ù. ½ÇÇà ¼Óµµ°¡ Áß¿äÇÑ °æ¿ì¿¡´Â foreach¸¦ ¾²´Â°Ô ´õ À¯¸®ÇÕ´Ï´Ù. foreach´Â ÀÌ·± ½ÄÀ¸·Î »ç¿ëÇÕ´Ï´Ù.


$data = 'Perl:Python:PHP:ColdFusion:ASP';
foreach $value (split /:/, $data) {
	print "$value", "\n";
}

À§ÀÇ ÄÚµå Áß split /:/, $data´Â $data¿¡ ´ã±ä °ªÀ» ÄÝ·Ð : º°·Î ³ª´©¾î¼­ ±× °ªµéÀ» ¸®½ºÆ® ÇüÅ·ΠµÇµ¹·Á ÁÝ´Ï´Ù. foreach ·çÇÁ´Â ±×·¸°Ô ¹ÝȯµÈ ¸®½ºÆ®ÀÇ ¾ÆÀÌÅÛ °¢°¢À» $value¿¡ ´ã¾Æ¼­ ·çÇÁ¸¦ µ¹°Ô µË´Ï´Ù.

À§ Äڵ带 ½ÇÇàÇØ º¸¸é Perl, Python,...ÀÌ ÁÙÀ» ¹Ù²ã °¡¸é¼­ Ãâ·ÂµÇ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. À§ Äڵ忡¼­ foreach´Â for·Î ¹Ù²ãµµ µË´Ï´Ù. for³ª foreach ¸ðµÎ list context¸¦ ²ø°í ´Ù´Ï¹Ç·Î for VAR (LIST), foreach VAR (LIST) ¸ðµÎ °¡´ÉÇÕ´Ï´Ù.

±×·±µ¥ ÆÞ¿¡´Â µðÆúÆ® º¯¼ö $_°¡ ÀÖ½À´Ï´Ù. º¯¼ö¸¦ Ưº°È÷ ¸í½ÃÇÏÁö ¾ÊÀ¸¸é $_¿¡ ´ã±é´Ï´Ù. µû¶ó¼­ À§ foreach ·çÇÁ´Â ´ÙÀ½°ú °°ÀÌ ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù.


foreach (split /:/, $data) {
	print $_, "\n";
}

ÀÌ ÄÚµå ¿ª½Ã foreach´ë½Å for¸¦ ½áµµ µË´Ï´Ù. for³ª foreach ¸ðµÎ ·çÇÁ º¯¼ö¸¦ ¸í½ÃÇÏÁö ¾ÊÀ¸¸é ÆÞÀÇ µðÆúÆ® º¯¼öÀÎ $_¸¦ »ç¿ëÇÕ´Ï´Ù. À§ ÄÚµå´Â ºí¶ô ³»ºÎ°¡ ÇÑ ÁÙÀ̹ǷΠÇÑ ¹ø ´õ ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù.

print $_, "\n" foreach (split /:/, $data);

Äڵ尡 ÈξÀ ´õ ÆÞ´Ù¿öÁ³½À´Ï´Ù. ÀÌ·¸°Ô ÄÚµùÇÏ´Â °Ô ÆÞ ½ºÅ¸ÀÏÀÔ´Ï´Ù.
¹°·Ð C, Java ½ºÅ¸ÀÏ·Î Â÷°îÂ÷°î ÄÚµùÇÏ´Â °ÍÀ» ±»ÀÌ ¸»¸®Áö´Â ¾Ê°Ú½À´Ï´Ù. : )

À§ÀÇ ·çÇÁ º¯¼ö $value³ª $_´Â ¸®½ºÆ® ¾ÆÀÌÅÛ °¢°¢À» °¡¸®Å°´Â ÀÏÁ¾ÀÇ alias(°¡»óº», ¹Ù·Î°¡±â)ÀÔ´Ï´Ù. Áï, ·çÇÁ º¯¼ö¸¦ ¼öÁ¤ÇÏ¸é ±×°Ç ¸®½ºÆ®³» ¾ÆÀÌÅÛÀ» Á÷Á¢ ¼öÁ¤ÇÏ´Â °Í°ú °°½À´Ï´Ù. ¿¹¸¦ µé¾î À§ÀÇ À§ ·©±ÍÁö À̸§ µÚ¿¡ " language" ¶ó´Â ´Ü¾î¸¦ ¸ðµÎ ºÙÀÌ°í ½Í´Ù¸é ¾î¶»°Ô ÇÏ¸é µÉ±î¿ä?


print $_ . " language", "\n" foreach (split /:/, $data);

ÀÌ·¸°Ô ÇÏ¸é µË´Ï´Ù. Á¡ Çϳª´Â concatenation operator·Î ¹®ÀÚ¿­À» ÇÕÃÄÁÖ´Â ¿¬»êÀÚÀÔ´Ï´Ù.

±â¿Õ 'ÆÞ´Ù¿î' ÄÚµå ¾ê±â°¡ ³ª¿Â ±è¿¡ °ü¿ëÀûÀ¸·Î ¸¹ÀÌ ¾²ÀÌ´Â °ÍÀ» Çϳª ´õ ¾Ë¾Æ º¾½Ã´Ù. ¿¹¸¦ µé¾î 1¿¡¼­ 100±îÁö ¼ýÀÚ Áß È¦¼ö¸¸ ¸ðÀ¸´Â ÄÚµå´Â ÀÌ·¸°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.


foreach (1..100) {
	push @odd, $_ if ($_ % 2 == 1);
}

À§ÀÇ Äڵ嵵 »ç½Ç if (..) ±¸¹®À» ´Ü¹® ÇüÅ·ΠÁÙÀÎ °ÍÀÔ´Ï´Ù¸¸, ÆÞÀº ¿©±â¼­ ¸ØÃßÁö ¾Ê½À´Ï´Ù. À¯´Ð½ºÀÇ Ä¿¸Çµå¿¡µµ ÀÖ´Â grepÀÌ ÆÞ¿¡µµ ÀÖ½À´Ï´Ù. À§ÀÇ ÄÚµå´Â ´ÙÀ½°ú °°ÀÌ ÇÑ ÁÙ·Î ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù.


@odd = grep { $_ % 2 } 1..100 ; idiom

¾ÆÁÖ ÆÞ´Ù¿î ÄÚµåÀÔ´Ï´Ù. ÀÌ Äڵ尡 ¿Ö À§ÀÇ º¹¹®°ú °°ÀºÁö ¾Ë¾Æ º¾½Ã´Ù.

grep { .. } LIST ´Â { } µÚÀÇ ¸®½ºÆ®¿¡ ÀÖ´Â ¾ÆÀÌÅÛ °¢°¢À» $_ ¿¡ ´ã¾Æ¼­ { } ¾È¿¡ µé¾î ÀÖ´Â ¿¬»êÀ» ¼öÇàÇÕ´Ï´Ù. ±×·¯¹Ç·Î À§ÀÇ ÄÚµå´Â 1¿¡¼­ 100±îÁö¸¦ Çϳª¾¿ 2·Î ³ª´²¼­ ³ª¸ÓÁö°¡ 'Âü'À̸é, Áï 1À̸é @odd¿¡ °á°ú¸¦ ´ã´Â °ÍÀÌ µË´Ï´Ù. °á±¹ @odd ³»¿¡´Â 1¿¡¼­ 100±îÁö Áß È¦¼öµé¸¸ ´ã±â°Ô µË´Ï´Ù. grep { } LIST ÆÐÅÏÀº ÁÁÀº ÆÞ Äڵ忡¼­ ÀÚÁÖ ³ª¿À´Â °ÍÀ̹ǷΠÀß ±â¾ïÇØ µÎ¼¼¿ä.

·çÇÁ ÄÁÆ®·Ñ(Loop Control)

·çÇÁ´Â ¹«ÇÑÈ÷ ¹Ýº¹Çؼ­ µµ´Â °ÍÀ̱⠶§¹®¿¡ '¾î¶² Á¶°ÇÀÌ ÃæÁ·µÇ¸é ·çÇÁ¸¦ Å»ÃâÇØ¶ó.'µçÁö '¾î¶² °ªÀÌ ¹¹°¡ µÇ¸é ¾îµð¾îµð·Î °¡¶ó.' µîÀÇ Á¶ÀýÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ·± °ÍÀ» ´ã´çÇÏ´Â °ÍÀÌ ·çÇÁ ÄÁÆ®·ÑÀ̸ç, '¾îµð¾îµð'¿¡ ÇØ´çÇÏ´Â °ÍÀÌ ·¹À̺íÀÔ´Ï´Ù. ·çÇÁ ÄÁÆ®·Ñ¿¡´Â Å©°Ô ¼¼ °¡Áö°¡ ÀÖ½À´Ï´Ù. next, last, redo.

next´Â ÇÏ´ø ÀÛ¾÷À» ¸ØÃß°í ´ÙÀ½ ¹ø ·çÇÁ¸¦ µ¹¾Æ¶ó´Â ÀǹÌÀÔ´Ï´Ù.
last ¿ª½Ã ·çÇÁÀÇ ¸Ç ³¡ ºÎºÐÀ¸·Î °¡¶ó´Â ÀǹÌÀÔ´Ï´Ù.
redo ´Â óÀ½ºÎÅÍ ´Ù½Ã Ç϶ó´Â ÀǹÌÀÔ´Ï´Ù.
½ÇÁ¦ ¿¹¸¦ º¾½Ã´Ù.

¾î¶² ÆÞ ÆÄÀÏÀ» ¿­¾î¼­ ÁÖ¼®¹®(#·Î ½ÃÀÛÇÏ´Â)°ú ºñ¾î ÀÖ´Â ÁÙÀ» Á¦¿ÜÇÑ, ½ÇÁ¦ ³»¿ëÀÌ ÀÖ´Â ÁÙÀÌ ¸î ÁÙÀΰ¡¸¦ ¼¼´Â ÄÚµå´Â ÀÌ·± ÇüŰ¡ µË´Ï´Ù.


open PERL, "myfile.pl" or die "can't open perl file";
while (<PERL>) {
	# next ¸¦ ¸¸³ª¸é ¿©±â·Î ¿À°Ô µË´Ï´Ù
	next if /^#/;
	next if /^$/;
	$count++;
}
print "ÃÑ $count ÁÙÀÔ´Ï´Ù";

PERLÀ̶ó´Â ÆÄÀÏÇÚµé·Î ÆÞ ÆÄÀÏÀ» ¿¬ ´ÙÀ½, °¢°¢ÀÇ ÁÙÀ» ÀÌ¿ëÇØ¼­ ·çÇÁ¸¦ µµ´Âµ¥,
/^#/, Áï # ±âÈ£·Î ½ÃÀÛÇÏ´Â ÁÙÀ̸é next, ´Ù½Ã ´ÙÀ½ ÁÙÀ» ÀÐÀ¸·¯ °©´Ï´Ù. ÁÖ¼®¹®À» ½ºÅµÇÏ´Â °ÍÀÔ´Ï´Ù. next if /^$/µµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù. ºñ¾î ÀÖ´Â ÁÙÀÌ¸é ´Ù½Ã ´ÙÀ½ ÁÙÀ» ÀÐÀ¸·¯ °¡¶ó´Â ÀǹÌÀÔ´Ï´Ù. next´Â ÇÏ´ø ÀÛ¾÷À» ¸ØÃß°í ´ÙÀ½ ¹ø ·çÇÁ¸¦ µ¹¾Æ¶ó´Â ¶æÀÔ´Ï´Ù.(/^#/ µîÀÌ »ý¼ÒÇÑ ºÐÀº ³ªÁß¿¡ ·¹±Ö¶ó ÀͽºÇÁ·¹¼Ç¿¡¼­ ÀÚ¼¼È÷ ´Ù·ç¹Ç·Î ¿©±â¼­´Â #À¸·Î ½ÃÀÛÇÏ´ÂÁö ¿©ºÎ¸¦ ¸ÅĪÇÏ´Â ÄÚµå¶ó´Â Á¤µµ·Î¸¸ ¾Ë°í ÀÖÀ¸¸é µË´Ï´Ù.)

next if .., ÀÏ»ó ¿µ¾î ±×´ë·Î ÀÐÈ÷ÁÒ? ÆÞÀÇ Æ¯Â¡ÀÔ´Ï´Ù.

±×·±µ¥ ¸ðµç BLOCK (Áß°ýÈ£·Î ¹­¿©ÀÖ´Â ÄÚµå) Àº À̸§Ç¥(·¹À̺í)¸¦ ºÙÀÏ ¼ö ÀÖ´Ù°í Çß½À´Ï´Ù. Áï, À§ÀÇ ÄÚµå´Â ÀÌ·¸°Ô ¾µ ¼öµµ ÀÖ½À´Ï´Ù.


LINE: while (<PERL>) {
	next LINE if /^#/;
	next LINE if /^$/;
	$count++;
}

"¸¸¾à # ·Î ½ÃÀÛÇÏ¸é ´ÙÀ½ ÁÙ" (next LINE if ..)
¾ÆÁÖ ÀÚ¿¬½º·´½À´Ï´Ù. À§ÀÇ Äڵ忡¼­´Â ±»ÀÌ ·¹À̺íÀ» ºÙÀÏ Çʿ䰡 ¾ø½À´Ï´Ù. BLOCKÀÌ ÇÑ ´Ü°è »ÓÀ̱⠶§¹®ÀÔ´Ï´Ù. next³ª last µÚ¿¡ ·¹À̺íÀ» »ý·«ÇÏ¸é °¡Àå °¡±î¿î BLOCKÀ» ±× °æ°è·Î °£ÁÖÇÕ´Ï´Ù. À§¿¡¼­Ã³·³ ½á Á൵ »ó°ü¾ø½À´Ï´Ù. ±×¸®°í ·¹À̺íÀº °ü·ÊÀûÀ¸·Î ´ë¹®ÀÚ·Î ¾¹´Ï´Ù. ÆÄÀÏÇÚµé󷳿ä.

À̹ø¿¡´Â last ¿¹¸¦ µé¾î º¾½Ã´Ù. last´Â ·çÇÁ¸¦ ³¡³»°í ¸¶Áö¸·À¸·Î °¡¶ó´Â ÀǹÌÀ̹ǷΠC³ª Java¿¡¼­ÀÇ case ±¸¹® °°Àº °ÍÀ» ¸¸µé ¼ö ÀÖ½À´Ï´Ù.(»ç½Ç ÆÞ¿¡ switch, case ±¸¹®ÀÌ ¾ø´Â ÀÌÀ¯°¡ last ¸¦ ÀÌ¿ëÇØ¼­ Ç¥Çö°¡´ÉÇϱ⠶§¹®ÀÔ´Ï´Ù. ÆÞ ¹öÀü 6¿¡¼­´Â case ±¸¹®ÀÌ Ãß°¡µÉ ¿¹Á¤ÀÔ´Ï´Ù.)


SWITCH: {
	if (/^abc/) { $abc = 1; last SWITCH }
	if (/^def/) { $def = 1; last SWITCH }
	$nothing = 1;
	# last ¸¦ ¸¸³ª¸é ¿©±â·Î ¿À°Ô µË´Ï´Ù
}

½±°Ô ÀÌÇØµÇÁÒ?

ÁÖÀÇÇÒ Á¡Àº last, next µîÀº BLOCK ³»¿¡¼­¸¸ À¯È¿ÇÏ´Ù´Â °ÍÀÔ´Ï´Ù. Áï, for, foreach, while°ú °°ÀÌ BLOCKÀ» À̲ô´Â ±¸¹®ÀÌ ¾Æ´Ñ °æ¿ì¿¡´Â µû·Î Áß°ýÈ£·Î ¹­¾î¼­ BLOCKÀ» ¸¸µé¾î Áà¾ß ÇÕ´Ï´Ù. ÀÌ·¸°Ô ÀǵµÀûÀ¸·Î Áß°ýÈ£¸¦ ¾ÕµÚ·Î ¹­¾î¼­ ÀÏÁ¾ÀÇ ·çÇÁó·³ ¸¸µç °ÍÀ» ¹ú°Å¹þÀº ºí¶ô, bare blockÀ̶ó ÇÕ´Ï´Ù. À̰ÍÀÌ Æ¯È÷ ¸¹ÀÌ ¾²ÀÌ´Â ºÎºÐÀº »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö sub { }¿¡¼­ÀÔ´Ï´Ù. sub { }´Â ·çÇÁ°¡ ¾Æ´Ï¹Ç·Î ±× ³»ºÎ¿¡¼­ È帧Á¶ÀýÀÌ ÇÊ¿äÇÑ °æ¿ì bare block À¸·Î ¹­¾î Áà¾ß ÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù.


sub add {
	$url = shift;
	{	
		last if ($url eq 'localhost');
		last if ($url =~ /yahoo/i);
		last if ($url =~ /google/i);
		$url_list = $url . "\n";
		# last ¸¦ ¸¸³ª¸é ¿©±â·Î ¿À°Ô µË´Ï´Ù
	}
	return $url_list;
}

À§ ÄÚµå´Â add¶ó´Â ÇÔ¼ö¸¦ È£ÃâÇÑ °÷À¸·ÎºÎÅÍ Àü´Þ ¹ÞÀº $urlÀÌ localhost°Å³ª yahoo, google À̶ó´Â ´Ü¾î°¡ µé¾î°¡´Â °æ¿ì°¡ ¾Æ´Ò ¶§ ±× °ªÀ» µÇµ¹·ÁÁÖ´Â ÄÚµåÀÔ´Ï´Ù. ·çÇÁ°¡ ¾Æ´Ñ °÷¿¡¼­ last if .. ¸¦ »ç¿ëÇϱâ À§Çؼ­ bare blockÀ» »ç¿ëÇßÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù.

¶Ç Çϳª Àç¹ÌÀÖ´Â °ÍÀÌ ? : ÀÔ´Ï´Ù. ÀÌ°Ç ´Ù¸¥ ¾ð¾î¿¡µµ ´ëºÎºÐ ÀÖ´Â °ÍÀÔ´Ï´Ù.


$grade = 
	($point < 10) ? "poor":
	($point < 50) ? "room for improvement":
	($point < 80) ? "great":
			"excellent"; # À§¿¡ ÇØ´çµÇ´Â °æ¿ì°¡ ¾øÀ¸¸é

ÀÌ ÄÚµå´Â $pointÀÇ Å©±â¿¡ µû¶ó¼­ $grade¿¡ "poor", "room for improvement", "great", "excellent" ¸¦ ´ã´Â ÄÚµåÀÔ´Ï´Ù. (Á¶°Ç1)? a : (Á¶°Ç2)? b : (Á¶°Ç3)? c : d; ¿Í °°Àº ÇüÅ·Π»ç¿ëÇÕ´Ï´Ù. Á¶°Ç 1À» ¸¸Á·Çϸé a, Á¶°Ç 2¸¦ ¸¸Á·Çϸé b, .. ¾Õ¿¡ ¸¸Á·ÇÏ´Â Á¶°ÇÀÌ ¾øÀ¸¸é d¶ó´Â ÀÇ¹Ì ÀÔ´Ï´Ù. ÀÌ ÄÚµå ¿ª½Ã ¾ÆÁÖ ¸¹ÀÌ »ç¿ëµÇ¹Ç·Î Àß ±â¾ïÇϰí ÀÖ¾î¾ß ÇÕ´Ï´Ù.

¸¶Áö¸·À¸·Î ÇÑ °¡Áö. BLOCK, Áï, Áß°ýÈ£·Î °¨½ÎÁ® ÀÖ´Â ÄÚµå Áß ¸¶Áö¸· ÁÙ¿¡´Â ¼¼¹ÌÄÝ·ÐÀ» »ç¿ëÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. ÇÏÁö¸¸ ¸¶Áö¸· ÁÙ¿¡µµ ¼¼¹ÌÄÝ·ÐÀ» ºÙÀÌ´Â ½À°üÀ» µéÀ̽ô °Ô ÁÁ½À´Ï´Ù. ³ªÁß¿¡ ±× BLOCK ³»¿¡ »õ·Î¿î Äڵ带 ÷°¡ÇÒ ÀÏÀÌ »ý°åÀ» ¶§, ±× Àü¿¡ ¸¶Áö¸· ÁÙ ³¡¿¡ ¼¼¹ÌÄÝ·ÐÀ» ºÙÀÌÁö ¾Ê¾Ò´Ù´Â »ç½ÇÀ» Àذí ÀֱⰡ ½±±â ¶§¹®ÀÔ´Ï´Ù. ¼¼¹ÌÄÝ·Ð Çϳª ¶§¹®¿¡ ¸î ½Ã°£ º¸³»´Â ÀÏÀÌ µå¹°Áö ¾Ê½À´Ï´Ù.

Áö±Ý °è½Å °÷Àº: TECH > [ÆÞ] ÆÞÀÇ ±¸¹®: ·çÇÁ¿Í ·çÇÁ Á¶Àý