| 
													
 | 
											 | 
											
												
												
													
														
																
																	 | 
																 
																
																	
																			
																				 | 
																				
																				
																						
																							| ±¹³»µµ¼ > ÄÄÇ»ÅÍ/ÀÎÅͳݠ> ÇÁ·Î±×·¡¹Ö °³¹ß/¹æ¹ý·Ð | 
																						 
																				
																						
																							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¿ëÀ¸·Î ¸¸µé¾îÁø °ÔÀÓµéÀ» ±Þ¼ºÀåÇϰí ÀÖ´Â ¾Èµå·ÎÀ̵å Ç÷§ÆûÀ¸·Î °¡Á®¿À´Â °ÍÀÌ ¾ó¸¶³ª ½¬¿îÁö ¾Ë°Ô µÉ °ÍÀÌ´Ù. ±âÁ¸ Äڵ带 Àç»ç¿ëÇÔÀ¸·Î½á ¾Èµå·ÎÀ̵å¿ë °ÔÀÓÀ» Á» ´õ ºü¸£°Ô ¸¸µé¾î ³»·Á´Â °ÔÀÓ °³¹ßÀÚ¿¡°Ô ÀÌ Ã¥ÀÌ Å« µµ¿òÀÌ µÉ °ÍÀÌ´Ù.  | 
																		 
																		| Ãâó : ¾Ë¶óµò  |  
																	 
																	  
																 
															 
																
														 | 
													 
												 
												
											 | 
											 | 
											
											 |