Æ÷Ä¿½º iN
¶óÀÌ¡½ºÅ¸
  • ±èÇÑÁØ
  • ¿¬¼¼´ëÇб³ Àü±âÀüÀÚ°øÇкÎ
  • hanjun@yonsei.ac.kr

¢º °£·«ÇÑ ¼Ò°³ ºÎŹµå¸³´Ï´Ù.


   ¾È³çÇϼ¼¿ä. Àú´Â ¿¬¼¼´ëÇб³ Àü±âÀüÀÚ°øÇкο¡ ÀçÁ÷ ÁßÀÎ ±èÇÑÁØÀÔ´Ï´Ù. 2007³â¿¡ ¼­¿ï´ëÇб³ Àü±â°øÇкθ¦ Á¹¾÷ÇÏ°í, Princeton´ëÇб³ Computer Science¿¡¼­ 2009³â°ú 2013³â¿¡ °¢°¢ ¼®»ç¿Í ¹Ú»çÇÐÀ§¸¦ ¹Þ¾Ò½À´Ï´Ù. ÇÐÀ§ Ãëµæ ÈÄ¿¡´Â Æ÷Ç×°ø°ú´ëÇб³ âÀÇITÀ¶ÇÕ°øÇаú¿Í ÄÄÇ»ÅÍ°øÇаú¿¡¼­ °âÁ÷À¸·Î ±Ù¹«¸¦ ÇßÀ¸¸ç, ÀÌÈÄ 2018³â 9¿ù¿¡ ¿¬¼¼´ëÇб³ Àü±âÀüÀÚ°øÇкηΠ¿Å°Ü ÇöÀç ºÎ±³¼ö·Î ±Ù¹«ÇÏ°í ÀÖ½À´Ï´Ù.



¢º ÁÖ¿ä ¿¬±¸ ºÐ¾ß¿¡ ´ëÇÑ ¼Ò°³ ºÎŹµå¸³´Ï´Ù.


   Á¦ ¿¬±¸ ºÐ¾ß´Â ÄÄÆÄÀÏ·¯ ÃÖÀûÈ­ÀÔ´Ï´Ù. ÄÄÆÄÀÏ·¯¶õ ÇÁ·Î±×·¡¸Ó°¡ ±¸ÇöÇÑ ÇÁ·Î±×·¥À» ÄÄÇ»ÅÍ°¡ ¾Ë¾ÆµéÀ» ¼ö ÀÖµµ·Ï ¹ø¿ªÀ» ÇØÁÖ´Â ÇÁ·Î±×·¥À¸·Î, ÀÌ·¯ÇÑ ÄÄÆÄÀÏ·¯¸¦ °³¹ßÇϱâ À§ÇÑ ¿¬±¸¸¦ ÇÏ°í ÀÖ½À´Ï´Ù. ¿¬±¸ ¸ñÀûÀ» ¸»ÇÏÀÚ¸é, ÇÁ·Î±×·¡¸Ó°¡ ÇÁ·Î±×·¥À» ½±°Ô °³¹ßÇÒ ¼ö ÀÖµµ·Ï °³¹ß ȯ°æÀ̳ª ÇÁ·Î±×·¥ ¾ð¾î¸¦ Á¦¾ÈÇÏ°í, ±×·± ´ÙÀ½¿¡ ÃÖÀûÈ­¸¦ Çϸ鼭 ¾î¶»°Ô ÇÏ¸é ´õ ºü¸£°Ô ÇÁ·Î±×·¥À» ±¸µ¿ÇÒ ¼ö ÀÖÀ» °ÍÀΰ¡, ¾î¶»°Ô Çϸé Àü·ÂÀ» ´ú ¼Ò¸ðÇϸ鼭 ±¸µ¿ÇÒ ¼ö ÀÖÀ» °ÍÀΰ¡, ¾Æ´Ï¸é ÇÁ·Î±×·¥À» ´õ ¾ÈÀüÇÏ°Ô ±¸µ¿ÇÒ ¼ö ÀÖÀ» °ÍÀΰ¡¿Í °°Àº ÃÖÀûÈ­ ºÎºÐµéÀ» ¿¬±¸ÇÏ°í ÀÖ½À´Ï´Ù. 

   ÀúÈñ ¿¬±¸½Ç¿¡¼­´Â ÁÖ·Î C¿Í C++ ÄÄÆÄÀÏ·¯¸¦ ¿¬±¸ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é Çϵå¿þ¾î Äڵ带 ½±°Ô ¸¸µé ¼ö ÀÖµµ·Ï º¯ÇüÀ» ÇØÁÖ´Â High-level Synthesis ¿¬±¸¸¦ Çß¾ú°í, TensorFlow³ª PyTorch¿Í °°Àº ÀΰøÁö´É ÇÁ·Î±×·¥µéÀ» »õ·Î¿î °¡¼Ó±â¿¡ ¸ÂÃç¼­ ÃÖÀûÈ­¸¦ ÇØÁشٰųª, »ç¹°ÀÎÅÍ³Ý ÇÁ·Î±×·¥µéÀ» º¸´Ù Æí¸®ÇÏ°Ô ±¸ÇöÇÒ ¼ö ÀÖµµ·Ï ¿¬±¸È¯°æÀ» Á¦°øÇØÁÖ´Â ÄÄÆÄÀÏ·¯ ÇÁ·¹ÀÓ¿öÅ©¸¦ ¸¸µç´Ù°Å³ª ȤÀº ¾ÏȣȭµÈ »óÅ¿¡¼­ ¿¬»êÀ» Áö¿øÇϱ⿡ ¼öÇà ½Ã°£ÀÌ ¿À·¡ °É¸®´Â µ¿Çü ¾ÏÈ£ ÇÁ·Î±×·¥À» È¿À²ÀûÀ¸·Î ±¸µ¿ÇÏ´Â ÃÖÀûÈ­ ±â¹ý µîÀ» ¿¬±¸ ÁøÇàÇÏ°í ÀÖ½À´Ï´Ù. 



