Overview of the JNI
JNI¶õ Java¿¡ ´ëÇÑ native ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º¶ó°í ¾ê±âÇÒ ¼ö ÀÖ´Ù.
JNI´Â Java Äڵ忡¼ C/C++, assembly¿¡¼ Á¦°øÇÏ´Â ¶óÀ̺귯¸®³ª ÀÛ¼ºÇÑ ÇÁ·Î±×·¥À»
È£ÃâÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÑ´Ù. ¶Ç´Â Invocation API¸¦ ÀÌ¿ëÇؼ JVMÀ» native
ÇÁ·Î±×·¥ ³»¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖ´Ù.
JNI´Â ÁÖ·Î ´ÙÀ½°ú °°Àº °æ¿ì¿¡ ÇÊ¿äÇÏ°Ô µÈ´Ù.
JNI¸¦ ÀÌ¿ëÇؼ, native ÇÁ·Î±×·¥¿¡¼ JavaÀÇ °´Ã¼¸¦ ½±°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.
°´Ã¼ÀÇ »ý¼º, °»½Å, Á¢±Ù µîÀÇ ÀÛ¾÷À» ¸ðµÎ ¼öÇàÇÒ ¼ö ÀÖ´Ù.
native ÇÁ·Î±×·¥¿¡¼ Java ¸Þ¼Òµåµµ ½±°Ô È£ÃâÇÒ ¼ö ÀÖ´Ù. ¿ä±¸µÇ´Â ÀÎÀÚ¸¦
³Ñ°ÜÁÙ ¼ö ÀÖ°í, ¶Ç ¸Þ¼Òµå ¼öÇàÀÌ ¿Ï·áµÇ¾úÀ» ¶§ ¸®ÅÏ°ªµµ µ¹·Á ¹ÞÀ» ¼ö ÀÖ´Ù.
JNI¸¦ ÀÌ¿ëÇϸé JavaÀÇ ÀåÁ¡µéÀ» native ÇÁ·Î±×·¥¿¡¼µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×
´ëÇ¥ÀûÀÎ °ÍÀ¸·Î, catch¿Í throw¸¦ µé ¼ö ÀÖ´Ù. ¶Ç, JNI ÇÔ¼ö¸¦ È£ÃâÇÏ°Ô µÇ¸é °´Ã¼ÀÇ
Á¤º¸¸¦ ¹Þ¾Æº¼ ¼ö ÀÖ´Ù.
¶Ç ÇÑ°¡Áö, native ÇÁ·Î±×·¥¿¡¼µµ ¼öÇà½Ã¿¡ ŸÀÔ Ã¼Å·À» ÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
´ÙÀ½ ±×¸²Àº native ÇÁ·Î±×·¥¿¡¼ Java ¶óÀ̺귯¸®¿Í ¸µÅ©, ¸Þ¼Òµå È£Ãâ, Ŭ·¡½º
»ç¿ë µîÀÇ ±â´ÉÀ» ¼öÇàÇÏ´Â ¸ð½ÀÀ» º¸¿©ÁÖ´Â °ÍÀÌ´Ù.
´ÙÀ½ ±×¸²Àº Java ÇÁ·Î±×·¥¿¡¼ native ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¸ð½ÀÀ» º¸¿©ÁÖ´Â °ÍÀÌ´Ù.
°á°úÀûÀ¸·Î, JNI´Â native ÇÁ·Î±×·¥°ú Java ÇÁ·Î±×·¥À» ¹¾îÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. ´ÙÀ½ ±×¸²Àº JNI°¡ C¿Í Java¸¦ ¾î¶»°Ô ¹¾îÁÖ´ÂÁö¸¦ º¸¿©ÁÖ´Â ±×¸²ÀÌ´Ù.