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¸¦ ¾î¶»°Ô ¹­¾îÁÖ´ÂÁö¸¦ º¸¿©ÁÖ´Â ±×¸²ÀÌ´Ù.