[´«¹üÀÌ Áø½Ç 3] GCD: Grand Central Dispatc -2ºÎ-

September 03,2009                      hit:(6634)

1ºÎ¿¡¼­ Grand Central DispachÀÇ µµ·¡¿Í °ü·ÃÇØ º´·Ä ÄÄÇ»ÆÃÀÇ ½ÃÁ¶ °ÝÀÎ Be¸¦ µéÃçºÃ°í ¸ÖƼÄÚ¾î Ĩ¼ÂÀ» È°¿ëÇϱâ À§ÇÑ ¾ÖÇÃÀÇ ³ë·ÂÀ̶ó°í ÇÒ ¼ö ÀÖ´Â 2°¡Áö Ưº°ÇÑ ÇüÅÂÀÇ API¸¦ ¤¾îºÃ½À´Ï´Ù. ÀÚ¼¼ÇÏ°Ô´Â Àúµµ ¸ð¸¨´Ï´Ù. ÀÌÇØ°¡µÉ¸®°¡ ¾øÁÒ...¤»¤» ´Ù¸¸, ÀÌ·± APIÀÇ Áغñ°¡ ÇÁ·Î±×·¡¸Óµé¿¡°Ô Â÷¿ø³ôÀº GCD¸¦ È°¿ëÇϱâ À§ÇÑ ¸Û¼®À» Á¦°øÇß´Ù´Â Á¤µµ·Î ÀÌÇØÇß½À´Ï´Ù. ±× ù° API¸¦ º¸¸é ·Î¿ì·¹º§ ÇÁ·Î±×·¡¹Ö¿¡¼­ÀÇ Áö±Ý±îÁö »ç¿ëÇØ¿Â ÇÁ·ÐÆ®¿£µåÀÇ GCC 4.2¸¦ »õ·Î¿î ¹æ½ÄÀÇ ClangÀ¸·Î ÀÌÁÖ¸¦ ½ÃÀÛÇßÀ¸¸ç ¹é¿£µå´Â GCC ¿Í Clang ¸ðµÎ¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ´Â LLVMÀÇ ±¸Á¶¸¦ °®´Â °ÅÁÒ. µÎ¹øÀç API´Â ¾ÖÇÿ¡¼­ ¹Ì¸® ¸¸µé¾î ³õÀº BlockÀ̶õ °ÍÀÔ´Ï´Ù. 100¿©°¡Áö ÀÌ»óÀ» ÀÌ¹Ì ÁغñÇß´Ù°í Çϸç ÀÌ ¸í·É¾î ÁýÇÕü¸¦ ÀÌ¿ëÇØ ¿ª½Ã ºü¸£°í ´Ü¼øÇÑ ÇÁ·Î±×·¡¹ÖÀÇ ±¸ÇöÀ» °¡´ÉÄÉ ÇÏ°í ÀÖ½À´Ï´Ù. ÀÌ·± ¾ÖÇÃÀÇ ½Ãµµ°¡ ½º³ë¿ì¿¡ Àû¿ëµÇ¸é¼­ ÇÁ·Î±×·¡¸ÓµéÀº º¸´Ù È¿À²ÀûÀÌ°í ´Ü¼øÇϸ鼭µµ ºü¸¥ ¼ÒÇÁÆ®¿þ¾îÀÇ Á¦ÀÛÀÌ °¡´ÉÇØÁ³½À´Ï´Ù. ¹«¾ùº¸´Ù ÀÌ·± API°¡ ½º³ë¿ì¿ë ÇÁ·Î±×·¥À» Á¦ÀÛÇϵµ·Ï ½áµåÆÄƼ ÇÁ·Î±×·¡¸Ó¸¦ À¯ÀÎÇÏ´Â °ÍÀÌÁÒ. ÆíÇÏ°í Áú³ô°í ¼º´ÉÁÁÀº ¼ÒÇÁÆ®¿þ¾î ¸¸µå´Â°Ô ±×µéÀÇ ÀÏ ¾Æ´Ï°Ú½À´Ï±î.