¢º 2020³âµµ ÀþÀºÁ¤º¸°úÇÐÀÚ»ó(KIISE/IEEE-CS Young Computer Researcher Award)À» ¼ö»óÇϽŠ¼Ò°¨À» ¸»¾¸ÇØ ÁÖ¼¼¿ä. 


   ¾ÆÁÖ °úºÐÇÑ »óÀ̶ó°í »ý°¢ÇÕ´Ï´Ù. Àúº¸´Ù ÈξÀ ¿¬±¸¸¦ Àß ÇϽô ºÐµéµµ ¸¹ÀÌ °è½Åµ¥, °¨»çÇÏ°Ôµµ ¸¹Àº ºÐµéÀÌ µµ¿ÍÁּż­ Á¦°¡ ¼ö»óÀ» ÇÏ°Ô µÈ °Í °°½À´Ï´Ù. ¿äÁò ÄÄÇ»ÅÍ ½Ã½ºÅÛ ¼ÒÇÁÆ®¿þ¾î ºÐ¾ß°¡ ´õ¿í Áß¿äÇØÁö°í À־ ¾Æ¸¶µµ Á¦°¡ ¼ö»óÇÏ°Ô µÈ °Í °°½À´Ï´Ù. ´õ ¿­½ÉÈ÷ Ç϶ó´Â ¶æÀ¸·Î ¹Þ¾ÆµéÀÌ°í, ¾ÕÀ¸·Î ´õ¿í ¿­½ÉÈ÷ ¿¬±¸Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù. 



¢º ÀÌ ºÐ¾ß¸¦ ¼±ÅÃÇϽŠ°è±â°¡ ÀÖ´Ù¸é ¸»¾¸ÇØ ÁÖ¼¼¿ä.


   ÀúÀÇ °æ¿ì´Â ¹Ú»ç°úÁ¤¿¡ µé¾î°¡¸é¼­ ÀÌ Àü°øÀ» ¼±ÅÃÇÏ°Ô µÇ¾ú½À´Ï´Ù. À¯ÇÐÀ» °¡±â Àü, ¾î´À ºÐ¾ß¸¦ ´õ °øºÎÇÒ±î °í¹ÎÀ» ÇÏ´Ù°¡ ÄÄÇ»ÅÍ ±¸Á¶¿Í °ü·ÃµÈ ºÎºÐµéÀÌ ±²ÀåÈ÷ Àç¹Õ¾î¼­ ÀÌÂÊÀ¸·Î ÁøÇÐÇÏ°Ô µÇ¾ú½À´Ï´Ù. Á¦°¡ ´ëÇпø ÁøÇÐÀ» ÇÏ°Ô µÉ ´ç½Ã ¸ÖƼÄÚ¾î µîÀÌ À̽´°¡ µÇ°í ¿¬±¸µµ È°¹ßÈ÷ ÁøÇàµÇ°í ÀÖ¾ú´Âµ¥ ±×¶§ Áß¿äÇß´ø À̽´ Áß Çϳª°¡ Core´Â ¿©·¯ °³°¡ Àִµ¥ ÀÌ°ÍÀ» ¾î¶»°Ô ÇÏ¸é ´Ù °°ÀÌ È¿À²ÀûÀ¸·Î ¾µ °ÍÀΰ¡, Áï Çϵå¿þ¾î´Â Áغñ°¡ µÆ´Âµ¥ ¼ÒÇÁÆ®¿þ¾î ÂÊ¿¡¼­ º´·Ä Áö¿ø ¹æ½ÄÀÌ ÁÖ¿ä ¹®Á¦¿´½À´Ï´Ù. µû¶ó¼­ ÀÌ·¯ÇÑ ºÎºÐµéÀ» ÀÚµ¿À¸·Î º´·ÄÈ­ÇØÁÖ´Â ÀÚµ¿º´·ÄÈ­ ±â¼ú ÂÊÀ¸·Î ¿¬±¸¸¦ ÇÏ¿´°í, ÄÄÆÄÀÏ·¯ Áö¿øÀÌ ±²ÀåÈ÷ ¸¹ÀÌ ÇÊ¿äÇÏ°Ô µÇ¾ú°í, ±×·¯¸é¼­ Àúµµ ÄÄÆÄÀÏ·¯ ¿¬±¸¸¦ ÇÏ°Ô µÇ¾ú½À´Ï´Ù. 



