Untitled Document
 2020 Ű¿öµå : ¹ÝÀÀÇü, ½º¸¶Æ®Æù, ¾ÆÀÌÆù
 
   
  °øÁö»çÇ×
  it´º½º
 
   
 
ÀÛ¼ºÀÏ : 18-04-24 16:50
ÀÚ¹Ù¸¦ ³Ñ¾î¼± JVM ±â¹Ý ÇÁ·Î±×·¡¹Ö ¾ð¾îµé
 ±Û¾´ÀÌ : ¾ÆÀ̵ðÀÚÀΡ¦
Á¶È¸ : 800  
Serdar Yegulalp | InfoWorld
ÀÚ¹Ù(Java)´Â °³¹ßÀڵ鿡°Ô ÀαⰡ ³ô°í, ǰÁúÀÌ ÀÔÁõµÈ ¾ð¾î´Ù. ¿£ÅÍÇÁ¶óÀÌÁî °³¹ßÀÚ, À¥ °³¹ßÀÚ, ¸ð¹ÙÀÏ °³¹ßÀÚ, ±âŸ ¸¹Àº »ç¶÷µéÀÌ µµÃ³¿¡ ÀÚ¹Ù°¡ ¾²À̵µ·Ï ¸¸µé¾ú°í, À̸¦ Áö¿øÇÏ´Â °Å´ëÇÑ ¹®È­¸¦ Á¶¼ºÇϴµ¥ ±â¿©Çß´Ù.

´õ ³ª¾Æ°¡, ÀÚ¹Ù ·±Å¸ÀÓÀÎ ÀÚ¹Ù °¡»ó ¸Ó½Å(Java Virtual Machine, JVM)Àº ±× ÀÚü°¡ ¼ÒÇÁÆ®¿þ¾î »ýŰ谡 µÇ¾ú´Ù. ÀÚ¹Ù ¿Ü¿¡µµ, ¼ö¸¹Àº ¾ð¾î°¡ °­·ÂÇÏ°í °ªÁø ¼ÒÇÁÆ®¿þ¾î °³¹ß µµ±¸¸¦ ¸¸µé·Á JVMÀ» Ȱ¿ëÇß´Ù.

JVMÀ» ·±Å¸ÀÓÀ¸·Î »ç¿ëÇÒ °æ¿ì ¸î °¡Áö ÀÌÁ¡°ú ÇýÅÃÀ» ´©¸± ¼ö ÀÖ´Ù. JVMÀº ¼ö½Ê ³â¿¡ °ÉÃÄ °³¼±ÀÌ µÇ¾ú´Ù. Àß »ç¿ëÇÏ¸é ³ôÀº ¼º´ÉÀ» ¹ßÈÖÇÑ´Ù. JVM¿¡ ¿©·¯ ´Ù¾çÇÑ ¾ð¾î·Î ±¸ÇöÇÑ ¾ÖÇø®ÄÉÀ̼ǵéÀº ¼­·Î ¶óÀ̺귯¸®¸¦ °øÀ¯ÇÒ ¼ö ÀÖ°í, µ¿ÀÏÇÑ µ¥ÀÌÅÍ ±¸Á¶¿¡¼­ ÀÛµ¿ÇÑ´Ù. ÇÁ·Î±×·¡¸ÓµéÀº ¶ÇÇÑ ¿©·¯ ¾ð¾îÀÇ Æ¯Â¡À» À¯¸®ÇÏ°Ô È°¿ëÇÒ ¼ö ÀÖ´Ù.

À̹ø ±â»ç¿¡¼­´Â JVMÀ» À§ÇØ °³¹ßµÈ °¡Àå Áß¿äÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î ¸î Á¾À» ¼Ò°³ÇÑ´Ù. ÄÚÆ²¸°(Kotlin)°ú ½ºÄ®¶ó(Scala), ÀÚÀ̽ã(Jython), Á¦ÀÌ·çºñ(JRuby) µîÀÇ ¾ð¾îµéÀº ÀÚ¹Ù¸¦ º¸¿ÏÇÒ ¼ö ÀÖ´Â ´õ ´Ü¼øÇϰí À¯¿¬ÇÑ ¹æ¹ý, ÀÚ¹Ù¸¦ ´ëüÇÒ ¼ö ÀÖ´Â °­·ÂÇÑ ´ëüÀ縦 Á¦°øÇÑ´Ù.

