°¡Àü Á¦Ç° ¹× Mobile NC¸¦ À§ÇÑ Java ±â¼ú
Java Technology for the Consumer Device and the Mobile NC
¡¡
¼ÕÁ¾¹®(Jong Moon Sohn), ºÐ»êÄÄÇ»ÆÃ¿¬±¸½Ç, ¼±ÀÓ¿¬±¸¿ø
Distributed Computing Laboratory
¡¡
¡¡
¿ä ¾à
Java´Â ¿ø·¡ °¡Àü ±â±â¿Í °°Àº ÀüÀÚ Á¦Ç°ÀÇ Á¦¾î¸¦ À§ÇÑ ³»ÀåÇü(embedded) ¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡ ÀûÇÕÇÏ°Ô ¼³°èµÈ ¾ð¾îÀÌ´Ù. ÇöÀç ÀÚ¹Ù¼ÒÇÁÆ®(JavaSoft)»ç´Â Java ±â¼úÀ» »ç¿ëÇÏ¿© ÀÎÅͳÝ/ÀÎÆ®¶ó³Ý ¿ë ¼ÒÇÁÆ®¿þ¾î»Ó¸¸ ¾Æ´Ï¶ó ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î ºÐ¾ßÀÇ ½ÃÀåÀ» Á¡À¯Çϱâ À§ÇÏ¿© EmbeddedJava/PersonalJava JAE(Java Application Environment) °³¹ß ¹× È®Ãæ¿¡ ÃÖ¼±À» ´ÙÇϰí ÀÖ´Ù. º» °í¿¡¼­´Â EmbeddedJava/PersonalJava °¡ÀüÁ¦Ç°°ú Á¤º¸±â±â¸¦ À§ÇÑ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡ ¾î¶»°Ô Àû¿ëµÇ´ÂÁö¸¦ »ìÆìº¸°í, Mobile NC¿¡ ´ëÇØ¼­µµ ¼Ò°³ÇÑ´Ù. ±×¸®°í, JavaÀÇ ¼º´É»óÀÇ ÇѰ踦 ±Øº¹ÇÏ°í º¸´Ù ³·Àº °¡°ÝÀ¸·Î Java ȯ°æÀ» ±¸¼ºÇÒ ¼ö ÀÖ´Â JavaChips¿¡ ´ëÇÏ¿© ±â¼úÇÑ´Ù.

¡¡

I. ¼­·Ð

ÃʱâÀÇ Java ±â¼úÀº ÀÎÅÍ³Ý È¯°æ¿¡¼­ Java ¾ÖÇø´(applet)À» »ç¿ëÇÑ ¾Ö´Ï¸ÞÀ̼Ç, ÀζóÀÎ »ç¿îµå, ½Ç½Ã°£ »óÈ£ ÀÛ¿ë µîÀ» °¡´ÉÇÏ¿© ÀÎÅÍ³Ý ¼­ºñ½º¸¦ À§ÇÑ GUI(Graphical User Interface)·Î »ç¿ëµÇ¾ú´Ù. Java´Â °´Ã¼ ÁöÇâ, ´Ü¼ø¼º, ºÐ»ê ȯ°æ Áö¿ø, ÀÎÅÍÇÁ¸®ÅÍ ¹æ½Ä, °ß°í¼º, Ç÷§Æû µ¶¸³¼º, ¾ÈÀü¼º, ¸ÖƼ ¾²·¹µù Áö¿ø µîÀÇ ÀåÁ¡µéÀ» °¡Áö°í Àֱ⠶§¹®¿¡ ÃÖ±Ù¿¡´Â ÀüÀÚ »ó°Å·¡, ÀüÀÚ ÃâÆÇ, ¸ÖƼ¹Ìµð¾î ¿£Æ®Å×ÀÎ¸ÕÆ® µî°ú °°ÀÌ º¸´Ù º¹ÀâÇÑ ÀÀ¿ë¿¡ Àû¿ëµÉ ¼ö ÀÖ¾î »ç½Ç»óÀÇ ÀÎÅÍ³Ý Ç¥ÁØ ¾ð¾îÀÇ ¿ªÇÒÀ» Çϰí ÀÖ´Ù. ƯÈ÷ JavaÀÇ Ç÷§Æû µ¶¸³¼ºÀº ÀÎÆ®¶ó³Ý ȯ°æ¿¡¼­ À¥ ºê¶ó¿ìÀú¿Í À¥ ÇüÅÂÀÇ ¼­¹ö¿Í °áÇÕ½ÃÄÑ °¡±î¿î ±â°£ ³»¿¡ ÀÎÅͳݺ¸´Ù ´õ Å« ÀÎÆ®¶ó³Ý ½ÃÀåÀ» Çü¼ºÇÒ °ÍÀ¸·Î ¿¹»óµÇ°í ÀÖ´Ù.

Java ±â¼úÀº ¿ø·¡ °í°´ ÁÖ¹®Çü °¡ÀüÁ¦Ç°ÀÇ ´ëÈ­½Ä Á¦¾î¸¦ À§ÇÑ ¿¬±¸ °úÁ¤¿¡¼­ °³¹ßµÈ ¾ð¾îÀÌ´Ù. 1990³â Java °³¹ßÀÇ Áß½ÉÀûÀÎ Àι°ÀÎ Á¦ÀÓ½º °í½½¸µ(James Gosling)Àº °¡Àü Á¦Ç°À» À§ÇÑ ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÛ¼ºÇϴµ¥ C++ ¶Ç´Â ±×¿Í À¯»çÇÑ ¾ð¾î¸¦ »ç¿ëÇÏ¿© ³»ÀåÇü(embedded) ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇÏ·Á°í ÇÏ¿´´Ù. ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î´Â ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­¸¦ žÀçÇÑ ÀüÀÚÁ¦Ç°À» Á¦¾îÇϱâ À§ÇÑ ¼ÒÇÁÆ®¿þ¾îÀÌ´Ù. ±×·¯³ª °¡Àü Á¦Ç°À» À§ÇÑ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡ ¹ü¿ë¾ð¾î°¡ ÀûÇÕÇÏÁö ¾ÊÀ½À» ¹ß°ßÇϰí Java ¾ð¾î¸¦ °³¹ßÇÏ¿´´Ù[1]. ÃÖ±Ù¿¡ ½ãÀº Java ±â¼úÀ» ÀÌ¿ëÇÏ¿© ÀÎÅͳÝ/ÀÎÆ®¶ó³Ý¿ë ¼ÒÇÁÆ®¿þ¾î »Ó ¾Æ´Ï¶ó ÈÞ´ëÆù, ÇÁ¸°ÅÍ, °¡ÀüÁ¦Ç° µî°ú °°Àº ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î ½ÃÀåµµ Á¡À¯ÇÏ·Á Çϰí ÀÖ´Ù[2].

Java¸¦ ÀÌ¿ëÇÑ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î´Â Java ¼öÇà ȯ°æÀ» ³»ÀåÇü µð¹ÙÀ̽º(device)¿¡ žÀçÇÔÀ¸·Î½á »ç¿ë °¡´ÉÇѵ¥, ÀÌ·¯ÇÑ µ¿ÇâÀº ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡¼­ ¹ß»ýÇÏ´Â ÀüÅëÀûÀÎ ¹®Á¦(¿¡·¯ ¾ø´Â ¼ÒÇÁÆ®¿þ¾î, Àú°¡, ¼ÒÇÁÆ®¿þ¾îÀÇ Àç»ç¿ë, ½Ç½Ã°£ Áö¿ø, ¼ÒÇÁÆ®¿þ¾îÀÇ ¾÷±×·¹À̵å, ½ÃÀå ¼±Á¡À» À§ÇÑ ÂªÀº °³¹ß ±â°£ µî)¸¦ JavaÀÇ ÀåÁ¡À» Ȱ¿ëÇÏ¿© ÇØ°áÇϰí ÀÎÅÍ³Ý ±â¼úÀ» ä¿ëÇÑ ÀüÀÚÁ¦Ç°(internet appliance)À» À§ÇÑ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î¸¦ ¼Õ½±°Ô °³¹ßÇϱâ À§ÇÑ °ÍÀÌ´Ù.

º» °í¿¡¼­´Â °¡Àü Á¦Ç° ¹× À̵¿Çü Á¤º¸ ±â±â¸¦ À§ÇÑ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ß ±â¼ú°ú µ¿Çâ¿¡ ´ëÇÏ¿© ±â¼úÇÑ´Ù. II Àå¿¡¼­´Â ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÇ ÀüÅëÀûÀÎ ¹®Á¦Á¡À» »ìÆìº¸°í, JavaÀÇ ¾î¶°ÇÑ Æ¯Â¡µéÀÌ ÀÌ·¯ÇÑ ¹®Á¦Á¡À» ÇØ°áÇÏ´ÂÁö °£·«È÷ ¼Ò°³ÇÑ´Ù. III Àå¿¡¼­´Â ½ãÀÇ EmbeddedJava¿Í PersonalJava¿¡ ´ëÇÏ¿© ±â¼úÇϰí IVÀå¿¡¼­ ³»ÀåÇü ½Ã½ºÅÛµéÀÇ °³¹ß ¹× »ó¿ëÈ­ »ç·Ê¸¦ °£´ÜÈ÷ »ìÆìº»´Ù. V Àå¿¡¼­ Mobile NC¿¡ ´ëÇÑ ³»¿ªÀ» ±â¼úÇϰí, VI Àå¿¡¼­ JavaÀÇ ¼öÇà ¼Óµµ¸¦ °³¼±ÇÏ°í ³·Àº °¡°ÝÀ¸·Î Java ¼öÇà ȯ°æÀ» ±¸¼ºÇÒ ¼ö ÀÖ°Ô ÇÏ´Â Java Àü¿ë ÇÁ·Î¼¼¼­ÀÎ JavaChipsÀÇ ±¸Á¶Àû Ư¡°ú Ȱ¿ë ºÐ¾ß¸¦ »ìÆìº»´Ù. ¸¶Áö¸·À¸·Î VII Àå¿¡¼­ °á·ÐÀ» ±â¼úÇÑ´Ù.

II. ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î¸¦ À§ÇÑ Java

±â¼úÀû, °æÁ¦ÀûÀÎ Ãø¸é¿¡¼­ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ ¿ä±¸ »çÇ×Àº ½Å·Ú¼º, Àú°¡, ¼ÒÇÁÆ®¿þ¾î Àç»ç¿ë, ¼Ò±Ô¸ð ¸Þ¸ð¸®, ½Ç½Ã°£ Áö¿ø, ¼ÒÇÁÆ®¿þ¾î ¾÷±×·¹ÀÌµå µîÀ¸·Î ³ª´­ ¼ö ÀÖÀ¸¸ç, ÀÌ·¯ÇÑ ¿ä±¸»çÇ×À» ¸¸Á·ÇØ¾ß ÇÏ´Â ÀÌÀ¯´Â Ç¥ 1°ú °°´Ù.

Ç¥ 1. ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾îÀÇ ¿ä±¸»çÇ×
 
¿ä±¸»çÇ×
ÀÌÀ¯
½Å·Ú¼º
(reliability)
¿À·ù ¹ß»ý½Ã ¼öÁ¤ÇϱⰡ ¾î·Á¿ï »Ó ¾Æ´Ï¶ó ¹ÝǰÀÇ °áÁ¤ÀûÀÎ ÀÌÀ¯°¡ µÉ ¼ö ÀÖ´Ù.
Àú°¡
(low cost)
°¡Àü Á¦Ç° ½ÃÀåÀº °¡°Ý¿¡ ¹Î°¨ÇÏ´Ù. Áï, °¡°Ý ¹®Á¦·Î Çϵå¿þ¾î Ç÷§ÆûÀÌ ¹Ù²ð ¼ö Àֱ⠶§¹®¿¡ ´Ù¾çÇÑ Ç÷§ÆûÀ» Áö¿øÇÒ ¼ö ÀÖ°í ¼ÒÇÁÆ®¿þ¾îÀÇ ÀÛ¼ºÀÌ ¼Õ½±°í °£´ÜÇØ¾ß ÇÑ´Ù.
¼ÒÇÁÆ®¿þ¾î Àç»ç¿ë
(software reuse)
½ÃÀå ¼±Á¡À» Çϱâ À§Çؼ­´Â ¼ÒÇÁÆ®¿þ¾îÀÇ °³¹ß ±â°£ÀÌ Âª¾Æ¾ß Çϱ⠶§¹®¿¡ ±âÁ¸ÀÇ ¼ÒÇÁÆ®¿þ¾î¸¦ Àç»ç¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
¼Ò±Ô¸ð ¸Þ¸ð¸®
(small memory footprint)
³»ÀåÇü µð¹ÙÀ̽º´Â Çϵå¿þ¾î °¡°ÝÀ» ³·Ãß±â À§ÇÏ¿© ¼ö¹é KB¿¡¼­ ¼ö MBÁ¤µµÀÇ ¸Þ¸ð¸®¸¸À» °®´Â´Ù. ±×·¯¹Ç·Î, °¡´ÉÇÑ ÇÑ RAM »ç¿ë·®À» ÁÙÀÏ ¼ö ÀÖµµ·Ï ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇÏ¿©¾ß ÇÑ´Ù
½Ç½Ã°£ Áö¿ø
(real-time support)
³»ÀåÇü µð¹ÙÀ̽º´Â »ç°Ç(event)¿¡ ½Å¼ÓÈ÷ ÀÀ´äÇÏ¿©¾ß ÇÑ´Ù.
¼ÒÇÁÆ®¿þ¾î ¾÷±×·¹À̵å
(software upgrade)
³»ÀåÇü µð¹ÙÀ̽º´Â ¿À·£ ±â°£ »ç¿ëµÇ°í, À¯»ç ±â´ÉÀ» °¡Áø »õ·Î¿î µð¹ÙÀ̽º¸¦ »ý»êÇÒ ¼ö Àֱ⠶§¹®¿¡ ±âÁ¸ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ È£È¯¼ºÀÌ ÀÖ¾î¾ß ÇÏ¸ç ±â´É È®ÀåÀÌ ½¬¿ö¾ß ÇÑ´Ù.
¡¡

