|
|
|
|
±¹³»µµ¼ > ÄÄÇ»ÅÍ/ÀÎÅÍ³Ý > ÇÁ·Î±×·¡¹Ö °³¹ß/¹æ¹ý·Ð |
Java¿Í C¸¦ ÀÌ¿ëÇÑ ÇÁ·Î ¾Èµå·ÎÀÌµå °ÔÀÓ °³¹ß |
|
|
|
|
|
2010³â 05¿ù 09ÀÏ Ãâ°£ |
Á¤°¡ 26,000¿ø |
ÆäÀÌÁö 408 Page |
|
|
|
|
 |
|
|
1Àå ¾Èµå·ÎÀÌµå °ÔÀÓ °³¹ßÀ» ½ÃÀÛÇϸç ÇÊ¿äÇÑ ´É·Â ¾Èµå·ÎÀÌµå °³¹ßÀÇ ±âÃÊ Áö½Ä ¸®´ª½º¿Í ¼Ð ½ºÅ©¸³ÆÃ ±âÃÊ Áö½Ä ÇÊ¿äÇÑ ¼ÒÇÁÆ®¿þ¾î µµ±¸µé °³¹ß¿ë ¸®´ª½º ÄÄÇ»ÅÍ Áغñ ¾Èµå·ÎÀÌµå ¼Ò½º ¾ò±â ³×ÀÌÆ¼ºê ¾Èµå·ÎÀÌµå ¶óÀ̺귯¸® ÃßÃâ ARM ÇÁ·Î¼¼¼¿ë GNU µµ±¸»ç½½ ¼³Ä¡ Ä¿½ºÅÒ ÄÄÆÄÀÏ ½ºÅ©¸³Æ® ÀÛ¼º ¾Èµå·ÎÀÌµå °³¹ß ȯ°æ ¼³Á¤ ¿ä¾à 2Àå ¾Èµå·ÎÀÌµå ³×ÀÌÆ¼ºê ÄÚµå ´Ù·ç±â ±âº»ÀûÀÎ ¾Èµå·ÎÀÌµå ³×ÀÌÆ¼ºê ÇÁ·Î±×·¥ AVD »ý¼º ¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ® ¸¸µé±â ¾Èµå·ÎÀ̵å ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ±¸Á¶ °øÀ¯ ¶óÀ̺귯¸®ÀÇ ÄÄÆÄÀϰú ½ÃÇè ±âÈ£ ´©¶ô ¹®Á¦ ÇØ°á ±â±â¿¡¼ µ¿Àû ¶óÀ̺귯¸®¸¦ °Ë»ç strace¸¦ ÀÌ¿ëÇÑ µð¹ö±ë Á¤Àû ¸µÅ© ¾Èµå·ÎÀ̵å ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ ½ÃÇèÇØ º¸±â ¿ä¾à 3Àå ¼ø¼ö Java·Î ¾Èµå·ÎÀÌµå °ÔÀÓ ¸¸µé±â ¾Èµå·ÎÀÌµå °ÔÀÓ °³¹ß ´ë Java ME °ÔÀÓ °³¹ß ù Java °ÔÀÓ, Space Blaster ¸¸µé±â °ÔÀÓÀÇ Àü¹ÝÀûÀÎ ±¸Á¶ ÇÁ·ÎÁ§Æ® »ý¼º °ÔÀÓÀÇ È°µ¿ Ŭ·¡½º ÀÛ¼º °ÔÀÓ ·¹À̾ƿô ÀÛ¼º °ÔÀÓÀÇ ±¸Çö Ű ¹× ÅÍÄ¡ »ç°Ç ó¸® ¿¡¹Ä·¹ÀÌÅÍ¿¡¼ ½ÃÇèÇØ º¸±â ¿ä¾à 4Àå Java °ÔÀÓ °è¼Ó: ´Ù°¢Çü ´Ù·ç±â À̹ø ÀåÀÇ ±¸¼º ¾Èµå·ÎÀ̵忡¼ ´Ù°¢Çü ±×¸®±â¸¦ Èûµé°Ô ÇÏ´Â °É¸²µ¹µé Á÷»ç°¢Çü ±×¸®±â¿¡ °ü·ÃµÈ °É¸²µ¹ Asteroids¸¦ À§ÇÑ ´Ù°¢Çü Ŭ·¡½º ¸¸µé±â Asteroids¿¡ »ç¿ëÇÒ PolygonSprite Ŭ·¡½º °ÔÀÓÀÇ Àü¹ÝÀûÀÎ ±¸Á¶ ÇÁ·ÎÁ§Æ® ¸¸µé±â °ÔÀÓ ·¹À̾ƿô ¸¸µé±â ÇÁ·ÎÁ§Æ®¿¡ ¾²ÀÌ´Â ÀÚ¿øµé °ÔÀÓÀÇ ¼ö¸í ÁÖ±â Ű ÀԷ°ú ȸé ÅÍÄ¡ »ç°Ç ó¸® Asteroids¸¦ ¿¡¹Ä·¹ÀÌÅÍ¿¡¼ ½ÃÇè ¿ä¾à 5Àå JNI¸¦ ÀÌ¿ëÇÑ È¥¼º OpenGL 3D ±×·¡ÇÈ ¸ð¹ÙÀÏ ±â±âÀÇ ¼º´É Java·Î OpenGL ´Ù·ç±â Java Àü¿ë ¹öÀüÀÇ ÁÖ È°µ¿ Ç¥¸é ºä GLThread ÀÔ¹æÃ¼ ·»´õ·¯ Cube Ŭ·¡½º ³×ÀÌÆ¼ºê ¹æ½ÄÀÇ OpenGL ·»´õ¸µ ÁÖ È°µ¿ ³×ÀÌÆ¼ºê ¿¬µ¿ Ŭ·¡½º ±âÁ¸ Ŭ·¡½ºµé °íÄ¡±â ³×ÀÌÆ¼ºê ÀÔ¹æÃ¼ ·»´õ·¯ ³×ÀÌÆ¼ºê ¹öÀüÀÇ ÀÔ¹æÃ¼ Á¤ÀÇ ¿¹Á¦ÀÇ ÄÄÆÄÀϰú ½ÇÇà OpenGL °ÔÀÓÀ» ¾Èµå·ÎÀ̵å·Î À̽ÄÇÒ ¶§ ÁÖÀÇÇØ¾ß ÇÒ »çÇ×µé º£ÀÏÀÌ ¹þ°ÜÁö´Ù 6Àå 3D ½´ÆÃ °ÔÀÓ ¿¡ÇǼҵå I: ¾Èµå·ÎÀ̵å¿ë Wolfenstein 3D »çÀü Áغñ À̹ø Àå ¼Ò½º ÄÚµå ³»·Á ¹Þ±â Wolf 3D ¼Ò°³ °ÔÀÓÀÇ Àü¹ÝÀûÀÎ ±¸Á¶ Wolf 3DÀÇ Java Ŭ·¡½ºµé °ÔÀÓÀÇ ÁÖ È°µ¿ Wolf 3DÀÇ ÁÖ ¸Þ´º Ű ÀԷ°ú ÅÍÄ¡ »ç°Ç ó¸® °ÔÀÓÀÇ ÁÖ ·çÇÁ·Î ÁøÀÔ ³×ÀÌÆ¼ºê Äݹé È£Ãâ ¹è°æ À½¾Ç°ú È¿°úÀ½ ó¸® °ÔÀÓ ÄÁÆ®·Ñ·¯ ÅÍÄ¡ »ç°Ç 󸮺Π°ÔÀÓ ÄÁÆ®·Ñ·¯ ±¸Çö À½Çâ Ŭ·¡½ºµé ³×ÀÌÆ¼ºê ¿¬µ¿ Ŭ·¡½º ³×ÀÌÆ¼ºê °èÃþ ÁÖ °ÔÀÓ ·çÇÁÀÇ ½ÃÀÛ Äݹé: C¿¡¼ Java ¸Þ¼µå¸¦ È£Ãâ ³×ÀÌÆ¼ºê ¶óÀ̺귯¸® ¸¸µé±â Makefile ÀÛ¼º JNI Çì´õ¿Í DSO »ý¼º Wolf 3D¸¦ ¿¡¹Ä·¹ÀÌÅÍ·Î ½ÃÇè ¿ä¾à 7Àå 3D ½´ÆÃ °ÔÀÓ ¿¡ÇǼҵå II: ¾Èµå·ÎÀ̵å¿ë Doom Java/C Á¶ÇÕÀÇ À§·Â DoomÀ» ¸ð¹ÙÀÏ ±â±â·Î À̽ÄÇϱâ Doom °ÔÀÓÀÇ Àü¹ÝÀûÀÎ ±¸Á¶ Java °èÃþÀÇ ÁÖ È°µ¿ »ý¼º 󸮺Π°ÔÀÓ UI ·¹À̾ƿô ¸Þ´º »ý¼º ¹× ¼±Åà ó¸®ºÎ Ű ÀÔ·Â ¹× ÅÍÄ¡ »ç°Ç 󸮺Π³×ÀÌÆ¼ºê Äݹé 󸮺Π°ÔÀÓ ÄÁÆ®·Ñ·¯ À½Çâ ó¸® Ŭ·¡½ºµé ³×ÀÌÆ¼ºê ¿¬µ¿ Ŭ·¡½º Äݹé ûÃëÀÚ ÀÎÅÍÆäÀ̽º ³×ÀÌÆ¼ºê ¸Þ¼µåµé C¿¡¼ Java·ÎÀÇ Äݹéµé ³×ÀÌÆ¼ºê °èÃþ ³×ÀÌÆ¼ºê ¸Þ¼µå ±¸Çö ¿øº» ÄÚµå °íÄ¡±â Doom ³×ÀÌÆ¼ºê ¶óÀ̺귯¸®(DSO) ÄÄÆÄÀÏÇϱ⠾ȵå·ÎÀ̵å¿ë DoomÀ» ¿¡¹Ä·¹ÀÌÅÍ·Î ½ÃÇè ÇÁ·ÎÁ§Æ® ¿Ï¼ö! ºÎ·Ï A ¼³Ä¡ ¹× ÄÄÆÄÀÏ ¿ä·É ÀÀ¿ëÇÁ·Î±×·¥ ¼¸í Ű ÀúÀå¼Ò ¸¸µé±â ÀÀ¿ëÇÁ·Î±×·¥ ¼¸í ¾Èµå·ÎÀ̵å NDK¸¦ ÀÌ¿ëÇØ¼ Á¦6Àå, 7Àå ¿¹Á¦ ¶óÀ̺귯¸® ÄÄÆÄÀÏÇϱâ NDK 1.5·Î Wolf 3D ÄÄÆÄÀÏÇϱ⠰øÀ¯ ¶óÀ̺귯¸® ÄÄÆÄÀÏ NDK 1.5¿¡¼ OpenGL ES »ç¿ëÇϱâ NDK 1.6À¸·Î Doom ³×ÀÌÆ¼ºê ¶óÀ̺귯¸® ÄÄÆÄÀÏÇϱâ Ã¥À» ¸¶Ä¡¸ç ºÎ·Ï B NDK r3 Ȱ¿ë NDK r3À¸·Î Á¦5Àå OpenGL ÀÔ¹æÃ¼ ¿¹Á¦ ÄÄÆÄÀÏÇÏ±â Æú´õ ±¸Á¶ Áغñ Eclipse ÇÁ·ÎÁ§Æ® Áغñ ³×ÀÌÆ¼ºê ¶óÀ̺귯¸®ÀÇ ÄÄÆÄÀÏ ¹× ¸µÅ© Java ¼Ò½º ¼öÁ¤ ¹× ½ÇÇà NDK r3À¸·Î Á¦6Àå Wolfenstein 3D ÄÄÆÄÀÏÇϱâ ã¾Æº¸±â |
Ãâó : ¾Ë¶óµò |
|
ÀÌ Ã¥Àº ¾Èµå·ÎÀ̵å(Android) Ç÷§ÆûÀ» À§ÇÑ ÃÖ»óÀÇ °ÔÀÓÀ» ¸¸µé·Á´Â µ¶ÀÚ¸¦ µ½´Â Ã¥ÀÌ´Ù. ¾Èµå·ÎÀ̵å ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß¿¡ ´ëÇÑ Ã¥Àº ¸¹ÀÌ ÀÖÁö¸¸, ±âÁ¸ PC °ÔÀÓÀ» ÃÖ¼ÒÇÑÀÇ ³ë·Â¸¸À¸·Î ¾Èµå·ÎÀ̵å Ç÷§Æû¿¡ À̽ÄÇÑ´Ù´Â µ¶Æ¯ÇÑ Á¢±Ù¹æ½ÄÀ» Á¦½ÃÇÏ´Â °ÍÀ¸·Î´Â ÀÌ Ã¥ÀÌ À¯ÀÏÇÏ´Ù. ÀÌ Ã¥Àº ½ÇÁúÀûÀÎ ¿¹Á¦µéÀ» ÅëÇØ¼ ±×·¯ÇÑ Á¢±Ù¹æ½ÄÀ» º¸¿©ÁØ´Ù. ÀÌ Ã¥À» Á¦´ë·Î °øºÎÇϱâ À§Çؼ´Â Java¿Í ANSI C¿¡ ´ëÇÑ ±âÃʰ¡ Æ°Æ°ÇØ¾ß ÇÑ´Ù. º¹ÀâÇÏ°í ¾î·Á¿î °³³äµéÀ» ÃÖ´ëÇÑ ¸íÈ®ÇÏ°í °£´ÜÇÏ°Ô ¼³¸íÇϰí ÀÖÀ¸¸ç, ÀÌÇØ¸¦ µ½±â À§ÇØ ±×¸²°ú ¼Ò½º Äڵ嵵 dzºÎÇÏ°Ô Á¦½ÃÇϰí ÀÖ´Ù. °¢ ÀåÀÇ ¼Ò½º ÄÚµå´Â °³³äÀ» ¼¼¼¼ÇÏ°Ô ÀÌÇØÇÏ´Â µ¥ µµ¿òÀ» ÁÖ¸ç, µ¶ÀÚ°¡ ½º½º·Î °ÔÀÓÀ» ¸¸µé ¶§ °³¹ß ½Ã°£À» ÃÖ´ëÇÑ ´ÜÃàÇÏ´Â µ¥¿¡µµ µµ¿òÀÌ µÉ °ÍÀÌ´Ù. ºÎ·Ï B´Â ¿ªÀÚ°¡ ÀÛ¼ºÇÑ, ¿ø¼¿¡´Â ¾ø´Â ¹ø¿ª¼¸¸ÀÇ Ãß°¡ ³»¿ëÀε¥, ÀÌ ºÎ·ÏÀÇ ÁÖµÈ ¸ñÀûÀº Á¦2ÀåÀÇ ÀÛÀº ¿¹Á¦(°³¹ß ȯ°æ Á¡°ËÀÌ ¸ñÀûÀÎ)¸¦ Á¦¿ÜÇÑ ÀÌ Ã¥ÀÇ ÁÖ¿ä ¿¹Á¦µéÀ» µ¶ÀÚ°¡ µû·Î ¸®´ª½º¸¦ ÁغñÇÏÁö ¾Ê°íµµ ÀüÀûÀ¸·Î Windows¿¡¼ ºôµåÇÏ°í ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿´´Ù.
ÀÌ Ã¥¸¸ÀÇ Æ¯Â¡
°£´ÜÇÑ ARM C ÄÄÆÄÀÏ·¯¸¸ ÀÖÀ¸¸é PC °ÔÀÓµéÀ» ¾Èµå·ÎÀ̵å Ç÷§ÆûÀ¸·Î À̽ÄÇÒ ¼ö ÀÖ´Ù. ±× ºÎºÐ¿¡ ÁýÁßÇÑ´Ù´Â °ÍÀÌ ¹Ù·Î ÀÌ Ã¥¸¸ÀÇ ÀåÁ¡ÀÌ´Ù. Java°¡ ±âÁØÀÎ ¾Èµå·ÎÀÌµå °³¹ß ȯ°æ¿¡¼ C Äڵ带 Àç»ç¿ëÇÒ ¼ö ÀÖ´Ù¸é, ¼öõ¼ö¸¸ ÁÙÀÇ C Äڵ带 ÀÏÀÏÀÌ Java·Î ´Ù½Ã ÀÛ¼ºÇÒ Çʿ䰡 ¾ø´Ù. C¿Í Java¸¦ ¿ì¾ÆÇÑ ¹æ½ÄÀ¸·Î °áÇÕÇÔÀ¸·Î½á ½Ã°£°ú ºñ¿ëÀ» ¾öû³ª°Ô Àý¾àÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ÀÌ Ã¥Àº ¹Ù·Î ±×·± Á¢±Ù¹æ½ÄÀ» Á¦½ÃÇÑ´Ù. ±×°ÍÀÌ ÀÌ Ã¥ÀÇ ¸ñÇ¥ÀÌÀÚ Æ¯Â¡ÀÌ´Ù. ±ÕÇüÀ» ¸ÂÃß±â À§ÇØ, Ãʹݺο¡¼´Â Java¸¸À¸·Î ¸ð¹ÙÀÏ °ÔÀÓÀ» ¸¸µå´Â ¹æ¹ýµµ »ìÆìº»´Ù.
µÞÇ¥Áö ³»¿ë
Asteroids¢â³ª Wolfenstein 3D¢â, Doom µîµî °ÔÀÓ »ê¾÷À» ȹ±âÀûÀ¸·Î ¹Ù²Û °ÔÀÓµéÀ» ¿À´Ã³¯ °¡Àå ÁÖ¸ñ¹Þ´Â ¸ð¹ÙÀÏ ¹× ³ÝºÏ Ç÷§Æû Áß ÇϳªÀÎ GoogleÀÇ ¾Èµå·ÎÀ̵å Ç÷§Æû¿¡¼ Á÷Á¢ ¸¸µé°Å³ª À̽ÄÇÒ ¼ö ÀÖ´Ù¸é ¾î¶³±î? ÀÌ Ã¥Àº Space Blaster¿Í °íÀü Asteroids °°Àº ¸ÚÁø °ÔÀÓÀ» óÀ½ºÎÅÍ ¸ðµÎ ¸¸µå´Â ¹æ¹ýÀ» º¸¿©ÁÙ »Ó¸¸ ¾Æ´Ï¶ó, Doom°ú Wolfenstein 3D µî C·Î ÀÛ¼ºµÈ °íÀü °ÉÀÛ ¼Î¾î¿þ¾î/¿ÀǼҽº °ÔÀÓµéÀ» JNI(Java Native Interface)¸¦ ÀÌ¿ëÇØ¼ ¾Èµå·ÎÀ̵å·Î À̽ÄÇÏ´Â ¹æ¹ýµµ º¸¿©ÁØ´Ù.
ÀÌ Ã¥Àº ¾Èµå·ÎÀÌµå °ÔÀÓ °³¹ß¿¡¼ ÀÚ¹Ù¿Í C¸¦ ±ÕÇü ÀÖ°Ô °áÇÕÇÑ È¥¼º(hybrid) Á¢±Ù¹æ½ÄÀÌ ¾ó¸¶³ª °·ÂÇÑÁö¸¦ Àß º¸¿©ÁÖ´Â µ¶Æ¯ÇÑ Ã¥ÀÌ´Ù. ÀÚ¹ÙÀÇ ¿ì¾ÆÇÑ °´Ã¼ÁöÇâÀû Ư¡µé°ú CÀÇ °·ÂÇÑ ¼º´ÉÀ» °áÇÕÇÑ´Ù¸é ¾Èµå·ÎÀ̵å Ç÷§Æû¿¡¼ ¸ø ¸¸µé °ÔÀÓÀÌ ¾ø´Ù. ÀÛµ¿ °¡´ÉÇÑ ¼Ò½º Äڵ常 ±¸ÇÒ ¼ö ÀÖ´Ù¸é, ÀÌ Ã¥À» ÅëÇØ¼ ¿©·¯ºÐµµ ¾Èµå·ÎÀ̵å¿ë °ÔÀÓ °³¹ßÀÇ ¼¼°è·Î ¶Ù¾îµé ¼ö ÀÖ´Ù.
ÀÌ Ã¥ÀÇ ÁÖ¿ä ³»¿ëÀº ´ÙÀ½°ú °°´Ù.
- È¥¼º °ÔÀÓÀÇ ÄÄÆÄÀϰú ¸µÅ©¸¦ À§ÇÑ Linux ½Ã½ºÅÛÀ» ÁغñÇÑ´Ù.
- °£´ÜÇÑ ³×ÀÌÆ¼ºê ¶óÀ̺귯¸®¿Í ÀÚ¹Ù ÄÚµå·Î ÀÌ·ç¾îÁø ¿¹Á¦ ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ¼ Java¿Í C¸¦ ¿ì¾ÆÇÑ ¹æ½ÄÀ¸·Î °áÇÕÇÏ´Â ¹æ¹ýÀ» Á¦½ÃÇÑ´Ù.
- Space Blaster¿Í °íÀü ¾ÆÄÉÀÌµå °ÔÀÓ Asteroids¸¦ ÀÚ¹Ù¸¸ ÀÌ¿ëÇØ¼ Á÷Á¢ ¸¸µé¾îº»´Ù.
- GoogleÀÇ 3Â÷¿ø ÀÔ¹æÃ¼ ¿¹Á¦¸¦ °³¼±ÇÏ´Â ¿¹Á¦¸¦ ÅëÇØ, OpenGL ÀÛ¾÷ÀÇ ´ëºÎºÐÀ» C·Î ±¸ÇöÇÔÀ¸·Î½á 3D ±×·¡ÇÈ ¼º´ÉÀ» ³ôÀÌ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
- PC¿ë 3D ½´ÆÃ °ÔÀÓÀÇ µÎ °ÉÀÛÀÎ Wolfenstein 3D¿Í DoomÀ» ÀÚ¹Ù¿Í CÀÇ Á¶ÇÕÀ» ÅëÇØ ¾Èµå·ÎÀ̵忡 À̽ÄÇÑ´Ù.
ÀÌ Ã¥À» ´Ù ÀÐ°í ³ª¸é, PC¿ëÀ¸·Î ¸¸µé¾îÁø °ÔÀÓµéÀ» ±Þ¼ºÀåÇϰí ÀÖ´Â ¾Èµå·ÎÀ̵å Ç÷§ÆûÀ¸·Î °¡Á®¿À´Â °ÍÀÌ ¾ó¸¶³ª ½¬¿îÁö ¾Ë°Ô µÉ °ÍÀÌ´Ù. ±âÁ¸ Äڵ带 Àç»ç¿ëÇÔÀ¸·Î½á ¾Èµå·ÎÀ̵å¿ë °ÔÀÓÀ» Á» ´õ ºü¸£°Ô ¸¸µé¾î ³»·Á´Â °ÔÀÓ °³¹ßÀÚ¿¡°Ô ÀÌ Ã¥ÀÌ Å« µµ¿òÀÌ µÉ °ÍÀÌ´Ù. |
Ãâó : ¾Ë¶óµò |

|
|
|
|