±×¸®°í ÀÌÁ¦ ÀÌ·± ÀÚ¿øÀ» ¹ÙÅÁÀ¸·Î ±×·£µå ¼¾Æ®·² µð½ºÆÐÄ¡(GCD) È°¿ëÀÌ °¡´ÉÇØÁö´Â °ÍÀÔ´Ï´Ù. GCD´Â Àý´ë ¾ÖÇà ȥÀÚ °¡´ÉÇÑ°Ô ¾Æ´Õ´Ï´Ù. ÀÏ´Ü Çϵå¿þ¾îºÐ¾ß¿¡¼­ ¸ÖƼÄÚ¾î ¾¾Ç»¸¦ ¸¸µé¾î ³õ°í ¹ÙÅÁÀ» Á¦°øÇÏ°í ÀÖÀ¸¸ç ¿À¿¡½ºÂ÷¿ø¿¡¼­ ÀÌ·± ÀÚ¿øÀ» È°¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÁ·Î±×·¡¸Óµé¿¡°Ô ¹è·Á¸¦ ÇØÁÖ´Â °ÍÀÔ´Ï´Ù. ´Ù¸§¾Æ´Ï¶ó °á°ú¹°¿¡¼­ ¼ÒºñÀÚ°¡ À̵æÀ» º¸Áö¸¸ Çϵ忡¾î/´«¹ü/¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚ°¡ ÇϳªÀÇ ÀÛÇ°À» ¸¸µé¾î³»¸é¼­ ÀüÇô´Ù¸¥ ÄÄÇ»Æà ȯ°æÀ» ¸¸µé¾î°¡´Â °ÍÀ¸·Î ºÁ¾ß°ÚÁÒ. ¹°·Ð Be °°Àº ȸ»ç¿¡¼­ ÀÌÀü¿¡ ½ÃµµÇßÁö¸¸ Àúº¯È­µÇÁø ¸øÇß°í ´Ù¸¸ ¾ÖÇÃÀº ÀÌÁ¦ ÀûÀýÇÑ ½Ã±â¿¡ ÀûÀýÇÑ ¿î¿µÃ¼Á¦¿Í ÀûÀýÇÑ ½Å±â¼úÀ» ¼Ò°³ÇÏ´Â °ÍÀ¸·Î ¹Ì·¡¸¦ µµ¸ðÇÏ´Â °ÍÀÔ´Ï´Ù.

--------------------------------------------------------

GCD

´«¹üÀÌÀÇ ±×·£µå ¼¾Æ®·² µð½ºÆÐÄ¡´Â ¸ÖƼÄÚ¾î ¾¾Ç» È°¿ë¿¡ À־ Áö±Ý±îÁö ÇÁ·Î±×·¥¸ÓµéÀÌ Á÷¸éÇØÀÖ´ø "¸í·É°èÅëÀÇ µ¿½Ã ½ÇÇà ¹®Á¦"(Concurrency Conundrum)¸¦ ÇØ°áÇØÁÖ´Â ¿­¼è´Ù. ¸¶Ä¡ ¼­¿ï¿ª Áß¾Ó ÅëÁ¦ ¼¾ÅͶó´Â ÀûÀýÇÑ ¶æÀ» ÀǹÌÇÏ´Â GCD´Â »ç½Ç ÀÌÇØÇϱ⠽¬¿î°ÍÀº ¾Æ´Ï´Ù.

¼ÒÇÁÆ®¿þ¾î ¾îÇø®ÄÉÀ̼ÇÀÌ ¸ÖƼÄÚ¾î ¾¾Ç»¸¦ È°¿ëÇϱâ À§Çؼ± ¾²·¹µå(Thread)¶ó°í ºÒ¸®´Â ÄÚµåÀÛ¾÷ÀÌ ¿ä±¸µÈ´Ù. °³¹ßÀÚµéÀº ¾²·¹µå¸¦ ÅëÇØ ¸ÖƼÄÚ¾î ÇÁ·Î¼¼¼­°¡ ¼³°èµÈ ´ë·Î µ¿½Ã°£´ë¿¡ ¿©·¯°¡Áö ¼öÇà¸í·ÉÀ» °¢±â ´Ù¸¥ Äھ¼­ È¿À²ÀûÀ¸·Î ½ÇÇàµÉ ¼ö ÀÖµµ·Ï ¸¸µé ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ¾²·¹µå ±â¹ýÀº ±×µ¿¾È ³Ê¹«³ª ¾î·Á¿î ÇÁ·Î±×·¡¹Ö ÀÛ¾÷À¸·Î ¾Ë·ÁÁ®¿Ô°í ÀÌ ¶§¹®¿¡ °³¹ßÀÚµéÀÌ ±âÇÇÇÏ´Â ºÐ¾ßÀ̱⵵Çϸç Áö±Ý±îÁö Çϵå¿þ¾î¿¡¼­ÀÇ ¸ÖƼÄÚ¾î üÁ¦¸¦ Á¦´ë·Î È°¿ëÇÏÁö ¸øÇß´ø ÀÌÀ¯±âµµ ÇÏ´Ù.