¢º ¿¬±¸È°µ¿À» ÇϽø鼭 Ưº°È÷ ´À³¢½Å Á¡ÀÌ ÀÖ´Ù¸é ¸»¾¸ÇØ ÁÖ¼¼¿ä.


   ÄÄÆÄÀÏ·¯ ¿¬±¸´Â ½ÇÁ¦ ÄÄÆÄÀÏ·¯ ÇÁ·¹ÀÓ¿öÅ© ½Ã½ºÅÛÀ» ¸¸µé¾î¾ß ÇÏ°í, ±×¸®°í Á÷Á¢ ÄÄÇ»ÅÍ¿¡¼­ µ¿ÀÛÀ» ÇÏ´Â ºÎºÐ±îÁö ´Ù ÇÑ ´ÙÀ½¿¡¾ß ±¸ÇöÀ» Çß´Ù°í ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. À̸¦Å׸é A¶ó´Â ¾ÆÀ̵ð¾î°¡ Àִµ¥, A¶ó´Â ¾ÆÀ̵ð¾î´Â ÀÌ¹Ì ´Ù ±¸ÇöÇßÁö¸¸ ±× ¿ÜÀûÀÎ ºÎºÐµé ¶§¹®¿¡ ¼º´ÉÀÌ ¾È ³ª¿À´Â °æ¿ì°¡ ¸¹½À´Ï´Ù. ±×·¯ÇÑ ¿ÜÀûÀÎ ºÎºÐµé±îÁö ¸ðµÎ ±¸ÇöÀ» ÇÏ´Ùº¸¸é ½Ã°£ÀÌ ±²ÀåÈ÷ ¸¹ÀÌ °É¸³´Ï´Ù. ÇÏÁö¸¸ ÀÌ·¯ÇÑ ÄÚ³Ê ÄÉÀ̽ºµéÀ» ¼öÇàÇϸ鼭 ½ÇÁ¦ ÁøÇàµÇ´Â ºÎºÐµéÀ» º¸°Ô µÇ¸é ¡°³»°¡ ¸¸µç °Ô ÁøÂ¥ Àß µ¿ÀÛÇϴ±¸³ª.¡± ¶ó´Â »ý°¢¿¡ »ÑµíÇÔÀ» ´À³¢±âµµ ÇÕ´Ï´Ù. ¹°·Ð ÀÌ·¯ÇÑ ¸ðµç °ÍÀ» ÇϳªÇϳª ´Ù ¸¸µé¾î¾ß Çϱ⿡ ±²ÀåÈ÷ ¿À·£ ½Ã°£ÀÌ °É¸®°í ¸¹Àº ³ë·ÂÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÇÑÆíÀ¸·Î´Â Èûµé±âµµ ÇÏÁö¸¸, ¸¶Áö¸·¿¡ °á°ú°¡ Àß ³ª¿À´Â °É º¸¸é »ÑµíÇϸ鼭 º¸¶÷µµ ´À³¢°í ½ÇÁ¦·Î ÀÛµ¿ÇÑ´Ù´Â ºÎºÐ¿¡¼­ ±²ÀåÈ÷ ÀÇÀÇ°¡ ÀÖ´Ù°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. 



¢º °ü·Ã ºÐ¾ßÀÇ ÇöÀç Æ®·»µå¿Í ÇâÈÄ ¿¬±¸ ¹× ±â¼ú Àü¸Á¿¡ ´ëÇÑ ¼Ò°ßÀ» ¸»¾¸ÇØ ÁÖ¼¼¿ä.


   ÇöÀç ÀúÈñ°¡ ¿¬±¸ÇÏ°í ÀÖ´Â ÄÄÆÄÀÏ·¯ ºÐ¾ßÀÇ ÁÖ¿ä Æ®·»µå´Â µµ¸ÞÀΠƯÁ¤ ÃÖÀûÈ­¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, µö·¯´× ¾ÖÇø®ÄÉÀ̼Çó·³ ƯÁ¤ ºÐ¾ß ¾ÖÇø®ÄÉÀ̼ÇÀÌ ±²ÀåÈ÷ ¸¹ÀÌ ¾²ÀÌ°Ô µÇ°í, ±×¿¡ µû¸¥ °¡¼Ó±â, Çϵå¿þ¾îµéÀÌ ³ª¿À´Âµ¥ ÄÄÆÄÀÏ·¯ ¶ÇÇÑ ±× ƯÁ¤ µµ¸ÞÀÎÀÇ °¡¼Ó±â¿Í ¾ÖÇø®ÄÉÀ̼ǿ¡ ´ëÇØ ÃÖÀûÈ­µÇ´Â ºÎºÐµéÀÌ ¸¹ÀÌ ¹ßÀüÇÏ°í ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, TensorFlow Complier Framework, PyTorchó·³ °è¼Ó ƯÁ¤ ÇÁ·¹ÀÓ¿öÅ©¸¦ Áö¿øÇÏ°í, ±×¸®°í TPU¸¦ À§ÇÑ ÄÄÆÄÀÏ·¯³ª ´Ù¸¥ NPU¸¦ À§ÇÑ ÄÄÆÄÀÏ·¯µéÀÌ ¸¸µé¾îÁö´Â °Íó·³ ÄÄÆÄÀÏ·¯ ±â¼úµéÀÌ µµ¸ÞÀο¡ ¸ÂÃç ÃÖÀûÈ­ÇÏ´Â ¹æÇâÀ¸·Î ¹ßÀüÇÏ°í ÀÖ½À´Ï´Ù. µö·¯´× ¿Ü¿¡µµ º¸¾È ºÐ¾ß °°Àº »õ·Î¿î µµ¸ÞÀÎÀÌ ÁÖ¸ñ¹Þ´Â´Ù¸é, ÇØ´ç µµ¸ÞÀο¡ ¸ÂÃç ÃÖÀûÈ­¸¦ ÇØÁְųª °¡¼Ó±â¸¦ ¸¸µé¸é ±× °¡¼Ó±â¸¦ Áö¿øÇÏ´Â ½ÄÀ¸·Î ¹ßÀüÇÒ °Í °°½À´Ï´Ù. ´Ù½Ã ¸»Çϸé, ¿¹Àüó·³ ÀϹÝÀûÀÎ ÇÁ·Î±×·¥µéÀ» ´Ù Áö¿øÇØÁÖ´Â ÃÖÀûÈ­°¡ µÈ´Ù±âº¸´Ù´Â ƯÁ¤ µµ¸ÞÀο¡ ¸ÂÃç ÃÖÀûÈ­¸¦ ÇÏ´Â ¹æÇâÀ¸·Î ¹ßÀüÇØ ³ª°¥ °ÍÀÔ´Ï´Ù. 

   ±×·³¿¡µµ ºÒ±¸ÇÏ°í ¸¸¾à ÀÌ ºÐ¾ß¿¡ ´ëÇؼ­ ¿¬±¸¸¦ ÇϽðڴٰí ÇÑ´Ù¸é ¹«Á¶°Ç Core ±â¼úÀÌ °¡Àå Áß¿äÇÏ´Ù°í »ý°¢ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ÀΰøÁö´É¿¡ ´ëÇØ ÃÖÀûÈ­¸¦ ÇÑ´Ù°í Çϸé, ÀΰøÁö´ÉÀÌ ¾î¶»°Ô µ¹¾Æ°¡´ÂÁö, ¿©±â¿¡ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¾î¶»°Ô µ¹¾Æ°¡´ÂÁö ºÐ¸íÈ÷ ÀÌÇظ¦ ÇØ¾ß ÇÏ°í, °¡¼Ó±â°¡ ¾î¶² ±¸Á¶·Î ¸¸µé¾îÁ³´ÂÁö ÀÌÇظ¦ ÇÑ ´ÙÀ½¿¡ ÃÖÀûÈ­¸¦ ÇØ¾ß ÇÕ´Ï´Ù. ÇÏÁö¸¸ ±×¿¡ ¾Õ¼­¼­ ÄÄÆÄÀÏ·¯°¡ ¾î¶² ½ÄÀ¸·Î ÇÁ·Î±×·¥À» ÀÌÇØÇÏ°í, ¾î¶² ½ÄÀ¸·Î Çϵå¿þ¾î¿¡ ¸ÂÃç¼­ Äڵ带 »ý¼ºÇس»´ÂÁö¸¦ ¸ÕÀú ÀÌÇØÇÏ°í ÀÖ¾î¾ß ¶Ç ´Ù¸¥ µµ¸ÞÀÎÀÌ Æ®·»µå°¡ µÇ°í Áß¿äÇÏ°Ô µÇ¾úÀ» ¶§, ±×·¯ÇÑ ÇÙ½É ±â¼úµéÀ» °¡Áö°í ´Ù½Ã Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¡¼­ Core ±â¼úÀÌ °¡Àå Áß¿äÇÕ´Ï´Ù. ¹°·Ð, È­µÎ°¡ µÇ°íÀÖ´Â µµ¸ÞÀε鿡 ´ëÇÑ ÀÌÇصµ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù°í »ý°¢ÇÕ´Ï´Ù. 