ÀÌ¹Ì ±â¼úÇÑ ¹Ù¿Í °°ÀÌ Java´Â °³¹ß ´ç½Ã ´ëÈ­Çü °¡Àü Á¦Ç°ÀÇ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇϱâ À§ÇÑ µµ±¸·Î °³¹ßµÇ¾ú±â ¶§¹®¿¡ Ç¥1¿¡¼­ ±â¼úÇÑ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾îÀÇ ¿ä±¸ »çÇ×À» ¸¸Á·½Ãų ¼ö ÀÖ´Ù. Java¸¦ »ç¿ëÇÏ¿© ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÛ¼ºÇÒ °æ¿ì ¾òÀ» ¼ö ÀÖ´Â ÀåÁ¡Àº Ç¥ 2¿Í °°ÀÌ ¿ä¾àµÉ ¼ö ÀÖ´Ù. ÇÏÁö¸¸, ÀÌ·¯ÇÑ ÀåÁ¡À̿ܿ¡µµ Çϵå¿þ¾î°¡ ÁغñµÇ±â ÀÌÀü¿¡ ¾î¶°ÇÑ Ç÷§Æû¿¡¼­µµ ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ß ¹× ½ÃÇèÇÒ ¼ö ÀÖ¾î ¼ÒÇÁÆ®¿þ¾î¿Í Çϵå¿þ¾îÀÇ µ¿½Ã °³¹ß·Î ÀÎÇÑ °³¹ß ±â°£ ´ÜÃà »Ó ¾Æ´Ï¶ó º¸´Ù ¾ÈÁ¤µÈ ¼ÒÇÁÆ®¿þ¾î È®º¸°¡ °¡´ÉÇÏ´Ù.

¡¡

Ç¥ 2. ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î¸¦ À§ÇÑ JavaÀÇ ÀåÁ¡
 
JavaÀÇ ÀåÁ¡
¼³ ¸í
³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ß °ü·Ã Ư¼º
À̽ļº ¹× ´Ù¾çÇÑ Ç÷§Æû
(portable and multi-platform)
°¡»ó ¸Ó½ÅÀ» ±â¹ÝÀ¸·Î µ¿ÀÛÇϱ⠶§¹®¿¡ À̽ļºÀÌ ³ô¾Æ ´Ù¾çÇÑ Ç÷§ÆûÀ» Áö¿øÇÒ ¼ö ÀÖ´Ù.
Àú°¡,
¼ÒÇÁÆ®¿þ¾î Àç»ç¿ë ¹× ¾÷±×·¹À̵å
°ß°í¼º
(robustness)
Java¾ð¾î¿¡¼­´Â ¸Þ¸ð¸®¸¦ Á÷Á¢ ÂüÁ¶ÇÏ´Â ÇÁ¸®¹ÌƼºê¸¦ Á¦°øÇÏÁö ¾ÊÀ¸¸ç, ¸Þ¸ð¸® °ü¸®´Â °¡»ó ¸Ó½Å¿¡ Á¸ÀçÇÏ´Â °¡ºñÁö Ä÷ºÅÍ(Garbage Collector)¿¡ ÀÇÇØ ÀÌ·ç¾îÁø´Ù.
¡¡
½Å·Ú¼º
³ôÀº º¸¾È¼º
(high security)
°¡»ó ¸Ó½Å¿¡ ÀÖ´Â ¹ÙÀÌÆ®ÄÚµå °ËÁõ±â(Byte Code Verifier)°¡ ¼öÇàÀÌÀü¿¡ º¸¾È»óÀÇ ¹®Á¦Á¡À» °Ë»çÇϰí, ÀáÀçÀûÀÎ º¸¾ÈÀÇ ÇêÁ¡À» ¸·±â À§ÇÏ¿© ¾ÖÇø´ÀÇ ¼öÇàÀ» Á¦ÇÑÇÑ´Ù.
½Å·Ú¼º
°´Ã¼ ÁöÇâ
(object oriented)
Java´Â °´Ã¼ ÁöÇâ ¾ð¾îÀÌ´Ù.
Àú°¡,
¼ÒÇÁÆ®¿þ¾î Àç»ç¿ë ¹× ¾÷±×·¹À̵å
¡¡

III. EmbeddedJava¿Í PersonalJava

½ãÀº JAE(Java Application Environment)¿¡ ´ëÇÑ ±âº»ÀûÀÎ ¹æÇâÀ¸·Î½á ÀÀ¿ë ºÐ¾ß¿Í ±Ô¸ð¿¡ µû¶ó JAE¸¦ EnterpriseJava, PersonalJava, EmbeddedJava, CardJava·Î ±¸ºÐÇϰí ÀÖÀ¸¸ç, °¢ JAE´Â »óÀ§ JAE°¡ °¡Áø APIÀÇ ºÎºÐ ÁýÇÕ°ú °íÀ¯ÀÇ API·Î ±¸¼ºÇÏ¿´´Ù. ¿¹¸¦ µé¾î PersonalJava´Â EnterpriseJava°¡ °¡Áö´Â APIÀÇ ºÎºÐ ÁýÇÕ°ú PersonalJava °íÀ¯ÀÇ API¸¦ °¡Áø´Ù. ±×¸®°í, ¸ðµç JAE¿¡ ´ëÇÏ¿© µ¿ÀÏÇÑ JDK¸¦ Á¦°øÇÒ ¿¹Á¤ÀÌ´Ù.

º» Àå¿¡¼­´Â 4°³ÀÇ JAE Áß¿¡¼­ EmbeddedJava¹× PersonalJavaÀÇ Æ¯Â¡°ú ±¸¼ºÀ» ±â¼úÇϰí EnterpriseJava¿ÍÀÇ Â÷ÀÌÁ¡À» ºñ±³ÇÑ´Ù.

¡¡

1. EmbeddedJava¿Í PersonalJavaÀÇ ±¸¼º

ÀÌ¹Ì ±â¼úÇÑ ¹Ù¿Í °°ÀÌ ¼Ò±Ô¸ðÀÇ ³»ÀåÇü ½Ã½ºÅÛ »ó¿¡¼­ ÀÚ¹ÙÀÇ ÀåÁ¡À» ä¿ëÇϱâ À§Çؼ­´Â Java °¡»ó ¸Ó½ÅÀÌ ³»ÀåÇü ½Ç½Ã°£ ¿î¿µÃ¼Á¦ »ó¿¡¼­ ¿î¿ëµÇµµ·Ï °³¹ßÇÏ¿©¾ß Çϴµ¥, ½ã¿¡¼­´Â °¡Àü Á¦Ç°À» ºñ·ÔÇÑ ±âÁ¸ÀÇ ÀüÀÚ Á¦Ç°°ú ÀÎÅÍ³Ý ±â¼úÀ» ä¿ëÇÑ Á¤º¸ ±â±â¸¦ À§ÇÑ Java Ç÷§ÆûÀÎ EmbeddedJava¿Í PersonalJava¸¦ Á¦°øÇϰí ÀÖ´Ù. EmbeddedJava¿Í PersonalJavaÀÇ °³¹ß·Î ÀÎÇÏ¿© ±âÁ¸ÀÇ µ¥½ºÅ©Å¾»ó¿¡¼­ ¿î¿µµÇ´Â Java´Â EnterpriseJava·Î À̸§À» ¹Ù²Ù¾ú´Ù.

Ç¥ 3Àº EmbeddedJava¿Í PersonalJavaÀÇ ÀÀ¿ë ºÐ¾ß¿Í Çϵå¿þ¾î Ç÷§ÆûÀÇ ¿ä±¸»çÇ×À» ±â¼úÇÑ °ÍÀ̸ç Ç¥ 4´Â ±× Ư¼ºÀ» ±â¼úÇÑ °ÍÀÌ´Ù. EmbeddedJava´Â ÁÖ·Î ±âÁ¸ÀÇ ³»ÀåÇü ½Ã½ºÅÛÀ» À§ÇÑ ¼ÒÇÁÆ®¿þ¾î¿¡ ÀûÇÕÇÏ°Ô Java ¼öÇà ȯ°æÀ» °®Ãá °ÍÀÌ´Ù. ¾î¶°ÇÑ Àǹ̿¡¼­´Â EnterpriseJava¸¦ Ãà¼ÒÇÏ°í ³×Æ®¿öÅ© ±â´ÉÀ» °¡ÁöÁö ¾Ê´Â ÀüÀÚ Á¦Ç°À» À§ÇÑ API¸¦ Ãß°¡ÇÑ JAE¶ó°íµµ ÇÒ ¼ö ÀÖ´Ù. ¹Ý¸é, PersonalJava´Â ÀÎÅÍ³Ý È¯°æ ¹× À̵¿Çü Åë½Å ±â±âÀÇ ¹ü¿ëÈ­·Î ÀÎÇÏ¿© ³×Æ®¿öÅ· ±â´ÉÀ» ÇÊ¿ä·Î ÇÏ´Â ÀüÀÚÁ¦Ç°À» À§ÇÑ JAEÀÌ´Ù. PersonalJava´Â Å©±â³ª ±â´É¸é¿¡¼­ EmbeddedJava¿Í EnterpriseJavaÀÇ Áß°£Âë¿¡ À§Ä¡ÇÑ´Ù°í ÇÒ ¼ö ÀÖ´Ù.

¡¡

Ç¥ 3. EmbeddedJava¿Í PersonalJavaÀÇ ÀÀ¿ë ºÐ¾ß ¹× Çϵå¿þ¾î Ç÷§Æû
 
±¸ ºÐ
EmbeddedJava
PersonalJava
ÀÀ¿ë ºÐ¾ß
¸ðºô Æù, ÆäÀÌÀú, °øÀå ÀÚµ¿È­ Àåºñ, ³×Æ®¿÷ ¶ó¿ìÅÍ, ÇÁ¸°ÅÍ µî°ú °°ÀÌ Á¦ÇÑµÈ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ °¡Áö´Â ÀúÀü·Â ¶Ç´Â À̵¿Çü µð¹ÙÀ̽º À¥ºê¶ó¿ì¡ Æù, PDA, ¼ÂÅé¹Ú½º µî°ú °°ÀÌ ³×Æ®¿öÅ· ±â´ÉÀ» °¡Áö¸ç À¥»ó¿¡¼­ ¾ÖÇø´¿¡ ´ëÇÑ È£È¯¼ºÀ» ¿ä±¸ÇÏÁö¸¸ ¿ÏÀüÇÑ ¿£ÅÍÇÁ¶óÀÌÁî ¼­ºñ½º¸¦ ¿ä±¸ÇÏÁö ¾Ê´Â Çϵå¿þ¾îÀûÀÎ Á¦¾àÀ» °®´Â µð¹ÙÀ̽º
Çϵå¿þ¾î Ç÷§Æû
25MHz ÀÌ»óÀÇ 16/32bit ÇÁ·Î¼¼¼­

256KB ~ 512KB ROM

256KB ~ 512KB RAM

50MHz ÀÌ»óÀÇ 32bit ÇÁ·Î¼¼¼­

¾à 2MB ROM

512KB ~ 1MB RAM

¡¡

¡¡

¡¡

¡¡

¡¡

Ç¥ 4. EmbeddedJava¿Í PersonalJava ¼³°è½Ã °í·Á»çÇ×°ú Ư¡
 
EmbeddedJava
PersonalJava
½Ç½Ã°£ ¿î¿µÃ¼Ã¼ »ó¿¡¼­ ¼öÇàµÈ´Ù. ½Ç½Ã°£ ¿î¿µÃ¼Á¦ »ó¿¡¼­ ¼öÇàµÈ´Ù.
JavaÀÇ È£È¯¼ºº¸´Ù´Â ´ÜÁö JavaÀÇ ÀåÁ¡¸¸À» ÀÌ¿ëÇϱ⠶§¹®¿¡ ¹ü¿ë ¾ÖÇø´À» ¼öÇàÇÏÁö ¾Ê°í µð¹ÙÀ̽ºÀÇ ±â´ÉÀ» È®ÀåÇÑ Java ¾ÖÇø®ÄÉÀ̼ÇÀ» ¼öÇàÇÑ´Ù. ¹ü¿ë ¾ÖÇø´À» ¼öÇàÇÑ´Ù.

¡¡

ÃÖ¼Ò ¸Þ¸ð¸® »ç¿ë, Àú°¡, ±â´É¿¡ ´ëÇÑ Á¦ÇÑÀ» °í·ÁÇÏ¿´´Ù. EnterpriseJavaº¸´Ù ÀÛÀº ¸Þ¸ð¸®¿Í ¼º´ÉÀÌ ³·Àº ÇÁ·Î¼¼¼­¸¦ ¿ä±¸ÇÑ´Ù.
»ç¿ëÀÚ ÀÎÅÍÆäÀÌÁö°¡ Á¦ÇѵǾî ÀÖ´Ù. ÀÛ°í ÇØ»óµµ°¡ ³·Àº µð½ºÇ÷¹À̸¦ »ç¿ëÇÏ°í ´ëºÎºÐ Űº¸µå¿Í ¸¶¿ì½º´Â ¾ø´Ù. ´Ü¼øÇÑ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ¿ä±¸ÇÑ´Ù.
»õ·Î¿î ±â´ÉÀ» Java ±â¹Ý¿¡ ½±°Ô Ãß°¡ÇÒ ¼ö ÀÖ´Ù. »õ·Î¿î ±â´ÉÀ» Java ±â¹Ý¿¡ ½±°Ô Ãß°¡ÇÒ ¼ö ÀÖ´Ù.
½Ç½Ã°£ ¿î¿µÃ¼Á¦¿Í °ü·Ã µµ±¸ÀÇ ±â´É¿¡ ÀÇÁ¸ÀûÀÌ´Ù. PersonalJava¸¦ »ç¿ëÇÔÀ¸·Î½á ¸ñÇ¥ ÇÁ·Î¼¼¼­¸¦ ½±°Ô ¹Ù²Ü ¼ö ÀÖ´Ù.
EmbeddedJava¸¦ ä¿ëÇÑ Á¦Ç°¿¡´Â Java Powered ·Î°í¸¦ »ç¿ëÇÑ´Ù. PersonalJava¸¦ ä¿ëÇÑ Á¦Ç°¿¡´Â Java Compatible ·Î°í¸¦ »ç¿ëÇÑ´Ù.
¡¡