½º³ë¿ìÀÇ GCD°¡ µîÀåÇϸ鼭 °³¹ßÀÚµéÀº ÀÌÁ¦ ¾î·Á¿î ¾²·¹µå ±â´ÉÀ» ´õÀÌ»ó ¸¸µé ÇÊ¿ä¾ø¾îÁ³À¸¸ç ÀڽŵéÀÌ ¸¸µå´Â ¾îÇø®ÄÉÀ̼ÇÀÌ Çϵå¿þ¾î ÀÚ¿øÀ» 100% ÀÌ»ó È°¿ëÇÒ ¼ö ÀÖ°Ô µÆ´Ù. GCD°¡ °¡Á®¿Â Â÷ÀÌÁ¡Àº ¾²·¹µå°¡ °¢±â ´Ù¸¥ ¾îÇø®ÄÉÀÌ¼Ç °³¹ßÀÚ¿¡ ÀÇÇØ ¸¸µé¾îÁö´Â °ÍÀÌ ¾Æ´Ï¶ó ¿À¿¡½º Â÷¿ø¿¡¼­ Á¦°øµÈ´Ù´Â °ÍÀÌ´Ù. GCD¸¦ È°¿ëÇϵµ·Ï ¸¸µé¾îÁø ¾îÇø®ÄÉÀ̼ÇÀ» »ìÆ캸¸é ÀԷµǴ ¸í·É¼öÇàÀÛ¾÷ÀÌ ÀÚµ¿À¸·Î °¢ Äھ ÇÒ´çµÅ °¡Àå È¿À²ÀûÀÎ °á°ú¹°ÀÌ ³ª¿À´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ¶Ç GCD°¡ °¡µ¿µÉ¶§¿Í ±×·¸Áö ¾ÊÀ»¶§°¡ ºÐ¸íÇÏ°Ô ±¸ºÐµÈ´Ù. µû¶ó¼­ Çϵå¿þ¾î»ó¿¡¼­ ¿À¹ö·Îµå°¡ °É¸± ÀÌÀ¯°¡ ¾ø´Ù. ¶Ç °³¹ßÀÚ´Â ¸Æ¿¡¼­ Á¦°øÇÏ´Â Xcode¸¦ ÀÌ¿ëÇØ GCD¸¦ È°¿ëÇÏ´Â ÇÁ·Î±×·¥À» Çϱ⸸ ÇϸéµÈ´Ù. °£´ÜÇÏ´Ù.

GCD°¡ »õ·Î¿î ÄÚÄÚ¾Æ ±â¹ÝÀÇ ÇÁ·¹ÀÓ¿öÅ©´Â ¾Æ´Ï´Ù. ÀÌ°ÍÀº ¸Æ OS X¿¡¼­ °¡Àå ±âÃÊ°¡ µÇ´Â ·Î¿ì ·¹º§ÀÇ ¼ø¼öÇÑ C ¶óÀ̺귯¸® ±¸Á¶´Ù. ½áµå ÆÄƼ °³¹ßÀÚµéÀÌ GCD¸¦ ÀÌ¿ëÇϱâ À§ÇØ ¾îÇø®ÄÉÀ̼Ǻ°·Î »õ·Î¿î ¶óÀ̺귯¸® ¸µÅ© ÀÛ¾÷À» ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. GCD°¡ C ¶óÀ̺귯¸®¶õ Àǹ̴ ¸ðµç C ·©±ÍÁö¿Í À̸¦ Áö¿øÇÏ´Â º¯Á¾ Objective-C, Objective-C++, ±×¸®°í C++ µîÀ» ÀÚÀ¯ÀÚÀç·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù°Í°ú °°´Ù.

Queues & Thread