¢º ±³¼ö´Ô¿¡°Ô ¿µÇâÀ» ¹ÌÄ£ Àι° ¶Ç´Â ±Í°¨À¸·Î »ïÀ¸½Ã´Â ¿¬±¸ÀÚ°¡ ÀÖ´Ù¸é?


   ÀúÀÇ °æ¿ì µÎ ºÐÀÌ °è½Ê´Ï´Ù. ÇÑ ºÐÀº ÀúÀÇ ¹Ú»ç Áöµµ±³¼ö´ÔÀ̽ŠÇÁ¸°½ºÅÏ ´ëÇб³ÀÇ David I. August ±³¼ö´ÔÀÔ´Ï´Ù. ÀÏ´Ü ¿¬±¸ÀûÀÎ Ãø¸é¿¡¼­ ±²ÀåÈ÷ ¸¹Àº ¿µÇâÀ» Áּ̽À´Ï´Ù. ¾î¶»°Ô ÇÏ¸é ¹®Á¦¸¦ Á¢±ÙÇÏ´ÂÁö, ±×¸®°í ¹®Á¦¸¦ ¾î¶»°Ô Ç®¾î³»´ÂÁö¿¡ ´ëÇØ ¸¹Àº °¡¸£Ä§À» ÁÖ¼ÌÀ¸¸ç, Çлýµé°úÀÇ °ü°è¿¡ À־µµ ¸¹Àº ¿µÇâÀ» Áּ̽À´Ï´Ù. óÀ½ ÇкΠÁ¹¾÷ÇÏ°í °¬À» ¶§¿¡´Â ¿¬±¸ ÁÖÁ¦¸¦ Á¤ÇÏ´Â ¹ý, ³í¹® Àд ¹ý µîÀ» Àß ¸ô¶ú´Âµ¥ Áöµµ±³¼ö´ÔÀÇ µµ¿òÀ¸·Î ¸¹ÀÌ ¹ßÀüÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. ¶Ç ´Ù¸¥ ÇÑ ºÐÀº Æ÷Ç×°ø´ë ÀçÁ÷ ´ç½Ã ÄÄÇ»ÅÍ°øÇаú ÇаúÀå´ÔÀ̴̼ø ±èÁ¾ ±³¼ö´ÔÀÔ´Ï´Ù. ±èÁ¾ ±³¼ö´Ô²²¼­´Â Çаú¿¡¼­ ÇлýµéÀ» À§ÇÑ ÇÁ·Î±×·¥À» ¸¹ÀÌ ¸¸µå¼Ì´Âµ¥, ±×¶§ ±×·¯ÇÑ È°µ¿À» °°ÀÌ Çϸ鼭 "¾Æ ÀÌ·± ºÎºÐµéÀÌ ÇкΠ±³À°¿¡ À־ ±²ÀåÈ÷ Áß¿äÇϱ¸³ª." "ÇлýµéÀÌ ÀÌ·± ½ÄÀ¸·Î »ý°¢Çϴ±¸³ª" "ÀÌ·± ±³·ù¸¦ ¾î¶»°Ô ÇØ¾ß Çϴ±¸³ª" µîÀ» ±³¼ö´ÔÀ» ÅëÇØ ¸¹ÀÌ ¹è¿üÀ¸¸ç, ÇкΠ±³À°ÀÇ Á߿伺¿¡ ´ëÇؼ­µµ »ý°¢ÇÏ°Ô µÇ¾ú½À´Ï´Ù. 



