์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ :
- ์ค๋ฒ๋ก๋ ํด๊ฒฐ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฉ์๋ ํธ์ถ์ ์บ์๋ฅผ ์ถ๊ฐํ์ฌ ํนํ ๋ฃจํ์์์ ๊ฐ์ด ๋์ผํ ์ค๋ฒ๋ก๋๊ฐ ์ฌ๋ฌ ๋ฒ ํธ์ถ๋๋ ๊ฒฝ์ฐ ๋ฉ์๋ ํด๊ฒฐ์ด ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ํฌ๊ฒ ์ค์์ต๋๋ค.
- ๋ฐ์ดํฐ ์ ํ์ ๋ฐ๋ผ 4ํ์์ 100ํ๊น์ง ๋ชฉ๋ก, ํํ ๋ฐ ๋ฒํผ๋ฅผ Java ํ๋ฆฌ๋ฏธํฐ๋ธ ๋ฐฐ์ด๋ก ์ ์กํ๋ ์๋๊ฐ ๋นจ๋ผ์ง๋๋ค. ๋ณํ์ Sequence API ๋์ ์ต์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๋ด ๋ฒํผ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. Python ๋ฒํผ๊ฐ ๋ฐ๊ฒฌ๋๋ฉด ์ฒซ ๋ฒ์งธ ์์๋ง ๋ณํ์ ํ์ธํฉ๋๋ค. ์ด๋ฌํ ๋ฒํผ๋ ๋์ข ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์ข ๋ฃ ์์ ์ฒ๋ฆฌ(JPype 1.0.0์์ ๊ตฌํ๋์์ง๋ง ๋ณ๊ฒฝ ๋ก๊ทธ๋ฅผ ์ค๋นํ ๋ ๊ฑด๋๋ฐ์์ต๋๋ค). ์ด์ JPype๋ JVM์ ์ข ๋ฃ ํ๋ก์์ ๋ฅผ ํธ์ถํ์ฌ ์ ์์ ์ผ๋ก ์ข ๋ฃํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ก ์ธํด ๋ช ๊ฐ์ง ํ๋ ๋ณํ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋น๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋(ํ๋ก์ ํธ์ถ)๋ ์ด์ ์ข ๋ฃ๋ ๋๊น์ง JVM์ ์ด์ด ๋ ์ ์์ต๋๋ค. ํ๋ก์ ํธ์ถ์ ํธ์ถ์ด ์๋ฃ๋ ๋๊น์ง ์ข ๋ฃ๋ฅผ ์ฒ๋ฆฌํ์ง๋ง ์ค๋จ ๋ฉ์์ง๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค. ์ด์ ์ค๋ ๋๊ฐ ์์ธ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ฉด ํ์ผ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋ซํ๊ณ ๋์คํฌ๋ก ํ๋ฌ์๋ฉ๋๋ค. ๋ฆฌ์์ค ์ ๋ฆฌ ํํฌ ๋ฐ ์ข ๋ฃ์๊ฐ ์คํ๋ฉ๋๋ค. ์ค๋ ๋๊ฐ ์์ฑ๋๋ฉด AtExit ํํฌ๊ฐ ํธ์ถ๋ฉ๋๋ค. Python์์ JVM์ ์ฌ์ฉํ ๋ ๋ฐ๋ชฌ์ ํตํด ์๋ ์ค๋ ๋ ์ฐ๊ฒฐ์ด ๊ตฌํ๋ฉ๋๋ค. ์ค๋ ๋ ์ ๋ฆฌ๋ฅผ ์ ๋๋ก ์ฒ๋ฆฌํ์ง ๋ชปํ๋ ์๋ชป๋ ์ฝ๋๋ ์ข ๋ฃ ์ ์ค๋จ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ถ๊ฐ ๋ฌธ์๋ ์ฌ์ฉ์ ๊ฐ์ด๋์ ์์ต๋๋ค.
- Throwable์ ๋ํ ๋ํผ๋ ์์ ๊ฒฐ๊ณผ ๋์ Object์ ๋ํ ๋ํผ๋ฅผ ๊ฐ์ ธ์๊ณ , ์ด๋ก ์ธํด Python ํด๋์ค์์ ์ด์ํ ๋ณํ์ด ๋ฐ์ํ์ต๋๋ค.
- '"jname"์ ์ฐพ์ ์ ์์' ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ ๊ฐ์ ธ์ค๊ธฐ ์์คํ ์ ์คํ๋ฅผ ์์ ํ์ต๋๋ค.
- KeyboardInterrupt์์ "^C"๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์น๊ฒฉ๋์๋์ง ํ์ธํ์ต๋๋ค.
- Python 3.5.3์ ๋ฌธ์ ๋ฌธ์ ๊ฐ ์์ ๋์์ต๋๋ค. PySlice_Unpack์ ํ์ ํจ์น ๋ฆด๋ฆฌ์ค(3.5.4)์ ๋์ ๋์์ผ๋ฉฐ ์ฌ์ฉ๋์ด์๋ ์ ๋์์ต๋๋ค.
- numpy.linalg.inv์ ์ถฉ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์ด ๋ฌธ์ ๋ JVM๊ณผ ์ผ๋ถ numpy ๋ณํ ๊ฐ์ ์ค๋ ๋ ์ํธ ์์ฉ์ผ๋ก ์ถ์ ๋์์ต๋๋ค. ์ ์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ JVM์ ์์ํ๊ธฐ ์ ์ numpy.linalg.inv๋ฅผ ํธ์ถํ๋ ๊ฒ์ ๋๋ค.
์ถ์ฒ : opennet.ru