GCD´Â ¾Ë°íº¸¸é ¾ÆÁÖ ´Ü¼øÇÑ ±â¹ÝÀ§¿¡¼­ ¸¸µé¾îÁ³´Ù. ÇÁ·Î±×·¥¿¡¼­ °¢ ¸í·ÉÀÇ ½ÇÇà´ë±â¸¦ ÀǹÌÇÏ´Â Queues ºÎÅÍ ½ÃÀÛÇغ¸ÀÚ. GCD´Â FIFO(First In, First Out) ¸í·É½ÇÇà ü°è¸¦ ±×´ë·Î »ç¿ëÇÑ´Ù. ´ë±â(Queue)ÇÏ°í ¼ø¼­¿¡ µû¶ó ÀÔ·Â(Dequeue)µÇ´Â °ÍÀÌ´Ù. FIFO´Â °£´ÜÈ÷ ¸»ÇØ ½´ÆÛ¸¶ÄÏ¿¡¼­ ¹ú¾îÁö´Â µ·À» ³»·Á´Â °í°´°ú °°´Ù. ÁÙÀ» ¼­¼­ Â÷·Ê´ë·Î µ·À» ³»°í üũ¾Æ¿ôÇÏ¸ç ³ª°¡´Â °Í°ú °°Àº ÀÌÄ¡´Ù. Dequeue ´Â ¸í·ÉÀ» ¼öÇàÇÏ´Â ÀÛ¾÷À» ÀǹÌÇÏ´Â °ÍÀ¸·Î GCD¿¡¼­´Â ½ÇÁúÀûÀÎ ¿¬»êÀÛ¾÷ÀÌ ¹ú¾îÁö´Â thread(¾²·¹µå)¿¡ µé¾î°¡´Â °ÍÀ» ÀǹÌÇÑ´Ù.

±âº»ÀûÀ¸·Î GCD´Â ´Ù¸¥ ¿î¿µÃ¼Á¦¿Í ¸¶Âù°¡Áö·Î ±× ½ÃÀÛÀº FIFO¸¦ ±â¹ÝÀ¸·Î ÇÑ´Ù. GCD Queue°¡ FIFO ¹æ½Ä¿¡ µû¶ó Â÷·Ê´ë·Î ¼öÇàµÈ´Ù´Â °ÍÀÌ´Ù. Çåµ¥ ¿©±â¼­ ¿©·¯°¡Áö ÀÛ¾÷ ´ë±âÁßÀÎ QueueµéÀÌ ÁÖ¾îÁø ½Ã°£³»¿¡¼­ ÇѲ¨¹ø¿¡ º´·Ä 󸮰¡ µÈ´Ù. ±× º´·Äó¸®ÀÇ ´ÙÀ̾î±×·¥ÀÌ ´ÙÀ½ ¿¡´Ï¸ÞÀÌ¼Ç µ¿¿µ»ó¿¡¼­ È®ÀÎÇÒ ¼ö ÀÖ´Ù.


Grand Central Dispatch from Ars Technica on Vimeo.



¿¡´Ï¸ÞÀ̼ǿ¡¼­ º¸µíÀÌ Task B´Â Task A ÀÌÀü¿¡ ÀÛ¾÷¿Ï·áµÈ´Ù. ¸í·É¼öÇàÀº FIFO ¹æ½ÄÀ» ÀÌ¿ëÇÏÁö¸¸ ¸í·É ¿Ï·á´Â ´Ù¸¥´Ù´Â °ÍÀ» º¸¿©ÁÖ´Â °ÍÀÌ´Ù. ¶Ç 3°¡Áö ¸í·ÉÀÌ ´ë±â»óÅ¿´Áö¸¸ ¾²·¹µå´Â 2°³¸¸ »ç¿ëµÈ´Ù. GCDÀÇ °­·ÂÇÑ È¿À²¼ºÀ» ¼³¸íÇÏ´Â °ÍÀ̱⵵ ÇÏ´Ù. ¶Ç ¾²·¹µå°¡ ÇÊ¿äÇÒ¶§ ³ªÅ¸³ª¼­ ÁøÇàµÇ°í ÇÊ¿ä¾øÀ»¶§ »ç¶óÁø´Ù. µµµ¥Ã¼ ¾²·¹µå°¡ ¾î¶»°Ô ¿î¿µµÈ´Ù´Â °ÍÀϱî? GCD°¡ ¹Ù·Î °¢±â ´Ù¸¥ ¾²·¹µå ÁýÇÕü¸¦ ¿î¿µÇϸç ÇÊ¿äÇÒ¶§¸¶´Ù Queue¸¦ ¹Þ¾Æ¼­ ÇÊ¿äÇÑ ¾²·¹µå ±â´ÉÀ» ÀÛµ¿Çϵµ·Ï °ü¸®ÇÏ´Â °ÍÀÌ´Ù.