¢º Ưº°È÷ ±â¾ï¿¡ ³²°Å³ª ÁÁ°Ô Æò°¡ÇÏ´Â ÀÚ½ÅÀÇ ³í¹®ÀÌ ÀÖ´Ù¸é ¸»¾¸ÇØ ÁÖ¼¼¿ä.


   ¹«¾ùº¸´Ùµµ Á¦ ù ¹ø° ÁÖÀúÀÚ ³í¹® ¡ºScalable Speculative Parallelization on Commodity Clusters¡»ÀÌ °¡Àå ±â¾ï¿¡ ³²½À´Ï´Ù. ¾Æ¹«·¡µµ ù ÁÖÀúÀÚ ³í¹®ÀÌ´Ùº¸´Ï ¾ÖÁ¤ÀÌ ¸¹ÀÌ °¡°í, ¶Ç ±²ÀåÈ÷ ÁÁÀº Æò°¡¸¦ ¹Þ±âµµ ÇÏ¿©¼­ Áöµµ±³¼ö´Ôµµ ¹«Ã´ ÁÁ¾ÆÇϼ̽À´Ï´Ù. ÀÌ ³í¹®Àº ÀÚµ¿º´·ÄÈ­ ¿¬±¸¿¡ ´ëÇÑ ³»¿ëÀ̾ú´Âµ¥, ¿¹ÃøÀûÀÎ ±â¹ýÀ¸·Î º´·ÄÈ­¸¦ ÇÏ´Â °æ¿ì, ¸¸¾à ¿¹ÃøÀÌ Æ²¸®¸é º¸¿ÏÀ» ÇÏ¿© º¹±¸¸¦ ÇØÁà¾ß ÇÏ´Â ±â¼úµéÀÌ ÇÊ¿äÇÕ´Ï´Ù. Çϵå¿þ¾î¸¦ Çϳªµµ °íÄ¡Áö ¾Ê°í ¼ÒÇÁÆ®¿þ¾î¸¸À¸·Î Ŭ·¯½ºÅÍ¿¡ ÀÖ´Â ±²ÀåÈ÷ ¸¹Àº ÄÄÇ»ÅÍ Äھ ´ëÇؼ­ º´·ÄÈ­¸¦ Çß°í, ±× ºÎºÐ¿¡ ´ëÇؼ­ ¿¹ÃøÀûÀÎ º´·Ä ±â¼úµéÀ» Áö¿øÇØÁÖ´Â ±â¼úÀ» °³¹ßÇߴµ¥, ¸¹Àº ºÐµéÀÌ ÁÁ°Ô Æò°¡ÇØÁּż­ ±²ÀåÈ÷ ÁÁÀº Á¡¼ö¸¦ ¹Þ¾Æ ÃâÆǵǾú½À´Ï´Ù.



¢º µµ¿òÀÌ µÉ ¸¸ÇÑ ºÐ¾ß °ü·Ã »çÀÌÆ® ¶Ç´Â ¼­ÀûÀÌ ÀÖ´Ù¸é Ãßõ ºÎŹµå¸³´Ï´Ù.


   ÄÄÆÄÀÏ·¯ ºÐ¾ß¿¡¼­ °¡Àå À¯¸íÇÑ Ã¥Àº Alfred V. Aho°¡ ¾´ ¡ºDragon Book¡»ÀÔ´Ï´Ù. ±²ÀåÈ÷ À¯¸íÇؼ­ ÀÐÀ¸½Ã¸é ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÔ´Ï´Ù. ±×¸®°í ¶Ç Çϳª´Â ÇÁ¸°½ºÅÏ ´ëÇб³ÀÇ Andrew W. AppelÀÌ ¾´ ¡®Tiger¡¯ Ã¥ ¡ºModern Compiler Implementation in C/Java/ML¡»ÀÌ ÀÖ½À´Ï´Ù. Complier Implementation °ü·Ã Ã¥Àε¥, ±²ÀåÈ÷ ÀÌÇØÇϱ⠽±°Ô ¾²¿© ÀÖ½À´Ï´Ù. ±×·¡¼­ óÀ½ ÄÄÆÄÀÏ·¯¸¦ Á¢ÇϽô ºÐµéÀÌ ÀÌ Ã¥À» º¸½Ã°Ô µÇ¸é, ÇϳªÇϳª µû¶ó°¡¸é¼­ ¡¯ÄÄÆÄÀÏ·¯¸¦ ÀÌ·¸°Ô ±¸ÇöÇÏ´Â °Å±¸³ª.¡®¸¦ ½±°Ô ¹è¿ï ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·¸´Ù°í Çؼ­ ³»¿ëÀÌ ¾ø°Å³ª ºüÁö°Å³ª ±×·¸Áö´Â ¾Ê°í ´Ù¸¥ Ã¥µé¿¡ ÀÖ´Â °ü·Ã ³»¿ëµéµµ ´Ù Àֱ⠶§¹®¿¡ Àú´Â ÀÌ Ã¥À» °¡Àå ¸¹ÀÌ ÃßõÇÕ´Ï´Ù.