PersonalJava´Â Java API·Î¼­ ³»ÀåÇü Àåºñ¿¡¼­ ¼öÇàµÇ´Â ³×Æ®¿öÅ© ÀÀ¿ëÇÁ·Î±×·¥À» À§ÇÑ JAEÀÌ´Ù. PersonalJava´Â µ¥½ºÅ© ž ÄÄÇ»Åͺ¸´Ù´Â ¼Âž¹Ú½º¿Í ½º¸¶Æ® Æù °°Àº Ç÷§ÆûÀ» ¸ñÀûÀ¸·Î Çϰí Àֱ⠶§¹®¿¡ PersonalJava API´Â JDK1.1 APIº¸´Ù ÈξÀ ÀÛ¾Æ¾ß ÇÑ´Ù. µû¶ó¼­ PersonalJava´Â ÃÖ¼ÒÀÇ ¸Þ¸ð¸®¸¦ »ç¿ëÇϸ鼭µµ °íµµ·Î È®À强ÀÌ ³ô°í À籸¼º °¡´ÉÇÏ´Ù. PersonalJava´Â ´ÙÀ½°ú °°Àº »çÇ×À» ¸¸Á·Çϵµ·Ï ¼³°èµÇ¾î ÀÖ´Ù.

¡¡

ÇöÀç PersonalJava 1.0 API´Â JDK1.1 APIÀÇ ºÎºÐÁýÇÕÀ¸·Î ³×Æ®¿öÅ· ±â´ÉÀ» °¡Áø ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î¸¦ À§ÇÏ¿© ÇÊ¿äÇÑ »õ·Î¿î API¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù. ½ã»ç¿¡¼­´Â EnterpriseJava¿Í´Â ´Þ¸® EmbeddedJava¿Í PersonalJava¸¦ À§ÇÑ °³¹ß µµ±¸ÀÎ Romizer 2, ÀÚ¿ø ¿¹Ãø±â, Configuration Tool, Lint¿Í À¯»çÇÑ µµ±¸, ÄÄÆÄÀÏ·¯, Áõ¸íµµ±¸ µîÀ» Á¦°øÇϴµ¥ Ç¥ 5´Â µð¹ÙÀ̽º °³¹ßÀÚ¿Í ÀÀ¿ë °³¹ßÀÚ¸¦ À§ÇÑ ÁÖ¿ä °³¹ß µµ±¸¸¦ ±â¼úÇÑ °ÍÀÌ´Ù.

¡¡

Ç¥ 5. EmbeddedJava¿Í PersonalJava¸¦ À§ÇÑ ÁÖ¿ä °³¹ß µµ±¸
 
°³¹ßµµ±¸
±â´É
JavaConfig
±×·¡ÇÈ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇϸç Ŭ·¡½º ¼±Åñâ(class selector)¿Í Ŭ·¡½º ÀÇÁ¸¼º ºÐ¼®±â(class dependency analyzer)¸¦ Æ÷ÇÔÇÏ¸ç ¼±ÅÃµÈ Å¬·¡½ºµé¿¡ ´ëÇÑ Á¤Àû Àбâ-Àü¿ë, Àбâ-¾²±â ¸Þ¸ð¸® ¿ä±¸·®À» ¿¹ÃøÇÑ´Ù.
JavaCheck
Ŭ·¡½º ÆÄÀÏÀÌ PersonalJava, EmbeddedJava JAE ¸í¼¼¿¡ ºÎÇÕÇÏ´ÂÁö °Ë»çÇÑ´Ù.
JavaCodeCompat
¿©·¯ °³ÀÇ Å¬·¡½º ÆÄÀÏ(ÀÚ¹Ù ÄÚµå)À» ¾ÐÃàÇÏ¿© ÇϳªÀÇ ´ÙÁß Å¬·¡½º ÆÄÀÏ·Î ¸¸µé¾î ÁÖ¸ç, ¾î¼Àºí·¯¿Í ÇÔ²² Ç÷§Æû µ¶¸³ÀûÀÎ ÆÄÀÏ(Ŭ·¡½ºÈ­ÀÏ)À» ¸ñÇ¥ ½Ã½ºÅÛ¿¡ ÀÇÁ¸ÀûÀÎ ÆÄÀÏ·Î º¯È¯ÇÑ´Ù.
JavaDataCompact
HTML, image, sound¿Í °°Àº µ¥ÀÌÅ͸¦ ´ÙÁß Å¬·¡½º ÆÄÀÏ·Î ÀÔ·ÂÇÏ¿© ¾î¼Àºí·¯¿Í ÇÔ²² ¸ñÇ¥ ½Ã½ºÅÛ¿¡ ÀÇÁ¸ÀûÀÎ ÆÄÀÏ Çü½ÄÀ¸·Î º¯È¯ÇÑ´Ù.
¡¡

EmbeddedJava¿¡ ´ëÇÑ »ç¾çÀº ÇöÀç ¹ßÇ¥µÇ¾î ÀÖÁö ¾Ê¾Æ Á¤È®ÇÑ ±Ô°ÝÀº ¾Ë ¼ö ¾ø´Â ½ÇÁ¤ÀÌ´Ù

¡¡

2. EmbeddedJava, PersonalJava ¹× EnterpriseJava ºñ±³

EmbeddedJava¿Í PersonalJava¸¦ ±¸¼ºÇÏ´Â ¿ä¼ÒµéÀ» EnterpriseJava¿Í ºñ±³ÇÔÀ¸·Î½á ÀÌ APIµé Â÷À̰¡ ´õ¿í ºÐ¸íÇØ Áø´Ù. ±×¸² 1Àº EmbeddedJava, PersonalJava, EnterpriseJava¸¦ ±¸¼ºÇÏ´Â ¿ä¼ÒµéÀ» ³ªÅ¸³½ °ÍÀÌ´Ù. ÀÌ¹Ì ±â¼úÇÑ ¹Ù¿Í °°ÀÌ °¢ JAE´Â »óÀ§ JAE°¡ °¡Áö´Â APIÀÇ ºÎºÐÁýÇÕ°ú °íÀ¯ÀÇ API·Î ±¸¼ºµÈ´Ù. ÇöÀç ¸¹Àº Java APIµéÀÌ ¹ßÇ¥µÇ¾î ÀÖÁö¸¸, °¢ APIµéÀº JAE¸¦ ±âº»ÀûÀ¸·Î ±¸¼ºÇÏ´Â °Í, Javasoft°¡ ¿É¼ÇÀ¸·Î Á¦°øÇÏ¿© ±âº» ±¸¼º¿¡ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â °Í, JavaSoft ¶Ç´Â third party¿¡ ÀÇÇØ ¿É¼ÇÀ¸·Î Á¦°øµÇ¾î ±âº» ±¸¼º¿¡ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â °Í µîÀÇ ¼¼°¡Áö·Î ºÐ·ùµÈ´Ù. °¢°¢Àº ±×¸² 1¿¡¼­ ¡°Required¡±, ¡°JavaSoft Optional¡±, ¡°Optional JavaSoft/3rd Party¡±·Î Ç¥±âµÇ¾î ÀÖ´Ù.

EmbeddedJavaÀÇ JAE ±¸¼ºÀ» »ìÆìº¸¸é ¸ÕÀú Java ¾ÖÇø´À» Áö¿øÇϱâ À§ÇÑ ±¸¼º ¿ä¼Ò°¡ ºüÁ® ÀÖ¾î EmbeddedJava´Â Java ¾ÖÇø®ÄÉÀ̼Ǹ¸À» ¼öÇàÇÑ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ±×¸®°í ¸ðºô Æù, ÆäÀÌÀú µî°ú °°Àº µð¹ÙÀ̽ºÀÇ LCDÆÐ³Î¿¡ ¹®ÀÚ¸¦ Ç¥½ÃÇϱâ À§ÇÏ¿© ´Ù¸¥ JAE¿¡´Â ¾ø´Â ¹®ÀÚ ±â¹Ý AWT°¡ ÀÖ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. PersonalJava´Â EmbeddedJava¿Í´Â ´Þ¸® Java ¾ÖÇø´À» °¡Áö°í ÀÖ¾î À¬ ºê¶ó¿ì¡ Æù°ú °°ÀÌ Á¦¾àµÈ Çϵå¿þ¾î ȯ°æÀÌÁö¸¸ ¾ÖÇø´¿¡ ´ëÇÑ È£È¯¼ºÀÌ ¿ä±¸µÇ´Â ȯ°æ¿¡ »ç¿ëµÇ´Â JAEÀÓÀ» ¾Ë ¼ö ÀÖ´Ù.

¡¡

¡¡

¡¡

¡¡

±×¸² 1. JAE ±¸¼º ¿ä¼Ò ºñ±³

¡¡

JAEÀÇ ±¸¼º ¿ä¼Ò Áß AWT´Â °¡Àå ¸¹Àº Â÷À̰¡ ³ª´Â ºÎºÐÀÌ´Ù. ±×¸² 2´Â °¢ JAEÀÇ AWT¸¦ ±¸¼ºÇϰí ÀÖ´Â API¸¦ º¸¿© ÁÖ°í ÀÖ´Ù. È­»ìÇ¥´Â ÇÏÀ§ JAE¿¡ Á¸ÀçÇÏ´Â ±â´ÉµéÀÌ »óÀ§ JAE¿¡ Á¸ÀçÇÔÀ» º¸À̰í ÀÖÀ¸¸ç, Full ImplementationÀº ±¸ÇöµÈ »óŸ¦ ³ªÅ¸³»°í API¡¯s only´Â API¸¸ Á¤ÀÇµÇ°í ±¸ÇöµÇÁö ¾Ê¾ÒÀ½À» ³ªÅ¸³»´Ù. ±×¸² 2³»¿¡ ³ª¿­µÈ À̸§µéÀº AWT¸¦ ±¸¼ºÇÏ´Â Java Ŭ·¡½ºÀÇ À̸§ÀÌ´Ù.

¡¡

¡¡
±×¸² 2. JAE°£ÀÇ AWT Â÷ÀÌ


IV. ÀÚ¹Ù±â¼úÀ» Àû¿ëÇÑ ³»ÀåÇü ½Ã½ºÅÛ °³¹ß »ç·Ê

¹Ì¾²ºñ½Ã¿Í UCSC(University of California, Santa Cruz)¿¡¼­´Â ½ãÀÇ EmbeddedJava/PersonalJava ±â¼úÀÌ ±¸Ã¼È­µÇ±â Àü¿¡ ÀÌ¹Ì Java ±â¼úÀ» Àû¿ëÇÏ¿© ³»ÀåÇü ½Ã½ºÅÛÀ» °³¹ßÇÏ¿´´Ù. ¶ÇÇÑ ÃÖ±Ù¿¡ Acorn, Chorus, GeoWorks, Lucent Technologies, Microtec, Microware[7], QNX, WindRiver[5] µîÀÇ ½Ç½Ã°£ ¿î¿µÃ¼Á¦ ¾÷üµéÀÌ ½ãÀÇ EmbeddedJava¿Í PersonalJava¸¦ ¶óÀ̼¾½ºÇÔÀ¸·Î½á °¢ ȸ»çÀÇ ½Ç½Ã°£ Ç÷§Æû°ú EmbeddedJava¿Í PersonalJava¸¦ ÅëÇÕÇÏ¿© EmbeddedJava¿Í PersonalJava¸¦ ÆÇ¸ÅÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. EmbeddedJava¿Í PersonalJava¸¦ ¶óÀ̼¾½ºÇÑ ¾÷üµéÀÇ ½ÃÀå Á¡À¯À²ÀÌ Àüü »ó¿ë ½Ç½Ã°£ ¿î¿µÃ¼Á¦ ½ÃÀåÀÇ 50%ÀÌ»óÀ» Â÷ÁöÇϰí ÀÖÀ½À» º¼ ¶§ ÇâÈÄ¿¡´Â Java ±â¼úÀÌ ³»ÀåÇü ½Ã½ºÅÛ ½ÃÀåÀ» ¼®±ÇÇÒ °ÍÀ¸·Î º¸ÀδÙ. ½Ç½Ã°£ ¿î¿µÃ¼Á¦¸¦ »ç¿ëÇϴ ȸ»ç¿¡ ´ëÇÑ ¼³¹® Á¶»ç °á°ú¿¡ ÀÇÇϸé WindRiver»çÀÇ VxWorks, Enea OSE System»çÀÇ OSE, Microware»çÀÇ OS-9, Lynx Real-Time Systems»çÀÇ LynxOS, Microtec»çÀÇ VRTX µîÀÇ ½Ç½Ã°£ ¿î¿µÃ¼Á¦µéÀÌ Àüü ½ÃÀåÀÇ 25%, 18%, 16%, 15%, 12% Á¤µµ¸¦ Â÷ÁöÇϰí ÀÖ´Â °ÍÀ¸·Î ³ªÅ¸³µ´Ù[4]. ÁÖ¸ñÇÒ ¸¸ÇÑ °ÍÀº ½ãÀÌ 1997³â »ó¹Ý±â¿¡ ÀμöÇÑ Á¤º¸±â±â °³¹ß ¾÷üÀÎ Diba°¡ Microware»ç¿Í Çù·Â°ü°è¸¦ ¸Î°í ÀÖ°í 1997³â 9¿ù¿¡ Chorus»çµµ ÀμöÇÔÀ¸·Î½á ½ãµµ ³»ÀåÇü ½Ç½Ã°£ ½Ã½ºÅÛ ½ÃÀå¿¡ Á÷Á¢ ÁøÃâÇϰí ÀÖ´Ù´Â Á¡ÀÌ´Ù.

Åë½Å ȸ»çÀÎ Alcatel, Nortel ¹× »ï¼ºµµ ÃÖ±Ù¿¡ PersonalJava¸¦ ±×µéÀÇ »õ·Î¿î À¥Æù Á¦Ç°¿¡ °áÇÕ½Ã۱â·Î °øÇ¥ÇÏ¿´À¸¸ç, ÀÌ ¼¼ ȸ»ç´Â ¿¬°£ 1,100¾ïºÒÀÇ À¥Æù ½ÃÀåÀ» Á¡À¯ÇÒ °ÍÀ¸·Î ¿¹ÃøµÈ´Ù.

Java¸¦ žÀçÇÑ È¯°æÀº ¿î¿µÃ¼Á¦¿Í Java°¡ »ç¿ëÇÏ´Â ¿î¿µÃ¼Á¦ API»çÀÌÀÇ Â÷À̸¦ ±Øº¹Çϱâ À§ÇÏ¿© ÀûÀÀ °èÃþÀ» µÎ´Â °ÍÀÌ Æ¯Â¡ÀÌ´Ù. ±×·¡¼­, PersonalJava¸¦ »ç¿ëÇϰíÀÚ ÇÑ´Ù¸é, ½Ç½Ã°£ ¿î¿µÃ¼Á¦, Java ÀûÀÀ °èÃþ, PersonalJava µîÀÇ ¼¼°¡Áö ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ ¶óÀ̼¾½º ºñ¿ëÀ» ºÎ´ãÇÏ¿©¾ß ÇÑ´Ù. ´ÙÀ½¿¡ ¹Ì¾²ºñ½ÃÀÇ Java ±â¼úÀ» ±â¹ÝÀ¸·Î ÇÑ ³»ÀåÇü ½Ã½ºÅÛÀÎ M32R/D, UCSCÀÇ JN, WindRiverÀÇ Tornado for Java, MicrowareÀÇ Java ȯ°æÀ» ¼³¸íÇÑ´Ù.