ÀÌ·± ±â´ÉÀº GCD µðÀÚÀÎÀÇ ÇÙ½ÉÀ̶ó°íµµ ÇÒ ¼ö ÀÖ´Ù. ÇöÀç ¿î¿µÃ¼Á¦¿¡¼­ °¡Àå ¾î·Æ´Ù°í ¾Ë·ÁÁø ÀÛ¾÷ÀÌ ¾¾Ç»ÀÇ ÀÛ¾÷¼º´ÉÀ» À¯ÁöÇϱâ À§ÇØ ÁÖ¾îÁø ƯÁ¤ ½Ã°£³»¿¡¼­ ¾ó¸¶³ª ¸¹Àº ¾²·¹µå¸¦ ÀÌ¿ëÇؾßÇÏ´Â °¡ÀÌ´Ù. ³Ê¹« ÀûÀ¸¸é ¾ÆÀÌµé ¹®Á¦°¡ ¹ß»ýÇÏ°í ³Ê¹« ¸¹Àº¸í °úºÎÇÏ°¡ °É¸°´Ù. ¶Ç °ü¸®°¡ µÇÁö ¾ÊÀ¸¸é ½Ã½ºÅÛÀº ½º½º·Î ÇÊ¿äÇÑ ¾²·¹µå¸¦ °è»êÇÏ°í ¾î´À Äھ ÀÛ¾÷À» ³ÖÀ»°ÍÀΰ¡¸¦ ¾Ë¾Æ³»±â À§ÇØ È¥ÀÚ °è»êÇϴµ¥ ½Ã°£À» ¼Ò¸ðÇÏ°Ô µÈ´Ù.

¶Ç Áö±Ý ¾ê±âÇÏ´Â °ÍÀº ÇÑ°³ÀÇ ¾îÇø®ÄÉÀ̼ÇÀÌ ÀÛ¾÷À» ¼öÇàÇϱâ À§ÇØ ¸î°³ÀÇ ¾²·¹µå¿Í Äھ »ç¿ëÇÒ °ÍÀΰ¡¸¦ ³íÇÏ´Â °ÍÀÌÁö¸¸ ½ÇÁ¦»óȲ¿¡¼­ °ú¿¬ ½Ã½ºÅÛ¿¡¼­ ÇÑ°³ÀÇ ¾îÇø¸ÀÌ ÀÛµ¿ÇÏ´Â °ÍÀÌ³Ä ¾Æ´Ï³Ä°¡ ¶ÇÇÑ °í·ÁµÅ¾ßÇÒ Æ÷ÀÎÆ®´Ù.

¸¸¾à 8 ÄÚ¾î ½Ã½ºÅÛ¿¡¼­ 6°³ÀÇ ¾²·¹µå°¡ ÀÛµ¿ÁßÀ̶ó°í °¡Á¤ÇÒ¶§ 4°³ÀÇ »õ·Î¿î ¾²·¹µå¸¦ ½ÃÀÛÇ϶ó°í Ãß°¡ÇÑ´Ù¸é ¿î¿µÃ¼Á¦´Â ³²Àº 2°³ÀÇ Äھ 4°¡Áö ¾²·¹µå¸¦ ÇÒ´çÇÏ´À¶ó ½Ã°£À» ¼Ò¸ðÇϸç Á¤½Å¾ø°ÔµÈ´Ù. ÇÏÁö¸¸ ¸¸¾à 6Äھ¼­ ÀÛµ¿ÇÏ´ø ¾²·¹µå°¡ ³¡³µ´Ù¸é ¾î¶»°ÔµÉ±î. 4°³ÀÇ ¾²·¹µå´Â °ð Àý¹ÝÀÇ Äھ È°¿ëÇÏ¸é µÇ´Â °Í¾Æ´Ñ°¡.
GCD°¡ ÇÏ´Â ÀÏÀÌ ¹Ù·Î ÀÌ·± ŸÀְ̹è»êÀ» Áö¿øÇÏ°í °í·ÁÇؼ­ ÀÛ¾÷ºÐ¹è¸¦ ÇÑ´Ù. ¾î´À ¿î¿µÃ¼Á¦¿¡¼­µµ ¾ÖÇà GCD¿Í °°Àº ±â´ÉÀ» Á¦°øÇÏÁö ¸øÇÑ´Ù.