¢º ÀÌ ºÐ¾ß·Î ÁøÇÐÇÏ·Á´Â ÈĹèµé(¶Ç´Â À¯ÇÐ Áغñ»ý)¿¡°Ô ÇÊ¿äÇÑ Áö½Ä°ú ÀÚ¼¼¿¡ ´ëÇÑ Á¶¾ð ºÎŹµå¸³´Ï´Ù.


   ÀÌ ºÐ¾ß¿¡¼­ °¡Àå Áß¿äÇÑ ´ö¸ñÀº ¾Æ¸¶µµ 'ÂüÀ»¼º'ÀÌ ¾Æ´Ò±î ½Í½À´Ï´Ù. ÀúÈñ °°Àº °æ¿ì´Â º¸Åë ³í¹® ÇÑ Æí ¾²·Á¸é 2³â Á¤µµ ÅõÀÚÇؼ­ ¿¬±¸¸¦ ÇÑ ´ÙÀ½¿¡, ÇѵΠÆíÀÇ ³í¹®ÀÌ ³ª¿À°Ô µË´Ï´Ù. ¿Ö³ÄÇÏ¸é ±¸ÇöÀ» óÀ½ºÎÅÍ ³¡±îÁö ´Ù ÇÏ°í, ½ÇÁ¦ µ¹¾Æ°¡´Â ½Ã½ºÅÛ À§¿¡¼­ ¾ÆÀ̵ð¾î¸¦ Ãß°¡Çϸ鼭 ³í¹®À» ¾²±â ¶§¹®¿¡ ±²ÀåÈ÷ ¸¹Àº Àγ»½ÉÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÇÏÁö¸¸ ºñ·Ï ¿À·£ ½Ã°£À» µé¿© ¾î¶² ÇÁ·Î±×·¥À» Çϳª ¸¸µé°í, ±×°ÍÀÌ ¿Ïº®ÇÏ°Ô µ¿ÀÛÇÒ ¼ö ÀÖµµ·Ï ±¸ÇöÀ» ÇÏ´Ùº¸¸é »ý°¢ ¿Ü·Î ±²ÀåÈ÷ ¸¹ÀÌ ¹è¿ì°Ô µË´Ï´Ù. ³í¹®ÀûÀÎ ¼º°ú Áï, ¾çÀûÀÎ ¼º°ú´Â Á¶±Ý ºÎÁ·ÇÒÁö ¸ð¸£°ÚÁö¸¸ µ¹ÀÌÄѼ­ »ý°¢Çغ¸¸é, 2³â ÀüÀÇ ¸ð½À, 1³â ÀüÀÇ Á¦ ¸ð½À°ú ºñ±³ÇØ º¼ ¶§ ±²ÀåÈ÷ ¸¹ÀÌ ¹ßÀüÇØ ÀÖ´Â ¸ð½ÀµéÀ» ¹ß°ßÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. Àúµµ ´ëÇпø»ý ½ÃÀý¿¡ ¿¬±¸¸¦ Çϸ鼭 ÀÔÇÐÇßÀ» ¶§´Â ÀÌ·¸°Ô ¹ßÀüÇߴµ¥, Á¹¾÷ÇÒ ¶§´Â ¿¾³¯¿¡ ±¸ÇöÇß´ø °Å¸¦ º¸¸é¼­ "¾î¶»°Ô ÀÌ·± ½ÄÀ¸·Î ±¸ÇöÇßÁö?" ÇßÀ» Á¤µµ·Î ¸¹ÀÌ ¹ßÀüÇØ ÀÖ¾ú½À´Ï´Ù. ÀÌ·± °æÇèÀ» Á¦°¡ ÁöµµÇÏ´Â ÇлýµéÇÑÅ×µµ ¹°¾îº¸¸é, Çлýµéµµ 1³â Àü¿¡ ºñÇؼ­ ±²ÀåÈ÷ ¸¹ÀÌ ¹ßÀüÇß´Ù°í Çϸ鼭 "¸î ³â Àü ´ëºñ Áö±ÝÀº ±²ÀåÈ÷ ´Ù¸£ÁÒ. ¿ÏÀüÈ÷ ´Ù¸£ÁÒ."¶ó°í ¸»ÇÏ°ï ÇÕ´Ï´Ù. µû¶ó¼­ Àγ»½ÉÀ» °®°í ²ÙÁØÈ÷ ÇÏ´Ù º¸¸é, ´çÀå ¾îÁ¦¿Í ¿À´ÃÀº ºñ½Áºñ½ÁÇØ º¸ÀÏÁö ¸ð¸£°ÚÁö¸¸, 1³â, 2³â ȤÀº ¹Ú»ç°úÁ¤±îÁö »ý±ãÇϸé 5~6³â µÚ¿¡´Â ±²ÀåÈ÷ ¸¹ÀÌ ¹ßÀüÇØ ÀÖ´Â ¸ð½ÀÀ» È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ¶Ç ±×¸¸Å­ ÁÁÀº °á°ú¸¦ ¾òÀ¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

   

   ±×¸®°í ¶Ç Çϳª Á¦°¡ ÇлýµéÇÑÅ× ÁöµµÇϸ鼭 ¸¹ÀÌ ÇØÁÖ´Â Á¶¾ðÀÌ ÀÖ½À´Ï´Ù. "¿©·¯ºÐµéÀÌ ¾î¶² ÀÏÀ» ÇϵçÁö ¹«¾ùÀÌµç º»ÀÎÀÇ ÁøÀÔÀ庮À» ³ôÀÏ ¼ö ÀÖ´Â ¿¬±¸³ª ÀÏÀ» ÇϽøé ÁÁÀ» °Í °°½À´Ï´Ù." ±×·¯´Ï±î Ä¿¸®¾î¸¦ ½×´Â´Ù°í ÇßÀ» ¶§, ¿¹¸¦ µé¸é Á¦°¡ ¾î¶² ÀÏÀ» ÇÏ¿© Ä¿¸®¾î¸¦ ½×¾Æ »ý±ä Àü¹®¼º¿¡ À־ "±×°Å 6°³¿ù¸¸ ¹è¿ì¸é ´ÙÇØ. ¾Æ´Ï¸é 3°³¿ù¸¸ ¹è¿ì¸é ³ªµµ Àú·¸°Ô ÇÒ ¼ö ÀÖ¾î." ¿Í °°Àº ÀÚ¼¼·Î Àü¹®¼ºÀ» ½×´Â´Ù¸é ¾Æ¹«·¡µµ º»ÀÎÀÇ ÁøÀÔÀ庮Àº 3°³¿ù, 6°³¿ù¹Û¿¡ µÇÁö ¾Ê½À´Ï´Ù. ±×·¯¸é ´Ù¸¥ »ç¶÷µéµµ ½±°Ô ±× Àü¹®¼ºÀ» ȹµæÇÏ´Â °ÍÀ̱⿡ º»ÀÎÀÇ °æÀï·ÂÀº ³·¾ÆÁú ¼ö¹Û¿¡ ¾øÀ» °Í °°½À´Ï´Ù. ÇÏÁö¸¸ "³»°¡ °¡Áø Àü¹®¼ºÀ» µû¶ó¿À·Á¸é ÇÑ 2~3³âÀÌ °É¸°´Ù." ¶ó°í ÇÑ´Ù¸é, »õ·Î¿î ȸ»ç³ª ¾î¶² ºÐ¾ß¿¡¼­ ±×¿¡ ¸Â´Â Àü¹®¼ºÀ» °¡Áø »ç¶÷À» ÇÊ¿ä·Î ÇÒ °æ¿ì "±×°Ç ³ª¹Û¿¡ ¾ÈµÅ." "³ª ¾Æ´Ï¸é ¾ÈµÅ" ¿Í °°Àº »óȲÀÌ µÉ ¼ö¹Û¿¡ ¾ø±â¿¡ º»ÀÎÀÇ ºÎ°¡°¡Ä¡°¡ ÈξÀ ´õ ¿Ã¶ó°¡°Ô µÇ°í, ´õ ÁÁÀº ±âȸ¸¦ ¾òÀ» ¼ö ÀÖÁö ¾ÊÀ»±î ½Í½À´Ï´Ù. ¾î·Á¿ïÁö ¸ð¸£°ÚÁö¸¸, "ÀÌ°ÍÀÌ ³»°¡ ÇÏ´Â ÀÏÀÇ ³ªÀÇ ºÎ°¡°¡Ä¡¸¦ ³ôÀÏ ¼ö ÀÖ´Ù, ÁøÀÔÀ庮À» ³ôÀÏ ¼ö ÀÖ´Ù, ³ªÀÇ °æÀï·ÂÀ» ³ôÀÏ ¼ö ÀÖ´Ù." ¶ó°í ÇÑ´Ù¸é ½Ãµµ¸¦ Çغ¸½Ã´Â °Íµµ ±²ÀåÈ÷ ÁÁ´Ù°í »ý°¢ÇÕ´Ï´Ù. 