¡¡

1. ¹ÌÂêºñ½ÃÀÇ ¡°Java on M32R/D¡±

¹ÌÂêºñ½Ã¿¡¼­´Â ½ã»çÀÇ EmbeddedJava/PersonalJava °èȹÀ» ¹ßÇ¥Çϱâ ÀÌÀü¿¡ ¡°Java in eRAM¡± Á¤Ã¥À» ÅëÇÏ¿© Java ±â¼úÀ» ³»ÀåÇü µð¹ÙÀ̽º °³¹ß¿¡ Àû¿ëÇÏ¿© ¿ÔÀ¸³ª ÇâÈÄ¿¡´Â ½ãÀÇ EmbeddedJava/PersonalJava±â¼ú°ú ÀÚ»çÀÇ eRAM ±â¼úÀ» °áÇÕÇÏ¿© ±â´ÉÀÌ Ç³ºÎÇÏ°í »ç¿ëÇϱⰡ ½¬¿ì¸ç ÀûÁ¤ÇÑ °¡°ÝÀÇ °¡ÀüÁ¦Ç°°ú ³×Æ®¿öÅ© Àåºñ¸¦ °³¹ßÇÏ´Â °ÍÀ¸·Î ¹æÇâÀ» ¼±È¸ÇÏ¿´´Ù. Áï, ÇâÈÄÀÇ ¹Ì¾²ºñ½ÃÀÇ "Java in eRAM" Àü·«Àº ÀÚ»çÀÇ eRAM(´ÜÀÏ Ä¨¿¡ RAM, Á¶Á÷ ¹× ÇÁ·Î¼¼¼­¸¦ ³»ÀåÇÔ) ±â¼ú¿¡ Java ¾ð¾î¸¦ °áÇÕÇÔÀ¸·Î½á ÀÀ¿ë ºÐ¾ß¿¡ µû¶ó ÀûÇÕÇÑ Á¶°ÇÀÇ ³»ÀåÇü ½Ã½ºÅÛÀ» °³¹ßÇÏ¿© °æÀï·ÂÀ» ³ôÀÌ´Â °ÍÀÌ´Ù.

¹Ì¾²ºñ½ÃÀÇ EmbeddedJava/PersonalJava À̽ÄÀ» À§ÇÑ Å¸°Ù ÇÁ·Î¼¼¼­´Â M32R/DÀ̸ç, M32R/D´Â ÇÁ·Î¼¼¼­(32bit RISC), ¸Þ¸ð¸®(2M DRAM + 2K Cache), ÁÖº¯ ·ÎÁ÷(32b * 16b DSP, ¾îÅ¥¹Ä·¹ÀÌÅÍ, ¸Þ¸ð¸® Á¦¾î±â µî)À¸·Î ±¸¼ºµÈ ĨÀÌ´Ù. M32R/D»ó¿¡ Java Runtime, HotJava Core Library, Network Class Library, Display Class Library µîÀÇ Java ȯ°æÀ» 2³â ÀüºÎÅÍ À̽ÄÇÏ¿´´Ù. Áï, M32R/DÀÇ ¸Þ¸ð¸® »ó¿¡ Java ¼öÇà ȯ°æÀ» ±âº»ÀûÀ¸·Î žÀçÇÑ °ÍÀε¥, ±×¸² 3¿¡¼­¿Í °°ÀÌ ¼Ò±Ô¸ð ½Ç½Ã°£ Ä¿³ÎÀ» Áß½ÉÀ¸·Î ÇÏ¿© Java ¶óÀ̺귯¸®¿Í Java ¼öÇà ȯ°æÀ» ±âº»ÀûÀÎ ¼ÒÇÁÆ®¿þ¾î ȯ°æÀ¸·Î Æ÷ÇÔÇϰí ÀÖ´Ù. ±×¸² 3ÀÇ Àüü ±¸Á¶´Â »õ·Î¿î ÀÀ¿ë µð¹ÙÀ̽º¸¦ °³³äÀûÀ¸·Î Ç¥ÇöÇϴµ¥, Java Ç÷§ÆûÀ» °¡Áø M32R/D¿¡ Àüü µð¹ÙÀ̽º¸¦ Á¦¾îÇÏ´Â Java ¾ÖÇø´ ÇüÅÂÀÇ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î¿Í µð¹ÙÀ̽ºÀÇ °íÀ¯ ±â´ÉÀ» Á¦°øÇÏ´Â Çϵå¿þ¾î¸¦ ¹ö½º·Î ¿¬°áÇÏ¿© »õ·Î¿î Á¦Ç°À» ±¸¼ºÇÒ ¼ö ÀÖ´Ù.

¡¡

±×¸² 3. M32R/D¸¦ ±â¹ÝÀ¸·Î ÇÑ Java ³»ÀåÇü µð¹ÙÀ̽º ±¸¼ºµµ

¡¡

Java ±â¼úÀ» ä¿ëÇÑ M32R/DÀÇ ÀÀ¿ëÀº ¸Å¿ì ´Ù¾çÇÏ´Ù. ¹ÌÂêºñ½ÃÀÇ ¹ßÇ¥¿¡ ÀÇÇϸé M32R/D´Â ÀÏÂ÷ÀûÀ¸·Î ÀúÀü·ÂÀ» »ç¿ëÇÏ´Â À̵¿Çü handheld ½Ã½ºÅÛÀÎ PDA, PIC, Data Pager, ¹«¼± Smart Phone µî¿¡ Àû¿ëÇÒ ¿¹Á¤ÀÌ´Ù. ¶ÇÇÑ ³×Æ®¿÷ ÇÁ·ÎÅäÄÝ Á¦¾î±â, µðÁöÅÐ ½ºÆ¿ Ä«¸Þ¶ó, Ç×¹ý ½Ã½ºÅÛ, TV/VCRÀÇ GUI, ºñµð¿À °ÔÀÓ µî°ú °°ÀÌ °í¼º´É°ú ³ôÀº ´ë¿ªÆøÀ» ÇÊ¿ä·Î ÇÏ´Â Åë½Å ¹× ±×·¡ÇÈ Á¦¾î±â¿¡µµ Àû¿ëµÉ ¿¹Á¤ÀÌ´Ù.

¹ÌÂêºñ½Ã¿¡¼­´Â M32R/DÀÇ È¿¿ë¼ºÀ» º¸À̱â À§ÇÏ¿© 97³â JavaOne ÄÁÆÛ·±½º¿¡¼­ ÀÌ´õ³Ý(ethernet)¿¡ ¿¬°áµÈ M32R/D ½Ã½ºÅÛ »ó¿¡¼­ PDA ¾ÖÇø´À» ¼öÇàÇÏ´Â ½Ã¿¬À» º¸ÀÎ ¹Ù ÀÖ´Ù. ±×¸² 4´Â ±× ´ç½Ã »ç¿ëµÇ¾ú´ø Çϵå¿þ¾îÀÇ ºí·Ï ´ÙÀ̾î±×·¥À¸·Î½á M32R/D eRAM°ú ¿©·¯ °¡Áö µð¹ÙÀ̽º¿¡ ´ëÇÑ Á¦¾î ±â´ÉÀ» °¡Áø Super I/O FPGA¸¦ ¹ö½º·Î ¿¬°áÇÑ ÈÄ ÀÔÃâ·Â µð¹ÙÀ̽º(ÅÍÄ¡ ÆÐ³Î, Ä÷¯ LCD)µéÀ» ¿¬°áÇÏ¿´´Ù.

¡¡

±×¸² 4. M32R/D¸¦ »ç¿ëÇÑ PDA Çϵå¿þ¾î ºí·Ï ´ÙÀ̾î±×·¥

¡¡

±×¸² 5´Â ±×¸²4ÀÇ Çϵå¿þ¾î¸¦ ±¸¼ºÇÏ´Â ¼ÒÇÁÆ®¿þ¾î °èÃþÀ» ±×¸²À¸·Î ³ªÅ¸³½ °ÍÀ¸·Î ±âÁ¸¿¡ Win95, Solaris µîÀÇ ¿î¿µÃ¼Á¦ »ó¿¡¼­ ¿î¿µµÇ´Â Java ȯ°æ°ú µ¿ÀÏÇÑ ¼ÒÇÁÆ®¿þ¾î °èÃþÀ» °¡Áø´Ù. ¸¶ÀÌÅ©·Î Ä¿³Î °èÃþÀº TRON»çÀÇ ITRON ½Ç½Ã°£ ¿î¿µÃ¼Á¦¸¦ »ç¿ëÇϰí ÀÖ°í, Java °èÃþÀº EnterpriseJava¸¦ À̽ÄÇÑ °ÍÀÌ´Ù. ±×·¯³ª ÇâÈÄ ¹ÌÂêºñ½Ã´Â EmbeddedJava¿Í PersonalJavaµµ Áö¿øÇÒ ¿¹Á¤ÀÌ´Ù. ±×¸² 4¿Í ±×¸² 5¿¡¼­ Çϵå¿þ¾îÀûÀÎ ±â´ÉÀº °¡´ÉÇÑ ÇÑ ÇϳªÀÇ Ä¨À¸·Î ÅëÀÏÇÏ°í ¼ÒÇÁÆ®¿þ¾î´Â Java ȯ°æÀ» ±â¹ÝÀ¸·Î »ç¿ëÇÏ¿´´Âµ¥, ÀÌ·¯ÇÑ °æ¿ì¿¡´Â »õ·Î¿î Á¦Ç°À» °³¹ßÇÏ´õ¶óµµ À¯»çÇÑ Çϵå¿þ¾î ±¸¼º°ú ¼ÒÇÁÆ®¿þ¾î ±â¹ÝÇÏ¿¡ ³»ÀåÇü ÇÁ·Î±×·¥¸¸À» »õ·ÎÀÌ °³¹ßÇÔÀ¸·Î½á »õ·Î¿î Á¦Ç°À» °³¹ßÇÒ ¼ö Àֱ⠶§¹®¿¡ ¹ÌÂêºñ½ÃÀÇ eRAM Àü·«ÀÌ ¸Å¿ì Ÿ´ç¼º ÀÖ´Â Á¢±Ù ¹æ¹ýÀ¸·Î º¸ÀδÙ.

¡¡

±×¸² 5. M32R/DÀÇ Java ³»ÀåÇü S/W °èÃþµµ

¡¡

¡¡

2. UCSCÀÇ ³»ÀåÇü Java¿Í Java ³ª³ëÄ¿³Î(Nanokernel)

UCSC¿¡¼­´Â Java °¡»ó¸Ó½ÅÀ» Áö¿øÇÏ´Â ³»ÀåÇü ¿î¿µÃ¼Á¦ÀÎ JN(Java Nanokernel)À» National SemiconductorÀÇ ³»ÀåÇü PCÀÎ NS486¿¡ ±¸ÇöÇÏ¿´À¸¸ç, ÀÌ JNÀ» ±â¹ÝÀ¸·Î 1MBÀÇ ÀûÀº ¸Þ¸ð¸®¿¡¼­µµ µ¿ÀÛÇÒ ¼ö ÀÖ´Â JavaCamµµ °³¹ßÇÏ¿´´Ù.

¡¡

  1. JN(Java Nanokernel)
ÀϹÝÀûÀ¸·Î Java ½Ã½ºÅÛÀº 4 ~ 8MBÀÇ RAM ¸Þ¸ð¸®°¡ ¿ä±¸µÇ¸ç JavaSoft¿¡ ÀÇÇØ ÃÖ±Ù¿¡ ¹ßÇ¥µÈ PersonalJava APIµµ 2MBÀÇ RAM°ú 2MBÀÇ ROMÀ» °®Ãá ½Ã½ºÅÛ¿¡¼­ ¼öÇàµÇµµ·Ï ¼³°èµÇ¾î ÀÖÀ¸¸ç ¾ÆÁ÷µµ GUI¿Í ÀϺΠAWT°¡ Æ÷ÇԵǾî¾ß ÇÒ °ÍÀ¸·Î º¸ÀδÙ. UCSC¿¡¼­´Â µð½ºÅ©³ª ROMÀÌ ¾øÀÌ 1MBÀÇ RAM¸¸À¸·Î AWT¸¦ Á¦¿ÜÇÑ core Java package¸¦ Æ÷ÇÔÇÏ¿© ¿ÏÀüÇÑ Java ¾ð¾î¸¦ Áö¿øÇÏ´Â JNÀ̶õ ³»ÀåÇü ¿î¿µÃ¼Á¦¸¦ °³¹ßÇÏ¿´´Ù.

JNÀº ÇöÀç National SemiconductorÀÇ NS486SXF ÇÁ·Î¼¼¼­¿¡¼­ ¼öÇàµÈ´Ù. NS486SXF´Â ´ÜÀÏĨÀÇ 32ºñÆ® 486PC·Î¼­ Ĩ¿¡´Â PCMCIAÁ¦¾î±â, UART Á÷·ÄÆ÷Æ®, ¾ç¹æÇâ º´·ÄÆ÷Æ®, LCD µð½ºÇ÷¹ÀÌ Á¦¾î±â, Ŭ¶ô, ŸÀ̸Ó, DMAÁ¦¾î±â, DRAMÁ¦¾î±â, ÀÎÅÍ·´ Á¦¾î±â µîÀÌ Æ÷ÇԵǾî ÀÖ´Ù. ±×¸²6Àº JNÀ» ±â¹ÝÀ¸·Î ±¸¼ºµÈ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î ȯ°æÀ» ³ªÅ¸³½ °ÍÀ̸ç, JNÀÇ »óÀ§ÀÇ API´Â Java °¡»ó¸Ó½ÅÀ» ÀÀ¿ëÇÁ·Î±×·¥À¸·Î ½ÇÇà½Ã۴µ¥ ÇÊ¿äÇÑ ¼­ºñ½º¿Í TCP/IP ½ºÅÃÀ» À̽ÄÇϴµ¥ ÇÊ¿äÇÑ ¼­ºñ½º¸¸ Æ÷ÇԵǾî ÀÖ´Ù. Áï, ¾²·¹µå, ¸ð´ÏÅÍ, ¼ÒÄÏ ¹× ¿¹¿Üó¸® °ü·Ã API¸¸ ±¸ÇöÇÏ¿´´Ù.