ÄÚÆ²¸°
Á¦Æ®ºê·¹ÀÎ(JetBrain)ÀÌ 2010³â °³¹ßÇϰí, 2012³â ¿ÀǼҽº·Î °ø°³ÇÑ ÄÚÆ²¸°Àº ÀÚ¹Ùº¸´Ù °£°áÇÏ°í ¾ÈÀüÇÑ ¾ð¾î´Ù. ´õ ´Ü¼øÇÑ ÀÚ¹Ù¶ó°í »ý°¢ÇÏ¸é µÈ´Ù. ÀÚ¹Ùº¸´Ù ¹®¹ýÀÌ ´ú ÀåȲÇÏ´Ù. ÀÚ¹Ù Äڵ庸´Ù ´õ ºü¸£°Ô ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Â °æ¿ì°¡ ¸¹´Ù.

ÄÚÆ²¸°Àº ÀÚ¹Ù¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø´Â ÇÔ¼ö ÇÁ·Î±×·¡¹Ö ½ºÅ³À» Áö¿øÇϰí, ´õ ¾ÈÀüÇÏ°í ¼¼·ÃµÇ°Ô Null °ªÀ» ó¸®ÇÒ ¼ö ÀÖ´Ù. ÀÌ Ç÷§ÆûÀÇ ¾Û °³¹ß¿¡ ÀÚ¹Ù ´ë½Å ÄÚÆ²¸°À» ¼±ÅÃÇØ »ç¿ëÇÏ´Â ¾Èµå·ÎÀÌµå °³¹ßÀÚ°¡ Áõ°¡Çϰí ÀÖ´Â Ãß¼¼´Ù.

ÄÚÆ²¸°ÀÌ ÀÚ¹Ù¸¦ ³Ñ¾î¼­°Ô ¸¸µé °èȹµµ ÃßÁøµÇ°í ÀÖ´Ù. LLVM ÇÁ·¹ÀÓ¿öÅ©¸¦ ÅëÇØ ÄÚÆ²¸°À» ¸Ó½Å ³×ÀÌÆ¼ºê ÄÚµå·Î ÄÄÆÄÀÏÇÏ´Â ÇÁ·ÎÁ§Æ®¸¦ ¿¹·Î µé ¼ö ÀÖ´Ù. ÄÚÆ²¸°¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº ¡°¶°¿À¸£´Â ÀÚ¹Ù ´ëüÁ¦¡± ÄÚÆ²¸° Á¦´ë·Î ÀÌÇØÇϱ⠱â»ç¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù. 

½ºÄ®¶ó 
½ºÄ®¶ó´Â ÄÚÆ²¸°Ã³·³ ÀÚ¹Ù °³¹ßÀÚÀÇ »ý»ê¼ºÀ» ³ôÀÌ·Á´Â ¸ñÀûÀ¸·Î ¸¸µé¾îÁ³´Ù. ½ºÄ®¶ó´Â ÇÔ¼ö¿Í °´Ã¼ ÁöÇâÇü ÇÁ·Î±×·¡¹ÖÀ» µ¿ÀÏ ¾ð¾î·Î °áÇÕÇØ, ÀÚ¹Ù »ýÅÂ°è »ç¿ëÀÚµéÀÌ ÇÔ¼ö ÆÐ·¯´ÙÀÓÀ» À¯¿ëÇÏ°Ô È°¿ëÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾ú´Ù.

¶ÇÇÑ ½ºÄ®¶ó ¹®¹ýÀº ÇÔ¼ö ÇÁ·Î±×·¡¹Ö ´ëüÀçÀΠŬ·ÎÀú(Clojure)º¸´Ù ÀÚ¹Ù¿¡ ´õ °¡±õ´Ù. Ŭ·ÎÀúÀÇ °æ¿ì ¸®½ºÇÁ(List processor, Lisp) °°Àº ¹®¹ý ¶§¹®¿¡ ÀǵµÇÏÁö ¾ÊÀº È¥¶õÀÌ ÃÊ·¡µÉ ¼ö ÀÖ´Ù. ÇÔ¼ö¿Í °´Ã¼ ÁöÇâÇü ÆÐ·¯´ÙÀÓÀ» È¥ÇÕÇØ Áö¿øÇÏ´Â °ÍÀÌ ½ºÄ®¶óÀÇ °¡Àå Å« ÀåÁ¡ °¡¿îµ¥ Çϳª´Ù.