¢º º»ÀÎÀ» Ç¥ÇöÇÏ°íÀÚ ÇÏ´Â Å°¿öµå¸¦ ²Å´Â´Ù¸é? 


   Àú´Â ¾Æ¸¶µµ '½ÇÆÐ' °°Áö ¾ÊÀ»±î ½Í½À´Ï´Ù. À̹ø ÀþÀºÁ¤º¸°úÇÐÀÚ»ó ¼ö»óÀÇ ±âȸ·Î ÀÎÅͺä±îÁö ÇÏ°í ÀÖÁö¸¸, ½ÇÀº ½ÇÆÐÇÑ °æÇèÀÌ ±²ÀåÈ÷ ¸¹ÀÌ ÀÖ½À´Ï´Ù. ³í¹®µµ ³»¸é ¸¹ÀÌ ¶³¾îÁö°í, Áö±Ýµµ Á¦¾È¼­¸¦ ³»¸é ¼±Á¤ÀÌ ¾È µÇ´Â °æ¿ìµµ ¸¹°í, ¹°·Ð ÁÁÀº °á°ú¸¦ ¾òÀ» ¶§µµ ÀÖÁö¸¸ ±× À̸鿡´Â ¾ÆÁÖ ¸¹Àº Å»¶ôÀÇ °æÇèÀÌ ÀÖ½À´Ï´Ù. Àúµµ ³í¹®À̳ª Á¦¾È¼­ ³»¸é accept µÇ´Â °æ¿ì°¡ 20% ȤÀº 10%¹Û¿¡ ¾È µË´Ï´Ù. ±×·¸´Ù°í Çؼ­ ³Ê¹« ¾Æ½¬¿öÇÏ°í ÁÖÀú¾ÉÀ¸½Ç ÀÌÀ¯´Â ¾ø´Ù°í ¸»¾¸µå¸®°í ½Í½À´Ï´Ù. ¶³¾îÁö¸é ¼Ó»óÇÏ°í, ½ºÆ®·¹½º¸¦ ¹Þ±âµµ ÇÏÁö¸¸ ±×·¡µµ "´ÙÀ½¿¡ ¶Ç ³»¾ßÁö. ¹¹ ¾î¼°Ú¾î." ÇÏ¸ç ´ÙÀ½À» À§ÇØ ÁغñÇÏ°í ±×·¯¸é¼­ °è¼ÓÇØ ³»´Ùº¸¸é ÁÁÀº ¼º°ú·Î À̾îÁö´Â °Í °°½À´Ï´Ù.