¡¡
±×¸² 6. UCSC ÀÇ Java ³ª³ëÄ¿³ÎÀ» ±â¹ÝÀ¸·Î ÇÑ Java Ç÷§Æû

¡¡

±×¸² 6ÀÇ Java °¡»ó¸Ó½ÅÀº ½ãÀÇ JDK1.0.1ÀÇ Java °¡»ó¸Ó½ÅÀ» JN»ó¿¡¼­ ½ÇÇàµÉ ¼ö ÀÖµµ·Ï ¼öÁ¤ÇÑ °ÍÀ¸·Î ¾à 183KBÀÇ ¸Þ¸ð¸®°¡ ÇÊ¿äÇÏ´Ù.

JNÀº JVM API°¡ Çϵå¿þ¾îÀûÀÎ ½Ç½Ã°£ ¿ä±¸»çÇ×À» ºÎ°úÇÏÁö ¾Ê±â ¶§¹®¿¡ ¿¬¼º ½Ç½Ã°£(soft-real-time) Ä¿³ÎÀ̸ç, ±× Ư¼ºÀ» »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.

JN ½Ã½ºÅÛÀÇ Å©±â´Â Ç¥ 6¿¡¼­Ã³·³ 45KBÀ̸ç JN ³ª³ëÄ¿³ÎÀº ³ª³ëÄ¿³Î ¿öÅ©·çÇÁ, ÃʱâÈ­ ·çƾ, ¾î¼Àºí·¯ Áö¿ø ·çƾÀ» Æ÷ÇÔÇÑ´Ù.

¡¡

Ç¥ 6. Java ³ª³ëÄ¿³ÎÀÇ Å©±â
Ç× ¸ñ
¿øÃµ ÄÚµåÀÇ Å©±â
JN
Java ³ª³ë Ä¿³Î
2.5K
API
4.5K
µå¶óÀ̺ê
3K
½ÃÇè ¹× µð¹ö±ë
7K
TCP/IP
19K
Çϵå¿þ¾î ÃʱâÈ­
8K
ÇÕ°è
45K
¡¡

³ª. JavaCam

UCSC¿¡¼­´Â Java ³ª³ëÄ¿³Î¿¡ ±â¹ÝÇÑ Java °¡»ó ¸Ó½ÅÀ» »ç¿ëÇÑ Ã¹¹øÂ° ÀÀ¿ëÀ¸·Î ¿ø°ÝÀ¸·Î ³×Æ®¿öÅ© Ä«¸Þ¶ó¸¦ µ¿ÀÛ½ÃŰ´Â Java CamÀ» ±¸ÇöÇÏ¿´´Ù. JavaÄ·Àº ¿ø°ÝÁö¿¡ ÀÖ´Â Ä«¸Þ¶ó¸¦ ÀÎÅͳÝÀ» ÅëÇÏ¿© Á¦¾îÇÏ´Â ¿¹·Î½á JavaÄ·ÀÌ ¿Â¶óÀÎ »óÅ¿¡¼­ ³×Æ®¿÷À» ÅëÇÏ¿© ÇÁ·Î±×·¡¹Ö °¡´ÉÇÏ´Ù. ¿©±â¿¡¼­ »ç¿ëÇÑ Ä«¸Þ¶ó´Â ConnectixÀÇ QuickCamÀ¸·Î¼­ °¡°ÝÀº 250ºÒ Á¤µµÀÌ´Ù. Ä«¸Þ¶ó µå¶óÀ̹ö´Â Ä«¸Þ¶ó¿¡°Ô ¸í·É¾î¸¦ º¸³¾ ¼ö ÀÖ´Â °í¼öÁØ ÇÁ·Î±×·¥À» °¡´ÉÇϰÔÇÏ°í ¿µ»óÀ» ¼ö½ÅÇÏ´Â ´Ü¼øÇÑ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù. JavaÄ·Àº Java ¼öÁØ¿¡¼­ ÀÎÅͳÝÀ» ÅëÇØ Ä«¸Þ¶ó¸¦ ¾×¼¼½ºÇϱâ À§ÇÏ¿© Java ¾ÖÇø´À» »ç¿ëÇÑ ¹æ¹ý°ú ¼­ºí¸´À» »ç¿ëÇÑ ¹æ¹ýÀÇ µÎ °¡Áö¸¦ Á¦°øÇÑ´Ù.

¡¡

¡¡

¡¡

±×¸² 7. UCSCÀÇ ³»ÀåÇü Java ÀÀ¿ë : JavaÄ·

¡¡

¾ÖÇø´À» »ç¿ëÇÑ ¹æ¹ýÀº ±×¸² 7°ú °°ÀÌ ÀÛµ¿ÇÑ´Ù. ÀÌ ¹æ½Ä¿¡¼­´Â JavaCam ½Ã½ºÅÛ¿¡¼­ ½ÇÇàµÇ°í ÀÖ´Â HTTP ¼­¹ö°¡ ÀÖÀ¸¸ç, Ŭ¶óÀ̾ðÆ®ÃøÀÇ WWW ºê¶ó¿ìÀú°¡ ÀÌ HTTP ¼­¹ö¿¡ Àû´çÇÑ GET ¸í·É¾î¸¦ º¸³»¸é HTTP ¼­¹ö´Â QuickCamAppletÀ̶õ ¾ÖÇø´À» Æ÷ÇÔÇÑ ÆäÀÌÁö¸¦ ºê¶ó¿ìÀú·Î µÇµ¹·Á º¸³½´Ù. QuickCamAppletÀº JavaCam ½Ã½ºÅÛ¿¡¼­ ½ÇÇàµÇ°í ÀÖ´Â ¶Ç ´Ù¸¥ ¼­¹öÀÎ QuickCamServer¿Í ±³½ÅÀ» ÅëÇÏ¿© ÇÊ¿äÇÑ ¿µ»óÀ» ¾ò°Ô µÈ´Ù. Áï, QuickCamAppletÀº QuickCamServer¿¡°Ô ÆÄ¶ó¹ÌÅ͸¦ Àü¼ÛÇÏ¿© ÇÊ¿äÇÑ ¿µ»óÀ» ¿äûÇÑ´Ù. QuickCamServer´Â JN Ä«¸Þ¶ó µå¶óÀ̹ö ·çƾÀ» È£ÃâÇÏ¿© ¿µ»ó µ¥ÀÌÅ͸¦ »ý¼ºÇϰí, »ý¼ºµÈ µ¥ÀÌÅÍ´Â ³×Æ®¿öÅ©¸¦ ÅëÇØ QuickCamApplet¿¡°Ô º¸³»Á®¼­ °á±¹Àº »ç¿ëÀÚÀÇ ºê¶ó¿ìÀú¿¡ µð½ºÇ÷¹ÀÌ µÈ´Ù.

¾ÕÀ¸·Î UCSC¿¡¼­´Â Java ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾îÀÇ ¼º´É °³¼± ¹× ¸Þ¸ð¸® »ç¿ë·®À» ÁÙÀÌ´Â ¹æ¾È¿¡ ´ëÇÏ¿© ¿¬±¸¸¦ ¼öÇàÇÒ ¿¹Á¤À̸ç, ´õ ³ª¾Æ°¡ ³»ÀåÇü Java ÀÀ¿ëµµ °³¹ßÇÒ ¼öÇàÇÒ ¿¹Á¤ÀÌ´Ù. ÇÏÁö¸¸ Çâ ÈÄ EmbeddedJava/PersonalJavaÀÇ »ç¿ëÀº °í·ÁÇÏÁö ¾Ê°í ÀÖ´Ù.

¡¡

3. WindRiver»çÀÇ Java ȯ°æ

WindRiver»ç´Â ÀÚ»çÀÇ ½Ç½Ã°£ ¿î¿µÃ¼Á¦ÀÎ VxWorks¸¦ Áß½ÉÀ¸·Î ÇÏ¿© Java¸¦ ±â¹ÝÀ¸·ÎÇÏ´Â ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ß ȯ°æÀÎ Tornado for Java¸¦ Á¦°øÇÑ´Ù. WindRiver»çÀÇ Tornado for Java´Â ÇöÀç Sun Sparc, Motorola 680x0, Intel x86, Power PC, Mips R3000/4000¿¡ À̽ĵǾî ÀÖÀ¸¸ç, ±×¸² 8Àº Tornado for Java¿¡ ´ëÇÑ ±¸¼ºµµÀÌ´Ù. ´ÙÀ½Àº Tornado for JavaÀÇ Æ¯Â¡À» ³ªÅ¸³½´Ù.

¡¡
¡¡
±×¸² 8. WindRiver»çÀÇ Tornado for Java

¡¡

4. Microware»çÀÇ Java ȯ°æ

Microware»ç´Â ÀÚ»çÀÇ ½Ç½Ã°£ ¿î¿µÃ¼Á¦ÀÎ Internet OS-9°ú Java ±â¼úÀ» °áÇÕÇÏ¿© ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ß µµ±¸¸¦ Á¦°øÇϰí ÀÖ´Ù. Áï, PowerPC, X86, ARM ¹× StronsARM ÇÁ·Î¼¼¼­¿¡ OS-9°ú Java ±â¼úÀ» ÀåÂøÇÏ¿© ³»ÀåÇü Àåºñ °³¹ßÀ» Áö¿øÇϰí ÀÖ´Ù. ±×¸² 9´Â Internet OS-9ÀÇ ÁÖ¿ä ±¸¼º ¿ä¼Ò´Â ³ªÅ¸³½ °ÍÀ̸ç, ÁÖ¿ä ±¸¼º ¿ä¼Ò¿¡ ´ëÇÑ ¼³¸íÀº ´ÙÀ½°ú °°´Ù.

  1. SPF(Serial Protocol File Manager)
  2. TCP/IP µîÀÇ ´Ù¾çÇÑ ³×Æ®¿öÅ· ÇÁ·ÎÅäÄÝÀ» Á¦°øÇÏ´Â °èÃþ

  3. SCF(Serial Character File Manager)
  4. Á÷·Ä Æ÷Æ®, º´·Ä Æ÷Æ® µî°ú °°Àº ±âº»ÀûÀÎ ¹®ÀÚ À§ÁÖ ÀÔÃâ·Â µð¹ÙÀ̽º¸¦ ´Ù·ç´Â °èÃþ

  5. MAUI(Multimedia Application User Interface)
TV ºê¶ó¿ìÀú, LCD ÆÐ³Î°ú °°Àº ÀÔÃâ·Â µð¹ÙÀ̽º¸¦ À§ÇÏ¿© ÀÛÀº ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ¿© ±×·¡ÇÈ È¯°æÀ» Áö¿øÇÏ´Â °èÃþ

¡¡

±×¸² 9. Internet OS-9ÀÇ ½Ã½ºÅÛ ¼ÒÇÁÆ®¿þ¾î ±¸Á¶

¡¡

V. À̵¿Çü ³×Æ®¿öÅ© ÄÄÇ»ÅÍ

³×Æ®¿öÅ©¿¡ ¿¬°áµÉ ¼ö ÀÖ´Â ´Ù¾çÇÑ À̵¿Çü ÀåºñµéÀÌ ÇâÈÄ 1~2³â À̳»¿¡ ÃâÇöÇÒ °ÍÀ¸·Î º¸ÀδÙ. ÀÌ·¯ÇÑ À̵¿Çü ³×Æ®¿öÅ© ÄÄÇ»ÅÍ Àåºñ(Mobil NC device)ÀÇ ¿¹·Î´Â hand-held PC, Àú°¡Çü ·¦Å¾ PC, °³Àοë Á¤º¸°ü¸®±â(PIMs : Personal Information Managers), ¿öµå ÇÁ·Î¼¼½ÌÀ̳ª ½ºÇÁ·¹µå½¬Æ®°°Àº »ç¹«¿ë ¼ÒÇÁÆ®¿þ¾î, ºñµð¿À ÄÁÆÛ·±½º °°Àº Çùµ¿ÀÛ¾÷, ¿ø°Ý e-mail, ÀÎÅÍ³Ý ¹× ÀÎÆ®¶ó³Ý ¾ï¼¼½º, ÆäÀÌ¡ ½Ã½ºÅÛ, ½º¸¶Æ® Æù µîÀÌ ÀÖ´Ù.

1996³â 5¿ù¿¡ ¾ÖÇÃÄÄÇ»ÅÍ, IBM, ³Ý½ºÄÉÀÌÇÁ, ¿À¶óŬ°ú ½ãÀº ³×Æ®¿öÅ© ÄÄÇ»ÅÍ(NC : Network Computer)¿¡ ´ëÇÑ Ç¥ÁØÀ» Á¤ÀÇÇÏ¿´´Ù[12]. ÀÌ NC Ç¥ÁØÀº À̵¿Çü ³×Æ®¿öÅ© ÄÄÇ»ÅÍ Àåºñ ±¸ÇöÀ» ¹èÁ¦ÇÏÁö´Â ¾Ê¾ÒÁö¸¸, À̵¿Çü ÄÄÇ»ÅÍ Àåºñ¿¡ ´ëÇÑ µ¶Æ¯ÇÑ ¿ä±¸»çÇ×À» ÇØ°áÇØ ÁÖÁö´Â ¸øÇϰí ÀÖ´Ù. µû¶ó¼­ À̵¿Çü ³×Æ®¿öÅ© ÄÄÇ»ÅÍ Àåºñ¿¡ ´ëÇÑ º°µµÀÇ Ç¥ÁØÀÌ ¿äûµÈ´Ù. ´ÙÀ½¿¡ À̵¿Çü ÄÄÇ»ÅÍ ÀåºñÀÇ ¿ä±¸»çÇ×, Àåºñ µî±Þ ºÐ·ù, µ¿ÀÛ ¸ðµå µîÀ» »ìÆì º»´Ù.

¡¡

1. ¿ä±¸»çÇ×

