์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”2. ์‚ฌ์šฉ ๋ชฉ์ 3. ์˜ˆ์ œ4. JNA

Java Native Interface.

1. ๊ฐœ์š”[ํŽธ์ง‘]

Java์˜ FFI๋กœ Java ์–ธ์–ด/JVM์—์„œ C/C++ ์–ธ์–ด์˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ API์ด๋‹ค.
javah ๋ช…๋ น์œผ๋กœ C/C++ ํ—ค๋” ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์ƒ์„ฑ๋œ ํ—ค๋” ํŒŒ์ผ์— ๋งž์ถฐ C/C++ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

2. ์‚ฌ์šฉ ๋ชฉ์ [ํŽธ์ง‘]

์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ชฉ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ฐฉ๋Œ€ํ•œ C/C++ ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด.
  • Java๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ๋„ˆ๋ฌด ๋А๋ฆฐ ๊ธฐ๋Šฅ์˜ ์†๋„ ํ–ฅ์ƒ์„ ์œ„ํ•ด.
  • JVM์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด.

3. ์˜ˆ์ œ[ํŽธ์ง‘]

4. JNA[ํŽธ์ง‘]

์œ ์‚ฌ ๊ธฐ์ˆ ๋กœ JNA(Java Native Access)๊ฐ€ ์žˆ๋‹ค. JNI๊ฐ€ ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ๋กœ ๋ถ€ํ„ฐ ํ—ค๋”ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด ์ฃผ๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ libffi๋ผ ๋ถˆ๋ฆฌ๋Š” Native Library๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ ์œผ๋กœ Native ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด ์ค€๋‹ค.