¢º ¾ÕÀ¸·Î °èȹÀÌ ÀÖÀ¸½Ã´Ù¸é ¸»¾¸ÇØ ÁÖ¼¼¿ä. 


   ÀÌ·ç°í ½ÍÀº °Í Áß Çϳª°¡ ÄÄÆÄÀÏ·¯ °³¹ßÀڷμ­ Á¦°¡ ¸¸µç ÇÁ·Î±×·¥À» ¸¹Àº »ç¶÷ÀÌ »ç¿ëÇϸé ÁÁ°Ú´Ù´Â °ÍÀÔ´Ï´Ù. ±×·¯±â À§Çؼ­ Á¦°¡ ¿¬±¸ÇÑ ¼º°úµéÀ» ÇϳªÇϳª¾¿ °ø°³ÇÏ°í ÀÖ½À´Ï´Ù. ÀúÈñ ȨÆäÀÌÁö¿Í GitHub µî¿¡ ¿Ã¸®°í Àִµ¥ ¾ÕÀ¸·Î Á» ´õ È°¹ßÇÏ°Ô ÇÏ·Á°í ÇÕ´Ï´Ù. ¿¬±¸½ÇÀ» ¿î¿µÇÑ Áöµµ ¾î´Àµ¡ 7~8³âÀÌ µÇ¾ú´Âµ¥, ±×µ¿¾È ¿î¿µÇϸ鼭 °³¹ßÇÑ ¿©·¯ °¡Áö Complier Framework¶óµçÁö ½Ã½ºÅÛ ¼ÒÇÁÆ®¿þ¾îµé°ú ¼öÁýÇß´ø ÀÚ·áµéÀ» ÀÌÁ¦´Â °ø°³ ¼ÒÇÁÆ®¿þ¾î·Î Çϳª¾¿ °ø°³ÇÏ°í ÀÖ½À´Ï´Ù. Áï °ø°³ ¼ÒÇÁÆ®¿þ¾î ÂÊÀ¸·Î È°µ¿À» È°¹ßÇÏ°Ô ÇÏÁö ¾ÊÀ»±î ½Í½À´Ï´Ù. 

 


¢º ±× ¹Û¿¡ ÇÏ½Ã°í ½ÍÀº À̾߱â


   ÄÄÆÄÀÏ·¯µµ ±×·¸°í ¿î¿µÃ¼Á¦µµ ±×·¸°í ½Ã½ºÅÛ ¼ÒÇÁÆ®¿þ¾î ºÐ¾ß°¡ ¸¹ÀÌ Áß¿äÇØÁö°í ÀÖ½À´Ï´Ù. ÀΰøÁö´É»Ó¸¸ ¾Æ´Ï¶ó ÄÄÆÄÀÏ·¯ ÇÁ·¹ÀÓ¿öÅ©°¡ ÀüüÀûÀ¸·Î Áß¿äÇØÁö°í Àִµ¥, ƯÈ÷ ¿äÁò ½Ã½ºÅÛ ¹ÝµµÃ¼°¡ Áß¿äÇØÁö¸é¼­ ÁÖ¸ñ¹Þ°í ÀÖ½À´Ï´Ù¸¸ ¾Æ½±°Ôµµ ¸¹Àº ÇлýµéÀÌ ½Ã½ºÅÛ ¼ÒÇÁÆ®¿þ¾î ÂÊÀ¸·Î Áö¿øÀ» ÇÏ°í ÀÖÁö´Â ¾Ê½À´Ï´Ù. ¾Æ¹«·¡µµ Èûµé°í ¾î·Á¿î ºÎºÐµéÀÌ ÀÖ´Â ºÐ¾ß¶ó¼­ ±×·± °Í °°½À´Ï´Ù. ÇÏÁö¸¸ °³ÀÎÀûÀ¸·Î´Â º»ÀÎÀÇ ÁøÀÔÀ庮À» ³ôÀÏ ¼ö ÀÖ´Â ±â¼úÀ» ¹è¿ï ¼ö ÀÖ´Â ºÐ¾ßÀÔ´Ï´Ù. ±×¸®°í Á÷Á¢ ¸¸µç ÇÁ·Î±×·¥ÀÌ µ¿ÀÛÇÏ´Â °ÍÀ» º¸¸é »ÑµíÇϸ鼭 »ó´çÈ÷ Àç¹ÌÀÖ½À´Ï´Ù. Èûµé ¼ö´Â ÀÖÁö¸¸ Àç¹ÌÀÖ´Â ºÐ¾ßÀ̱⠶§¹®¿¡ ¸¹Àº Çкγª °ü·ÃµÈ ºÐµéÀÌ °øºÎ¸¦ Çغ¸½Ã¸é ÁÁÀ» °Í °°½À´Ï´Ù. 


¿¬±¸ÀÚ Á¤º¸ >>

¿ì¼ö¼º°ú >>