ÇöÀç LLVMÀ» ÅëÇØ JVM ¹Û º£¾î ¸ÞÅ»¿¡¼­ ½ÇÇàµÇ´Â ½ºÄ®¶ó º¯Á¾ÀÎ ½ºÄ®¶ó ³×ÀÌÆ¼ºê(Scala Native)°¡ °³¹ßµÇ°í ÀÖ´Ù. ±×·¯³ª ¾ÆÁ÷ Ãʱâ¶ó »ý»ê ȯ°æ¿¡¼­ »ç¿ëÇϱâ Èûµç ¾ð¾î´Ù.

Ŭ·ÎÀú
°³¹ßÀÚÀÎ ¸®Ä¡ È÷Ű´Â JVM¿ëÀ¸·Î ¸®½ºÇÁ °è¿­ÀÇ ÇÔ¼ö ¾ð¾î¸¦ °³¹ßÇϱ⠿øÇß°í, ÀÌ¿¡ Ŭ·ÎÀú¸¦ °³¹ßÇß´Ù. Ŭ·ÎÀú´Â µ¿½Ã °í¼º´É ¾ÖÇø®ÄÉÀ̼ÇÀ» ½±°Ô °³¹ßÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁ® ÀÖ´Ù. ÀÚ¹Ù°¡ ½ÇÇàµÇ´Â Àå¼Ò¿¡¼­ À¯¿ëÇÏÁö¸¸, ÀüÅëÀûÀ¸·Î ÀÚ¹Ù°¡ Áö¿øÇÏ´Â °Í°ú ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ½ºÅ¸ÀÏÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ·çºñ¿¡¼­ Ŭ·ÎÀú·Î ¸¶À̱׷¹ÀÌ¼Ç µÈ ÆÛÆê ¼­¹ö(Puppet Server)¸¦ ¼º°ø »ç·Ê °¡¿îµ¥ Çϳª·Î ²ÅÀ» ¼ö ÀÖ´Ù.

±×·çºñ(Groovy)
¿ø·¡ ÇǺ¸Å»(Pivotal)ÀÌ °³¹ßÇßÁö¸¸, Áö±ÝÀº ¾ÆÆÄÄ¡ ¼ÒÇÁÆ®¿þ¾î Àç´Ü(Apache Software Foundation)ÀÌ °ü¸®Çϰí ÀÖ´Â ±×·çºñ´Â ±âÁ¸ Àڹ٠ȯ°æ¿¡ Åä´ë¸¦ µÎ°í ÀÖÁö¸¸, ÆÄÀ̽ã(Python)°ú ·çºñ °°Àº µ¿Àû ¾ð¾î¿¡ ¿µÇâÀ» ¹ÞÀº ±â´ÉµéÀ» Á¦°øÇÑ´Ù.

±×·çºñ´Â Àαâ ÀÖ´Â Á¨Å²½º(Jenkins) Áö¼ÓÀû ÅëÇÕ ¼­¹ö°¡ Á÷Á¢ Áö¿øÇÏ´Â ¾ð¾î °¡¿îµ¥ ÇϳªÀ̸ç, À̸¦ ÀÌ¿ëÇØ ÇÙ½É À¥ ÇÁ·¹ÀÓ¿öÅ©ÀÎ ±×·¹ÀÏ(Grails)¸¦ ±¸ÇöÇÑ´Ù.
ÇâÈÄ µîÀåÇÒ ±×·çºñ ¹öÀüÀº ÀÚ¹Ù 8 ¶÷´Ù(Java 8 lambda) ¹®¹ý °°Àº »õ·Î¿î ¹öÀüÀÇ ÀÚ¹Ù¿Í JVM ±â´ÉµéÀ» Áö¿øÇÒ ¿¹Á¤ÀÌ´Ù.

ÀÚÀ̽ã°ú Á¦ÀÌ·çºñ
ÀÚÀ̽ã°ú Á¦ÀÌ·çºñ´Â °¢°¢ JVM¿ë ÆÄÀ̽ã°ú ·çºñ´Ù. ÀÚÀ̽ãÀº ÆÄÀ̽ã 2.x¿Í ȣȯµÈ´Ù. Á¦ÀÌ·çºñ´Â ÃֽŠ·çºñ 2.3°ú ȣȯµÈ´Ù. ¸ðµÎ µ¿ÀûÀ¸·Î ÀÚ¹Ù ¹ÙÀÌÆ®ÄÚµå·Î ÄÄÆÄÀÏÇÒ ¼ö ÀÖÀ¸¸ç, ÀÚ¹Ù µî ´Ù¸¥ JVM ¾ð¾î¿Í ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖ´Ù.