´ëºÎºÐÀÇ NC´Â Áö¼ÓÀûÀÎ ³×Æ®¿öÅ© ¿¬°á°ú »ó´çÇÑ ³×Æ®¿öÅ© ´ë¿ªÆøÀÌ ¿ä±¸µÇ°í ÇØ»óµµ°¡ ³ôÀº µð½ºÇ÷¹À̸¦ °®Ãç¾ß ÇÑ´Ù. À̵¿Çü Àåºñ´Â ¿¬°á ¸ðµå ¹× ¹«¿¬°á ¸ðµå(disconnected mode)ÀÇ ¾çÂÊ¿¡¼­ ÀÛµ¿Çϱâ À§ÇØ ÃÖ¼ÒÇÑ ³·Àº ´ë¿ªÆø°ú ÀúÇØ»óµµ µð½ºÇ÷¹ÀÌ Àåºñµµ ¼ö¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. À̵¿Çü Àåºñ´Â ÀϹÝÀûÀ¸·Î LAN¿¡ Á¢¼ÓµÈ NC¿¡ ºñÇØ ´ë¿ªÆø, ½ºÅ©¸° ÇØ»óµµ, Àü·Â ¹× Å©±â¿¡ À־ Á¦ÇÑÀ» ¹ÞÀ¸¸ç ¶ÇÇÑ ¿¬°á ¸ðµå ¹× ¹«¿¬°á ¸ðµå ȯ°æ¿¡¼­ ¼­¹ö µ¥ÀÌÅ͸¦ ¿¢¼¼½ºÇØ¾ß µÇ°í µ¥ÀÌÅÍ Àϰü¼ºµµ À¯ÁöÇØ¾ß ÇÑ´Ù. À̵¿Çü Àåºñ¿¡¼­ ¹«¿¬°á¸ðµå´Â È£½ºÆ® ¿¬°áÀÌ ¾î·Æ°Å³ª ¿øÄ¡ ¾Ê´Â °æ¿ì¿¡µµ À¯¿ëÇÑ ÀÏÀ» ÇÒ °æ¿ì°¡ Àֱ⠶§¹®¿¡ ÇÊ¿äÇÏ´Ù. ¹«¿¬°á µ¿ÀÛÀÇ Çʿ伺°ú ¼­¹ö µ¥ÀÌÅÍ¿ÍÀÇ Àϰü¼ºÀ» À¯ÁöÇϱâ À§ÇÏ¿© À̵¿Çü Àåºñ¿¡ ÀúÀåÀåÄ¡°¡ ÇÊ¿äÇÏ´Ù. NC »ç¾ç°ú À¯»çÇÏ°Ô À̵¿Çü NC »ç¾çÀº ´Ù¾çÇÑ Àåºñ¸¦ ±¸ÇöÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇÏ¿© ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼­³ª ¿î¿µÈ¯°æ¿¡ µ¶¸³ÀûÀ̾î¾ß ÇÑ´Ù. À̵¿Çü NC »ç¾ç¿¡ ´ëÇÑ ÁÖ¿äÇÑ ¿ä±¸»çÇ×Àº ´ÙÀ½°ú °°´Ù.

¡¡

2. Àåºñµî±Þ

À̵¿Çü NC Àåºñ´Â ´ÙÀ½ÀÇ 3°¡Áö µî±ÞÀ¸·Î Á¤ÀǵȴÙ.

´Ù¾çÇÑ ÀÀ¿äºÐ¾ß¿¡¼­ JavaÀÇ Ç³ºÎÇÑ ±â´ÉÀ» Áö¿øÇÒ ¼ö ÀÖÀ¸¸ç, ¹«¿¬°á ¸ðµå¿¡¼­ ÀÛµ¿µÉ ¼ö ÀÖ°í ÆÄÀÏÀ̳ª ¾îÇø®ÄÉÀÌ¼Ç °»½ÅÀ» À§ÇØ È£½ºÆ® ¼­¹ö¿ÍÀÇ º¹Á¦±â´ÉÀ» Áö¿øÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ µ¥ÀÌÅͺ£À̽º ¾ï¼¼½º, e-mail, ÇÁ¸°ÆÃ, µð·ºÅ丮¼­ºñ½º, ±âÁ¸ÀÇ ¿£ÅÍÇÁ¶óÀÌÁî ÀÀ¿ëÇÁ·Î±×·¥ ¾ï¼¼½º, º¸¾È, À¥ºê¶ó¿ì¡ ±â´Éµîµµ ó¸®ÇÒ ¼ö ÀÖ´Ù. Àü¿ëÀåºñº¸´Ù ±â´ÉÀÌ ÀûÀ¸¸ç ÁÖ·Î Á¤º¸ ¾ï¼¼½º¸¦ ¸ñÀûÀ¸·Î ÇÑ´Ù. À¥ ºê¶ó¿ì¡°ú ±âº»ÀûÀÎ e-mail ±â´ÉÀÌ Áö¿øµÇ¸ç Java ¾ÖÇø´À» Á¦ÇÑÀûÀ¸·Î Áö¿øÇÑ´Ù. ÀÌ Àåºñ´Â ³×Æ®¿öÅ© ¿¬°á¿¡ Á»´õ ÀÇÁ¸ÀûÀ̱â´Â Çϳª Á¦ÇÑÀûÀÎ ±â´ÉÀÇ ¹«¿¬°á ¸ðµå¸¦ Á¦°øÇÑ´Ù. ÀÌ·± ÇüÅÂÀÇ Àåºñ´Â ¿©·¯°¡Áö ¼­¹ö ¹× ¼­ºñ½º Á¦°øÀÚ¿Í Åë½ÅÇÏ°í »óÈ£ ¿¬µ¿ÇÒ ¼ö ÀÖ´Ù. ¸Å¿ì ±âº»ÀûÀÎ ¸Þ¼¼Â¡, ÆäÀÌ¡ ¹× ÀüÈ­ ±â´É Á¦°øÀåºñ·Î¼­ »ç¹«½Ç °¡±îÀÌ ÀÖ´Â ±Ù¹«ÀÚ¸¦ ´ë»óÀ¸·Î Çϰí ÀÖ´Ù. Á¦ÇÑÀûÀÎ ºê¶ó¿ì¡ ±â´ÉÀ» Á¦°øÇÑ´Ù.

¡¡

À̵¿Çü NC´Â Ãʱ⿡´Â Àü¿ëÀåºñ¸¦ ¸ñÇ¥·Î ÇÏ¿´À¸¸ç, Àü¿ëÀåºñ´Â °¡²û ¿©ÇàÀ» Çϸ鼭 ¿ø°ÝÁö¿¡¼­ ÀÏÀ» ÇÏ´Â Àü¹® Á÷ÀåÀÎÀ» À§ÇÏ¿© ¼³°è µÇ¾úÀ¸¸ç, ³×Æ®¿öÅ©¿¡ ¿¬°áµÇ¸é NC¿Í µî°¡ÀÇ ±â´ÉÀ» Á¦°øÇÑ´Ù. À̵¿Çü NC´Â ÇöÀçÀÇ ·¥Å¾ ÄÄÇ»ÅÍ¿¡¼­ Á¦°øÇÏ´Â ¸ðµç ±â´ÉÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê±â ¶§¹®¿¡ ·¥Å¾ PC¿¡ ºñÇØ °¡°ÝÀÌ ½Î°í º¸¾È ±â´ÉÀÌ °­È­µÇ°í Å©±â°¡ ÀûÀº Àåºñ¸¦ ¸¸µé¼ö ÀÖ´Ù.

¡¡

3. µ¿ÀÛ¸ðµå

¡¡

À̵¿Çü NC´Â 3°¡Áö ¸ðµå¿¡¼­ ÀÛµ¿µÈ´Ù.

ÄÚµå¿Í µ¥ÀÌÅͰ¡ ³×Æ®¿öÅ©·ÎºÎÅÍ ¾ï¼¼½ºµÇ¸ç, º¸Åë ´ë±Ô¸ð ÇÁ·Î±×·¥ÀÇ º¯°æ µî¿¡ ÀÌ¿ëµÉ ¼ö ÀÖ´Ù. ÀÌ ¸ðµå¿¡¼­ Àåºñ´Â µ¥½ºÅ© ž NCó·³ µ¿ÀÛÇÑ´Ù. µ¥ÀÌÅÍ´Â ³×Æ®¿öÅ©¸¦ ÅëÇØ¼­ ¿¬°áµÇ³ª ÄÚµå´Â ¼±ÅÃÀûÀ¸·Î ´Ù¿î ·ÎµåµÈ´Ù. ¿¬°áÀÌ ¼³Á¤µÉ¶§±îÁö µ¥ÀÌÅÍ´Â ¼­¹ö¿Í Ŭ¶óÀÌ¾ðÆ®¿¡ º¸°üµÈ´Ù.

¡¡

¡¡

¡¡

VI. JavaChips

¡¡

1. JavaChips °³¿ä

¿À´Ã³¯ »ç¶÷µéÀº Á÷Àå, »ç¹«½Ç ȤÀº °¡Á¤»ýȰÀ» ÅëÇØ Æò±Õ 10°³ ÀÌ»óÀÇ ¸¶ÀÌÅ©·Î ÄÁÆ®·Ñ·¯¿¡ ÀÇÁ¸ÇÏ¿© »ì¾Æ°¡°í ÀÖÀ¸¸ç, ±Ý¼¼±â ¸»¿¡´Â ¼¿·ê¶óÆù, ¼Âž¹Ú½º, PDA, Àú°¡Çü ³×Æ®¿öÅ© Å͹̳ΠµîÀÇ ÀÌ¿ë Áõ°¡·Î °¡Á¤¿¡¼­µµ Æò±Õ 50 ~ 100°³ÀÇ ¸¶ÀÌÅ©·Î ÄÁÆ®·Ñ·¯°¡ Ȱ¿ëµÉ °ÍÀ¸·Î º¸ÀδÙ[11]. ÀÌ·¯ÇÑ Àú°¡ÀÇ ³»ÀåÇü ½Ã½ºÅÛ¿¡µµ Java ±â¼úÀº ±Þ¼ÓÇÏ°Ô ±× Ȱ¿ëµµ¸¦ ³ô¿©°¡°í ÀÖ´Ù.

³»ÀåÇü ½Ã½ºÅÛÀº ¼ÒÇüÈ­, ÀúÀü·Â, ½Å·Ú¼º µîÀÇ Æ¯¼ºÀÌ ¿ä±¸µÇ±âµµ ÇÏÁö¸¸ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ºü¸¥ ¼öÇàÀÌ °¡Àå ¿ä±¸ µÈ´Ù. Áö±Ý±îÁö Java ÀÀ¿ëÇÁ·Î±×·¥À» ¼öÇà½Ã۱â À§ÇÑ Ç¥ÁØÈ¯°æÀº ±×¸² 10ÀÇ 1ó·³ Java °¡»ó ¸Ó½ÅÀÇ ÀÎÅÍÇÁ¸®ÅÍ(Interpreter)¸¦ »ç¿ëÇÏ¿© ¹ÙÀÌÆ®Äڵ带 ¼öÇàÇÏ´Â ÇüÅÂÀÌ´Ù. ÀÎÅÍÇÁ¸®Å͸¦ ÀÌ¿ëÇÏ¸é ½±°Ô ´Ù¸¥ ½Ã½ºÅÛÀ¸·Î À̽ÄÀÌ °¡´ÉÇÏÁö¸¸ ÀÎÅÍÇÁ¸®Æ®µÈ Äڵ带 ÀÌ¿ëÇϱ⠶§¹®¿¡ »ó´ëÀûÀ¸·Î ½ÇÇà¼Óµµ°¡ ´À·ÁÁø´Ù. ½ÇÇà¼Óµµ¸¦ ³ôÀ̱â À§ÇÑ ¹æ¾ÈÀ¸·Î ±×¸² 10ÀÇ 2ó·³ JIT(Just-In-Time) ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ ÀÖÀ¸³ª 3¹è Á¤µµ·Î ÄÚµå Å©±â°¡ È®ÀåµÇ±â ¶§¹®¿¡ ÀûÀº ¸Þ¸ð¸®¸¦ »ç¿ëÇϸ鼭 °¡°Ý¿¡ ¹Î°¨ÇÑ ³»ÀåÇü ½Ã½ºÅÛ¿¡´Â ÀûÇÕÇÏÁö ¾Ê´Ù. ÄÚµå Å©±â¸¦ º¯È­ ½ÃŰÁö ¾ÊÀ¸¸é¼­µµ ½ÇÇà ¼Óµµ¸¦ Çâ»ó½ÃŰ´Â ¹æ¾ÈÀ¸·Î´Â ±×¸² 10ÀÇ 3ó·³ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­¿¡¼­ Java Äڵ带 Á÷Á¢ ½ÇÇà½ÃŰ´Â °ÍÀÌ´Ù.

¡¡

¡¡

¡¡

±×¸² 10. Java ¼öÇà ȯ°æ

¡¡

½ãÀÇ ÀÚȸ»çÀÎ ½ã¸¶ÀÌÅ©·Î ÀÏ·ºÆ®·Î´Ð½º´Â JavaSoft¿Í ÇÔ²² Java ÇÁ·Î±×·¥ÀÇ ¼öÇà ¼Óµµ¸¦ Çâ»ó½Ã۱â À§ÇÏ¿© picoJavaTM, microJavaTM, UltraJavaTM¶õ ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼­¸¦ °³¹ßÇÏ¿´À¸¸ç ÀÌ ¼¼ ÇÁ·Î¼¼¼­´Â JavachipTM ÆÐ¹Ð¸®¸¦ ÀÌ·é´Ù. picoJava IÀº Java °¡»ó¸Ó½ÅÀ» Áö¿øÇÏ´Â ¸¶ÀÌÅ©·Î ÇÁ·Î¼¼¼­¿¡ ´ëÇÑ »ç½Ç»óÀÇ Ç¥ÁØ »ç¾çÀ¸·Î, ĨÀ¸·Î Java °¡»ó¸Ó½ÅÀ» ±¸ÇöÇϱ⠶§¹®¿¡ Java ¹ÙÀÌÆ®Äڵ带 Á÷Á¢ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.

microJava¿Í UltraJava´Â picoJava IÀÇ »ç¾ç¿¡ ±â¹ÝÀ» µÎ¾î ¼³°èµÇ¾úÀ¸¸ç, microJava´Â picoJava¿¡ application-specific I/O, ¸Þ¸ð¸®, Åë½Å, Á¦¾î ±â´É µîÀÌ Ãß°¡µÈ °ÍÀÌ´Ù. ÇÏÁö¸¸ UltraJava ÇÁ·Î¼¼¼­´Â °í¼º´É Java ÇÁ·Î¼¼¼­·Î½á UltraSPARC¿¡ »ç¿ëµÇ¾ú´ø VIS±â¹ý(ÇÁ·Î¼¼¼­ ³»ºÎ¿¡¼­ 2D/3D ±×·¡ÇÈ/À̹ÌÁö ó¸®, ºñµð¿À ¾ÐÃà ¹× º¹¿ø, ¿Àµð¿À, ³×Æ®¿öÅ·, µîÀÇ ¾Ë°í¸®ÁòÀ» Áö¿øÇÏ´Â °Í)À» »ç¿ëÇÏ´Â °ÍÀ¸·Î ¾Ë·ÁÁö°í ÀÖ´Ù. Ç¥ 7Àº JavachipÀÇ ÀÀ¿ë ȯ°æÀ» Á¤¸®ÇÑ °ÍÀÌ´Ù