´ÜÀûÀ¸·Î ¸»ÇÏÀÚ¸é ÁÖ¾îÁø ƯÁ¤ ½Ã°£³»¿¡¼­ ÃÖ»óÀÇ ¾²·¹µå Á¶ÇÕÀÌ °¡¿ëµÇ°í ÇÏ´Â °ÍÀ» GCD°¡ ¸ðµÎ °áÁ¤ÇÏ´Â °ÍÀÌ´Ù. Áö±Ý±îÁö ¼öÇàµÅ¾ßÇÒ QueueµéÀÌ ±âµÑ¸®°í ±âµÑ·Á¼­ ÇϳªÇϳª 󸮵Ǵ °Í°ú ´Þ¸® 󸮽ð£À» ÀÎÁöÇÏ°í, ¾²·¹µå ¼ö¸¦ Á¶Á¤ÇÏ°í °¢ ¾²·¹µå¸¦ ÀûÀýÇÏ°Ô Äھ ºÐ¹èÇÏ´Â µîÀÇ ÀÛ¾÷À» GCD°¡ ¸¶Ä¡ »ý°¢ÇÏ´Â »ç¶÷ó·³ ÁøÇà½ÃÄÑÁÖ´Â °ÍÀÌ´Ù.

ÇÁ·Î±×·¡¸Ó°¡ ÇؾßÇÒ ÀÏÀº ¾¾Ç»¿¡ ÀÛ¾÷ÇÒ´ç ¹æ¹ýÀ» °è»êÇس»´Â°ÍÀÌ ¾Æ´Ï¶ó ÀÚ½ÅÀÇ ÇÁ·Î±×·¥ÀÌ ¾î¶»°Ô GCD¿Í ¿¬°á½ÃÄÑÁÙ °ÍÀΰ¡¸¸ °í¹ÎÇϸéµÈ´Ù. ¶Ç ÀÌ ¿¬°áÀÛ¾÷Àº ¾Õ¼­ ¸»ÇÑ LLVM/Clang ±×¸®°í Block µî ¾ÖÇÃÀÌ Á¦°øÇÏ´Â API¸¦ ÅëÇØ ´õ ½±°í ´õ ºü¸£°í ´Ü¼øÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù.

¾²·¹µå¸¦ ¸î°³³ª ¸¸µé¾î¾ßÇϳĴ °ÍÀ» °ÆÁ¤ÇÒ ÇÊ¿ä°¡¾ø´Ù. ¸¸¾à ¾îÇø®ÄÉÀ̼ÇÀ» Á¦ÀÛÇϴµ¥ 500°¡Áö Concorrent task°¡ ÀÖ´Ù¸é 500°³ÀÇ GCD Queues¸¸ ¸¸µé¾î³õÀ¸¸é µÈ´Ù. ´õÀÌ»óÀÇ ÀÏÀÌ ÇÊ¿äÇÑ°Ô ¾Æ´Ï´Ù. ³ª¸ÓÁö´Â GCD°¡ ¾Ë¾Æ¼­ ºÐ¹èÇÏ°í ¾²·¹µå¸¦ ¸¸µé¾î³»´Â °ÍÀÌ´Ù. ¹°·Ð Queue¿¡µµ ¿ì¼±¼øÀ§ ·¹º§ÀÌ ÁÖ¾îÁø´Ù. ¾ó¸¶³ª ÀÚÁÖ ±ÞÇÏ°Ô »ç¿ëµÇ¾ßÇϴ°¡¿¡ µû¶ó ¾²·¹µåÀÇ ºÐ¹è°¡ ´Þ¶óÁø´Ù.

´õ¿í Áß¿äÇÏ°Ô´Â Çϵå¿þ¾î Á¦Á¶»çµéÀÌ ÄÚ¾î¼ö¸¦ ´õ ´Ã¸°´ÙÇصµ ÇÁ·Î±×·¡¸Ó°¡ °ÆÁ¤Çϰųª º¯°æÇØ¾ß ÇÒÀÏÀÌ ´õÀÌ»ó ¾ø´Ù. ±×·£µå ¼¾Æ®·² µð½ºÆÐÄ¡°¡ ¾Ë¾Æ¼­ ÇØÁÖ´Â ¿ªÇÒÀ̱⠶§¹®ÀÌ´Ù.
¿ø±Û Æ÷½ºÆà Ãâó : http://x86osx.com/bbs/view.php?id=freeboard&no=19869

comment : (0)

      [Save a Comment]

[Prev]
 LA
 SEOUL
   JP
   Mission Viejo, CA,
   United States
   THE GREEN FUSE (RSS ±¸µ¶)
   LaymenBlog
   x86osx.com