±âŸ JVM ¾ð¾îµé
- ½Ç·Ð(Ceylon): ·¹µå ÇÞ(Red Hat)ÀÌ °³¹ßÇÑ ½Ç·ÐÀº 'ÀåȲÇÔ'À̳ª 'JVMÀÇ ±â¹Ý ¸ÞÄ«´ÏÁò °¡¿îµ¥ ÀÏºÎ¿Í ¹­¿© ÀÖ´Â ¹®Á¦' µî ÀÚ¹Ù°¡ °®°í ÀÖ´Â ¹®Á¦Á¡ °¡¿îµ¥ ÀϺθ¦ ÇØ°áÇϱâ À§ÇØ ¸¸µç ¾ð¾î´Ù. JVMÀº ¹°·Ð ´ÙÆ®(Dart) VM, ³ëµåJS(Node.js)¿¡¼­ ½ÇÇàµÇµµ·Ï ½Ç·ÐÀ» ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù.

- ÇÁ·¹°Ô(Frege) : ÇÔ¼ö ¾ð¾îÀÎ ÇϽºÄÌ(Haskell)ÀÇ JVM¿ë ¹öÀüÀÌ´Ù. ÇÁ·¹°Ô Äڵ带 Àڹ٠Ŭ·¡½º¿¡ ÄÄÆÄÀÏÇØ (Åë»ó) ÀÚ¹Ù¿Í ÇÔ²² ¿î¿µÇÑ´Ù. ±×·¯³ª ÇϽºÄÌ °°Àº ºÒº¯¼º°ú ÇÔ¼ö ÆÐ·¯´ÙÀÓÀ» Ȱ¿ëÇÒ ¼ö ÀÖ´Ù.

- ¿¡Å¸(Eta) : ¿¡Å¸ ¿ª½Ã JVM¿ë HÇϽºÄÌÀÇ 'º¯Á¾'ÀÌ´Ù. ÇϽºÄÌ ÆÐŰÁö ·¹Æ÷ÁöÅ丮ÀÎ ÇØÅ°Áö(Hackage)¸¦ »ç¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡ ÇϽºÄÌ »ýŰè¿ÍÀÇ È£È¯¼ºÀÌ ¾ÆÁÖ ³ô´Ù´Â Á¡À» ÀåÁ¡À¸·Î ³»¼¼¿î´Ù.

- Çм¼(Haxe) : Çм¼´Â À¥°ú ¸ð¹ÙÀÏ ÀåÄ¡, º£¾î ¸ÞÅ» µî ¿©·¯ ¼ö¸¹Àº ¸ñÀû¿¡¼­ JVMÀ¸·Î ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖ´Â ¾ð¾î´Ù. ¹®¹ýÀº ÀÚ¹Ù¸¦ ¿¬»ó½ÃŲ´Ù. JVMÀ» ´ë»óÀ¸·Î ÄÄÆÄÀÏÇÒ ¶§ ÇÊ¿äÇÑ °æ¿ì ´Ù¸¥ ÀÚ¹Ù ¶óÀ̺귯¸®¸¦ Áö¿øÇÑ´Ù.

- ÆÒÅÒ(Fantom) : JVM°ú ´å³Ý(.Net) CLR¿ë ¾ð¾îÀÎ ÆÒÅÒÀº µÎ Ç÷§ÆûÀÇ Â÷ÀÌÁ¡À» ¹«½ÃÇÏ´Â API¸¦ Á¦°øÇÑ´Ù. ÆÒÅÒÀº ÀÚ¹Ù½ºÅ©¸³Æ®¿¡µµ ÄÄÆÄÀÏÀÌ °¡´ÉÇϸç, ÀÌ·ÐÀûÀ¸·Î´Â ´Ù¸¥ ¾î¶² ´ë»óÀ¸·Îµµ ¹èÆ÷ÇÒ ¼ö ÀÖ´Ù. editor@itworld.co.kr 


 
 
 

 
 
::ºÎ»ê»ç¾÷ºÎ:: Tel: 051)805-2827  Fax: 051)805-2847  °í°´°ü¸®ºÎ : 051)805-2837 /  ::±¤ÁÖ»ç¾÷ºÎ:: Tel: 062)375-9797    HP : 010-5535-2681
::Àü³²¡¤ÀüºÏ»ç¾÷ºÎ:: HP: 010-2640-3579 ::¼­¿ï¡¤°æ±â»ç¾÷ºÎ:: HP: 010-4793-5824
»óÈ£: ¾ÆÀ̵ðÀÚÀδåÄÄ | »ç¾÷ÀÚµî·Ï¹øÈ£: 605-22-99386    
E-mail: ktpusan@daum.net  / Copyright ¨Ï idesign Co.,Ltd. All rights reserved.