¡¡

Ç¥ 7. JavaChipsÀÇ ºÐ·ù
 
JavaChips
ÀÀ¿ë ȯ°æ
°¡°Ý
PicoJava
NC, PDA, ½º¸¶Å© Æù, Àú°¡/ÀúÀü·Â °¡Àü µð¹ÙÀ̽º $25 ¹Ì¸¸
MicroJava
NC, Àú°¡ ³×Æ®¿÷ µð¹ÙÀ̽º, PDA, Àü±â Åë½Å ±â±â, °ÔÀӱ⠵î $25 ~ $50
UltraJava
NC, À¥PC µîÀÇ µ¥½ºÅ©Åé ȯ°æ ¾à $100
¡¡

2. picoJava I±¸Á¶
picoJava IÀº RISC ÇüÅ·μ­ ¼º´ÉÀ» Çâ»ó½Ã۱â À§ÇÏ¿© ±×¸² 11ó·³ ¸Å¿ì °£´ÜÇÑ ±¸Á¶¸¦ °¡Áö¸ç, ´Ù¾çÇÑ ³»ÀåÇü µð¹ÙÀ̽º¿¡ ÀÀ¿ë µÉ ¼ö ÀÖµµ·Ï Çϱâ À§ÇÏ¿© µ¥ÀÌÅÍ Ä³½¬ ¹× ¸í·É¾î ij½¬ÀÇ Å©±â´Â °¡º¯ÀûÀ¸·Î ÇÏ°í ºÎµ¿ ¼Ò¼öÁ¡ ¿¬»êºÎµµ ¼±ÅÃÀûÀ¸·Î »ç¿ëÇÏ´Â µî ±¸¼ºÀ» Á¶ÀýÇÒ ¼ö ÀÖ´Ù.

¡¡
±×¸² 11. picoJava ºí·Ï ´ÙÀ̾î±×·¥

¡¡

°¡. 4´Ü°è ÆÄÀÌÇÁ¶óÀÎ

picoJava IÀº ±×¸² 12¿Í °°ÀÌ RISC ÆÄÀÌÇÁ¶óÀΰú À¯»çÇÑ 4 ´Ü°è ÆÄÀÌÇÁ¶óÀÎÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù. °è»ê ¸í·É¾î´Â ½ºÅà µ¥ÀÌÅÍ¿¡ ´ëÇØ¼­¸¸ µ¿ÀÛÇÏ°í ¸Þ¸ð¸® µ¥ÀÌÅÍ¿¡ ´ëÇØ¼­´Â µ¿ÀÛÇÏÁö ¾Ê±â ¶§¹®¿¡ °è»ê ¸í·É¾î¿Í ¸Þ¸ð¸® ¸í·É¾î¸¦ ÆÄÀÌÇÁ¶óÀÎÀ¸·Î ó¸®ÇÏ°Ô ÇÑ´Ù. picoJava IÀÇ ÆÄÀÌÇÁ¶óÀÎÀº °´Ã¼ ÁöÇâ ÇÁ·Î±×·¥ÀÇ ¼º´ÉÀ» À§ÇØ °³¼±µÇ¾ú´Ù. ¿¹¸¦ µé¾î Áö¿ª º¯¼öÀÇ ·Îµå¸¦ ¼û±â´Â ±â´É°ú ÇÔ²² Á¦°øµÇ´Â ¸Þ½îµå È£Ãâ, ¾²·¹µå µ¿±âÈ­ ±×¸®°í °í¼º´É °¡ºñÁö Ä÷º¼Ç ±â´ÉÀ» Áö¿øÇÏ´Ù. µ¥ÀÌÅÍ Ä³½¬¿Í ¸í·É¾î ij½¬ÀÇ Å©±â´Â 0~16kbyte±îÁö Á¶ÀýÇÒ ¼ö ÀÖÀ¸¸ç, hit rate¸¦ °³¼±Çϱâ À§ÇÏ¿© two-way, set associative memory·Î ¼³°èµÇ¾ú´Ù. picoJava I ¾ÆÅ°ÅØÃÄ´Â ´Ü¼øÇϰí À¯¿¬Çϸç Àú°¡ÇüºÎÅÍ °í¼º´É±îÁö ´Ù¾çÇÑ ¹üÀ§ÀÇ ÀÀ¿ëÀ» Áö¿øÇÒ ¼ö ÀÖ°Ô ¼³°èµÇ¾î ÀÖ´Ù. À籸¼º °¡´ÉÇÑ ¸í·É¾î ¹× µ¥ÀÌÅÍ Ä³½¬, ºÎµ¿¼Ò¼öÁ¡ À¯´ÏÆ®ÀÇ ¼±Åà ±â´É µîÀº ƯÁ¤ ÀÀ¿ëÀ̳ª ¼º´É ¹× Àü·Â ¿ä±¸ »çÇ׿¡ ¸ÂÃß¾î Á¶Á¤µÉ ¼ö ÀÖ´Ù. ¿¹ÄÁµ¥, ºÎµ¿ ¼Ò¼öÁ¡ À¯´ÏÆ®¸¦ Á¦¿ÜÇϰí 4KB ¸í·É¾î ij½¬¿Í 8KB µ¥ÀÌÅÍ Ä³½¬·Î ±¸¼ºÇÏ°Ô µÇ¸é 20% Á¤µµ °¡°ÝÀÌ Àý¾à µÈ´Ù.

±×¸² 12. picoJava IÀÇ 4´Ü°è ÆÄÀÌÇÁ¶óÀÎ

¡¡

³ª. Çϵå¿þ¾î ½ºÅÃ

picoJava IÀº RISC ½ºÅ¸ÀÏÀÇ ÆÄÀÌÇÁ¶óÀΰú ¸í·É¾î ¼ÂÀ» Æ÷ÇÔÇϰí ÀÖÀ¸¸ç, ¼Óµµ¸¦ °³¼±½Ãų ¼ö ÀÖ´Â ¸í·É¾îµéÀº Çϵå¿þ¾î·Î ±¸ÇöµÇ°í, ¸í·É¾îÀÇ ´ëºÎºÐÀº 1~3 »çÀÌŬ ³»¿¡¼­ ½ÇÇàµÈ´Ù. ¼º´É °³¼±¿¡ º°·Î ¿µÇâÀ» ÁÖÁö ¾Ê´Â ¸í·É¾îµéÀº ¸¶ÀÌÅ©·Î Äڵ峪 ½ºÅ×ÀÌÆ® ¸Ó½ÅÀ» ÅëÇØ ½ÇÇàµÈ´Ù. Java ¹ÙÀÌÆ® ÄÚµå´Â 0 ~ 16KB Å©±âÀÇ ¸í·É¾î ij½¬¿¡ º¸°üµÇ¸ç, ±â´É À¯´ÏÆ®(function unit)¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅ͸¦ ¾×¼¼½ºÇϱâ À§ÇÏ¿© ¿ÂĨ(on-chip) ½ºÅÃÀ» »ç¿ëÇÑ´Ù.

Java Ç÷§ÆûÀº ·¹Áö½ºÅ͸¦ »ç¿ëÇÏ´Â ÀϹÝÀûÀÎ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­¿Í´Â ´Þ¸® ½ºÅÃÀ» »ç¿ëÇÏ´Â Java °¡»ó¸Ó½Å¿¡¼­´Â ½ºÅà ¿¬»êÀÇ È¿À²¼ºÀÌ ¸Å¿ì Áß¿äÇϱ⠶§¹®¿¡ picoJava IÀº Java °¡»ó¸Ó½ÅÀ» Çϵå¿þ¾î·Î Á÷Á¢ ±¸ÇöÇÏ¿´´Ù. Java °¡»ó¸Ó½ÅÀÇ ½ºÅÃÀÇ »óÀ§ 64 ¿£Æ®¸®´Â picoJava IÀÇ ¿ÂĨ ½ºÅà ij½¬¿¡ ÀúÀåµÇ¸ç µ¥ÀÌÅÍ¿¡ ´ëÇÑ ¸ðµç ¿¬»êÀº ÀÌ ½ºÅà ij½¬¸¦ ÅëÇÏ¿© ¼öÇàµÈ´Ù. picoJava I ½ºÅÃÀº ±×¸² 13ó·³ ¸Þ½îµå È£ÃâÀ» À§ÇÑ Á¤º¸ µå¸®ºí¸µ(dribbling), Æúµù(folding) ±â¹ý¿¡ ÀÇÇØ ¸Å¿ì Çâ»óµÈ´Ù.

Java °¡»ó ¸Ó½ÅÀº ½ÇÇà ½Ã¿¡ È£ÃâµÉ °¢ ¸Þ½îµå¸¦ À§ÇØ ¸Þ½îµå ÇÁ·¹ÀÓÀ» ÀúÀåÇÑ´Ù. ÇÁ·¹ÀÓÀº ¸Þ½îµå¸¦ À§ÇÑ ÆÄ¶ó¹ÌÅÍ¿Í Áö¿ª º¯¼ö¸¦ º¸°üÇϸç, ¶ÇÇÑ ¸Þ½îµå¸¦ ¿Ï·áÇÑ ÈÄ¿¡ ÇÊ¿äÇÑ Á¤º¸¸¦ À§ÇÑ ÇÁ·¹ÀÓ »óŵµ Æ÷ÇÔÇÑ´Ù. Java ÇÁ·Î±×·¥Àº º¸Åë ¸¹Àº ¸Þ½îµå È£ÃâÀ» Æ÷ÇÔÇϱ⠶§¹®¿¡ ÀÌ·¸°Ô ¸Þ½îµå ÇÁ·¹ÀÓ À§ÁÖÀÇ ½ºÅà ±¸Á¶´Â Java ÄÚµåÀÇ ¼º´ÉÀ» Å©°Ô Çâ»ó½ÃŲ´Ù. ½ºÅÿ¡´Â ºü¸¥ ¾×¼¼½º¸¦ À§ÇØ µ¿½Ã¿¡ ¿©·¯ °³ÀÇ ¸Þ½îµå ÇÁ·¹ÀÓÀ» ÀúÀåÇÒ ¼ö ÀÖÁö¸¸ ¸Þ½îµå ÇÁ·¹ÀÓÀÇ Å©±â°¡ ´Ù¸£±â ¶§¹®¿¡ ÇÑ ÇÁ·¹ÀÓÀÌ Àüü ½ºÅÃÀ» Â÷ÁöÇÒ ¼öµµ ÀÖ´Ù. µû¶ó¼­ ¿À¹öÇ÷ο찡 ¹ß»ýÇÏ´Â °ÍÀ» ¹æÁöÇϱâ À§ÇÏ¿© ¹é±×¶ó¿îµå·Î ½ºÅÃÀ» °ü¸®ÇÑ´Ù. ½ºÅà ij½¬ÀÇ ¿À¹öÇ÷ο찡 ¿¹ÃøµÇ¸é °ªÀ» ¹é±×¶ó¿îµå·Î µ¥ÀÌÅÍ Ä³½¬¿¡ º¸°üÇÏ¿´´Ù°¡, ½ºÅà ij½¬¿¡ ¿©À¯°¡ »ý±â¸é µ¥ÀÌÅÍ Ä³½¬¿¡ º¸°üµÈ Á¤º¸´Â ´Ù½Ã ½ºÅà ij½¬¿¡ º¸°üÇÏ´Â µå¸®ºí¸µ ¸ÞÄ¿´ÏÁòÀ» ÀÌ¿ëÇÑ´Ù.

picoJava IÀº ¼º´É °³¼±À» À§ÇØ Æúµù ¿¬»êÀ» ÀÌ¿ëÇÑ´Ù. ÀϹÝÀûÀÎ ½ºÅà ±¸Çö¿¡¼­ ½ºÅà ¿¬»êÀº ¸í·É¾î ¼öÇà °á°ú¸¦ ÀúÀåÇÏ°í ´Ù½Ã ¾×¼¼½ºÇϴµ¥ À־ ¿©·¯ ´Ü°è¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ¶ÇÇÑ ½ºÅÃÀÇ ÃÖ»óÀ§ ºÎºÐ¿¡¼­¸¸ ¾×¼¼½º¸¦ ÇÒ ¼ö Àֱ⠶§¹®¿¡ ½ºÅÃÀÇ ÃÖ»óÀ§ ºÎÀ§¿¡ ÀÖÁö ¾ÊÀº º¯¼ö¸¦ »ç¿ëÇÏ·Á¸é ¿©·¯ ´Ü°è¸¦ °ÅÃļ­ ±× º¯¼ö¸¦ ½ºÅÃÀÇ ÃÖ»óÀ§·Î À̵¿½ÃÄÑ¾ß ÇÑ´Ù. picoJava I¿¡¼­´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÏ¿© ½ºÅÃÀ» ´Ü Çѹø ¾×¼¼½ºÇÏ°Ô ÇÏ´Â Æúµù ¿¬»êÀ» ÀÌ¿ëÇÑ´Ù. Áï, ¸í·É¾î ½ÇÇà °á°ú´Â °¡²û ¹Ù·Î µÚµû¸£´Â ¸í·É¾î¿¡ ÀÇÇØ ÀÌ¿ëµÇ´Â °æ¿ì°¡ ¸¹ÀÌ Àֱ⠶§¹®¿¡ ½ºÅÃÀÇ ÃÖ»óÀ§¿¡ ÀÖ´Â µÎ ¸í·É¾î¸¦ µ¿½Ã¿¡ ó¸®ÇÔÀ¸·Î½á º¯¼öÀÇ ¿©·¯ ¹ø À̵¿À» ¹æÁöÇÒ ¼ö ÀÖ´Ù. ½Ã¹Ä·¹À̼ÇÀ» ÅëÇÏ¿© Æúµù ¿¬»êÀÇ È¿°ú¸¦ ºÐ¼®Çغ» °á°ú ½ºÅà ¿¬»êÀÇ ºñ È¿À²¼ºÀ» 60% ÀÌ»ó °³¼±Çß´Ù°í ÇÑ´Ù.

¡¡

±×¸² 13. picoJava I ½ºÅà ±¸Á¶

¡¡

3. ¼º´É

±×¸² 14´Â Java ÄÄÆÄÀÏ·¯ÀÎ Javac¿Í °è»ê Á᫐ ÇÁ·Î±×·¥ÀÎ Raytrace¸¦ º¥Ä¡¸¶Å© ÇÁ·Î±×·¥À¸·Î »ç¿ëÇÏ¿© picoJavaIÀÇ ¼º´ÉÀ» ½Ã¹Ä·¹À̼ÇÇÑ °ÍÀÌ´Ù. 486¹× ÆæÆ¼¾öÀº Javac¿Í Raytrace¸¦ Á÷Á¢ ¼öÇàÇÏ¿© ÃøÁ¤ÇÑ °á°úÀÌ´Ù. Javac¿Í Raytrace¸¦ º¥Ä¡¸¶Å©·Î ¼±ÅÃÇÑ °ÍÀº µÎ ÇÁ·Î±×·¥ ¸ðµÎ °´Ã¼ ÁöÇâ ÄÚµå·Î½á JavaÀÇ ½ÇÀç ȯ°æ°ú À¯»çÇÏ´Ù°í ÆÇ´ÜµÇ¾ú±â ¶§¹®ÀÌ´Ù.

±×¸² 14. picoJava ÀÇ ¼º´É ¿¹ÃøÄ¡

¡¡

±×¸² 14¿¡ ÀÇÇϸé picoJava IÀÇ ¼º´ÉÀÌ Java °¡»ó ¸Ó½ÅÀÌ ¼³Ä¡µÈ ÆæÆ¼¾ö »ó¿¡¼­ ¼öÇàÇÑ °æ¿ì¿¡ ºñ±³ÇÏ¿© ¾à 20¹è Á¤µµÀÇ ¼º´É Çâ»óÀÌ ±â´ëµÇ¸ç JIT(Just-In-Time) ÄÄÆÄÀÏ·¯¸¦ ä¿ëÇÑ ÆæÆ¼¾ö°ú ºñ±³ÇÒ ¶§¿¡µµ ¾à 5¹è Á¤µµÀÇ ¼º´É Çâ»óÀÌ ±â´ëµÈ´Ù. ÇÏÁö¸¸, ÀÌ·¯ÇÑ ¼º´É µ¥ÀÌÅͰ¡ ½Ã¹Ä·¹À̼ǿ¡ ÀÇÇÑ °ÍÀ̱⠶§¹®¿¡ ½ÇÁ¦ ȯ°æ¿¡¼­ ¾î´À Á¤µµÀÇ ½Å·Ú¼ºÀ» °¡Áö°í Àִ°¡´Â »ó¿ë picoJava ÇÁ·Î¼¼¼­°¡ °³¹ßµÈ ÈÄ¿¡¾ß ¾Ë ¼ö ÀÖÀ» °ÍÀ¸·Î º¸ÀÌ´Ù.

±×·³¿¡µµ ºÒ±¸Çϰí Java ÇÁ·Î¼¼¼­¸¦ ä¿ëÇÏ¸ç ¼º´É »óÀÇ À̵æ°ú ÇÔ²² ´ÙÀ½°ú °°Àº ÀÌÀ¯·Î ¸Þ¸ð¸® »ç¿ë·®À» ÁÙÀÏ ¼ö ÀÖ´Â ÀåÁ¡ÀÌ ÀÖ¾î Çϵå¿þ¾î ȯ°æÀÌ Á¦¾àµÈ Java ±â¹Ý ³»ÀåÇü µð¹ÙÀ̽º¿¡ ÀûÇÕÇÑ °ÍÀ¸·Î Æò°¡µÇ°í ÀÖ´Ù.

¡¡

4. JavaChipsÀÇ ÇâÈÄ Àü¸Á

LG ¹ÝµµÃ¼, ¹ÌÂêºñ½Ã ÀüÀÚ, NEC´Â picoJavaĨÀ» 97³â ÇϹݱ⿡ »ý»êÇÒ °èȹÀ¸·Î µÇ¾úÀ¸³ª »ó¿ëÈ­´Â ³»³â 3/4ºÐ±â¸¦ Áö³ª¾ß °¡´ÉÇÒ °ÍÀ¸·Î ¿¹ÃøµÇ°í ÀÖ´Ù. ±×·¡¼­, ³»³â ÇϹݱ⿡´Â JavaChips¸¦ žÀçÇÑ ³×Æ®¿÷ ÄÄÇ»ÅÍ, ÀÎÅÍ³Ý TV µîÀÌ ¼¼°è½ÃÀå¿¡ ¼±º¸ÀÏ °ÍÀ¸·Î Àü¸ÁµÇ°í ÀÖ´Ù. ±×·¯³ª JavaChips¿Í´Â º°µµ·Î ¹ü¿ë ÇÁ·Î¼¼¼­¸¦ Á¦ÀÛÇÏ´Â ARM, Intel, Mips µîÀÇ È¸»ç¿¡¼­µµ ¹ÙÀÌÆ®ÄÚµåÀÇ ¼Óµµ¸¦ °³¼±Çϱâ À§ÇÑ ±â´ÉÀ» Áö¿øÇÒ °ÍÀ¸·Î ±â´ëµÈ´Ù. ¿¹¸¦ µé¾î, ARM»çÀÇ StrongARMÀº Java, PostScript¿Í °°Àº ½ºÅà ±â¹Ý ¾ð¾î¿Í ³»ÀåÇü ÀÀ¿ë¿¡ ÀûÇÕÇÏ°Ô ¼³°èµÈ ±â´ÉÀ» °¡Áö°í ÀÖ°í, Mips´Â ¹ÙÀÌÆ®Äڵ带 ºü¸£°Ô ¼öÇàÇÒ ¼ö ÀÖµµ·Ï Rx000 ½Ã¸®ÁîÀÇ ±¸Á¶¸¦ °³¼±ÇÏ¿© ¿öÅ©½ºÅ×À̼Ç, ¼ÂÅé ¹Ú½º, ºñµð¿À °ÔÀӱ⠵ Àû¿ëÇÒ ¿¹Á¤ÀÌ´Ù.

ÀÌ·¯ÇÑ ÀÏ·ÃÀÇ »óȲµéÀº JITÄÄÆÄÀÏ·¯¿Í °áÇÕµÈ ¹ü¿ë ÇÁ·Î¼¼½º¿Í picoJava ĨÀ» °æÀïüÁ¦¿¡ ³õÀÌ°Ô ÇÒ °ÍÀÌ´Ù. ±×·¯³ª µ¥ÀÌÅÍÇÁ·Î´Â ±Ã±ØÀûÀ¸·Î JavaChipsÀÇ ¼º°øÀÌ Java ¾ð¾îÀÇ ¼º°ø¿¡ ÀÇÁ¸ÀûÀÎ °ÍÀ¸·Î ºÐ¼®Çϰí ÀÖ´Ù. Áï, ¹ü¿ë ÇÁ·Î¼¼¼­´Â C¿Í Java °¡»ó ¸Ó½ÅÀ» Àß ¼öÇàÇÏÁö¸¸ ¹ÙÀÌÆ®Äڵ忡 ´ëÇÏ¿©¼­´Â ÃÖÀûÈ­µÈ ¼º´ÉÀ» º¸ÀÌÁö ¾Ê´Â´Ù. ±×¸®°í, JavaChipsÀº ¹ÙÀÌÆ®Äڵ忡 ´ëÇÏ¿©¼­¸¸ ÃÖÀûÈ­µÈ ¼º´ÉÀ» º¸ÀÌÁö ¾Ê±â ¶§¹®¿¡ Java°¡ ¹ü¿ë ¾ð¾î·Î È®»êµÇ´Â °æ¿ì ÇÑÇÏ¿© JavaChipsÀÇ »ç¿ëµµ È®»êµÉ °ÍÀ¸·Î ¿¹»óµÇ°í ÀÖ´Ù.

¡¡

¡¡

VII. °á·Ð

°¡ÀüÁ¦Ç° ¹× Mobile NC µî°ú °°Àº ³»ÀåÇü µð¹ÙÀ̽º°¡ °®Ãß¾î¾ß ÇÏ´Â ¿ä±¸Á¶°ÇÀº ±â¼úÀûÀÎ ¿ä¼Òº¸´Ù´Â Á¦Ç°ÀÇ ¶óÀÌÇÁ»çÀÌŬÀ̳ª ½ÃÀå »óȲ¿¡ ÀÇÇØ °áÁ¤µÈ´Ù. ±×·¯³ª, °³¹ßÀÇ ¾î·Á¿ò¿¡µµ ºÒ±¸Çϰí Àü ¼¼°èÀûÀ¸·Î ¸Å³â ¾à 10¾ï°³ÀÇ ³»ÀåÇü ÇÁ·Î¼¼¼­°¡ °Å·¡µÇ°í ÀÖÀ¸¸ç, ³»ÀåÇü ½Ã½ºÅÛ »ê¾÷ÀÇ ºü¸¥ Áõ°¡·Î 2010³â¿¡´Â ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚ°¡ µ¥½ºÅ©Å¾ ÄÄÇ»Å͸¦ À§ÇÑ ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚº¸´Ù 10¹è ´õ ¸¹À» °ÍÀ¸·Î Àü¸ÁµÇ°í ÀÖ´Ù.

Java ±â¼úÀ» »ç¿ëÇÑ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ßÀº »ç¿ëÀÚ Ãø¸éÀÇ ¿ä±¸º¸´Ù´Â °³¹ßÀÚÀÇ ¿ä±¸¸¦ ¼ö¿ëÇÑ °ÍÀÌ´Ù. ÇöÀç¿Í °°ÀÌ °¡Àü Á¦Ç°ÀÇ ¶óÀÌÇÁ »çÀÌŬÀÌ ÂªÀº »óȲ¿¡¼­ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇϴµ¥ °¡Àå Áß¿äÇÑ Á¡Àº ÇöÀç »ç¿ëµÇ°í ÀÖ´Â Äڵ带 È®ÀåÇÏ¿© Àç»ç¿ëÇÏ´Â °ÍÀÌ´Ù. ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î´Â ÇÑ ¹ø °³¹ßµÇ¸é ´õ Å« ÇÁ·Î±×·¥À¸·Î °³¹ßµÉ ¼ö ÀÖ¾î¾ß Çϰí, ´Ù¾çÇÑ ÇÁ·Î¼¼¼­¿¡¼­ ¼öÇàµÉ ¼ö ÀÖ¾î¾ß Çϰí, ¸Þ¸ð¸® ¾çÀÌ Á¦¾àµÈ °æ¿ì¿¡µµ ¼öÇàµÉ ¼ö ÀÖ¾î¾ß Çϸç, À籸¼ºÀÌ °¡´ÉÇϵµ·Ï ¸ðµâÈ­µÇ¾î¾ß ÇÑ´Ù. ÀÌ¿Í °°Àº ¿ä±¸´Â °´Ã¼ ÁöÇâÀûÀ̸鼭µµ Ç÷§Æû µ¶¸³ÀûÀÎ ÀåÁ¡À» °¡Áø Java¸¦ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ßÀ» Àû¿ëÇÔÀ¸·Î½á ¸¸Á·µÉ ¼ö ÀÖ´Ù.

Çâ ÈÄ °¡ÀüÁ¦Ç°ÀÇ ±â´ÉÀº ´õ¿í ´Ù¾çÇØ Áú °ÍÀ¸·Î ¿¹ÃøµÇ°í ÀÖÀ¸¸ç, ¿µ¾÷ÀûÀÎ Ãø¸éÀÇ ¿ä±¸Á¶°ÇÀÎ Àû±â Á¦Ç° Ãâ½Ã(Time-to-Market), ½Å·Ú¼º, ³·Àº °¡°Ý µî¸¦ ¸¸Á·Çϱâ À§Çؼ­´Â ¸ðµç °¡Àü Á¦Ç°ÀÇ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾îÀÇ Ç÷§ÆûÀ» ´ÜÀÏÈ­Çϰí À̸¦ ±â¹ÝÀ¸·Î ÇÏ¿© ´Ü±â°£¿¡ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇØ¾ß ÇÑ´Ù. ÇöÀç ÀϺ»¿¡¼­´Â Java ±â¹ÝÀ¸·Î °¡Àü Á¦Ç°¿ë ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾îÀÇ °³¹ßÇÒ ¼ö Àִ ǥÁؾÈÀ» ¸¶·ÃÇϰí ÀÖ´Ù. ÇÏÁö¸¸, ±¹³»¿¡¼­´Â Java¸¦ »ç¿ëÇÑ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾îÀÇ °³¹ßÀÌ Ãʱ⠴ܰèÀ̸ç, ¹ü¿ë ¾ð¾î¸¦ »ç¿ëÇÑ ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾îÀÇ °³¹ß ¼ö¿ä¸¶Àúµµ ´ëºÎºÐ ¿Ü±¹ ȸ»çÀÇ Á¦Ç°À¸·Î ´ëüÇϰí Àֱ⠶§¹®¿¡ Java¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ³»ÀåÇü ¼ÒÇÁÆ®¿þ¾î °³¹ß ȯ°æÀÌ ºü¸¥ ½ÃÀϳ»¿¡ ±¸ÃàµÇ¾î¾ß ÇÒ °ÍÀ¸·Î »ý°¢µÈ´Ù.

¡¡

¾à¾î ¸ñ·Ï

API : Application Program Interface

GUI : Graphical User Interface

JAE : Java Application Environments

JDBC : Java for DataBase Connectivity

RMI : Remote Method Invocation

¡¡

Âü°í ¹®Çå

  1. Sami Shaio, Arthur van Hoff, Herb Jellinek, ¡°Java and HotHava : A Comprehensive Overview¡±, Proceedings of COMPCON¡¯96, pp424-428, 1996.
  2. Datapro Information Services Group, ¡°JavaSoft : Java Programming Language¡±, Jun. 1997.
  3. http://java.sun.com/products/personaljava
  4. http://www.realtime-info.be/encyc/magazine/article/bench2.htm
  5. http://www.wrs.com/html/trjava.html
  6. http://www.cse.ucsc.edu/research/embedded/index-new.html
  7. http://www.microware.com
  8. http://www.javasoft.com
  9. http://www.sun.com/sparc/java/index.html
  10. http://www.diba.com
  11. http://www.sun.com/sparc/whitepapers/wpr-0014-01
  12. http://www.internet.ibm.com/computers/networkstation/os/mncrs.html
¡¡

¡¡