๊ทธ๋“ค์€ Rust๋กœ Fish ๋ช…๋ น ์…ธ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

Fish ๋Œ€ํ™”ํ˜• ์‰˜ ํŒ€์˜ ๋ฆฌ๋”์ธ Peter Ammon์€ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์„ Rust ์–ธ์–ด๋กœ ์ด์ „ํ•˜๋ ค๋Š” ๊ณ„ํš์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์‰˜์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ์ ์ฐจ์ ์œผ๋กœ ๋ชจ๋“ˆ๋ณ„๋กœ C++์—์„œ Rust ์–ธ์–ด๋กœ ๋ฒˆ์—ญํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. Fish ๊ฐœ๋ฐœ์ž์— ๋”ฐ๋ฅด๋ฉด Rust๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ๋ณด๋‹ค ์ตœ์‹ ์˜ ๊ณ ํ’ˆ์งˆ ์˜ค๋ฅ˜ ๊ฐ์ง€ ๋„๊ตฌ๋ฅผ ์–ป๊ณ , ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „์„ฑ์„ ํ–ฅ์ƒํ•˜๊ณ , Fish๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•ด์ œ๋œ ํ›„ ๋ฉ”๋ชจ๋ฆฌ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. wchar_t ์œ ํ˜•.

๊ฐœ๋ฐœ์ž๋“ค์€ C++ ์–ธ์–ด์šฉ ๋„๊ตฌ๋ฅผ ๊ตฌ์‹์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  C++๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋ฉด ํ–ฅํ›„ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ์ฐธ๊ฐ€์ž๋ฅผ ์ฐพ๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์ปค์งˆ ๊ฒƒ์ด๋ผ๋Š” ์šฐ๋ ค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Rust ์–ธ์–ด๋Š” ํ˜„์žฌ Fish ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ด๋ฏธ ์นœ์ˆ™ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๊ฐ€ ์•ˆ๊ณ  ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ํ™œ๋ฐœํ•˜๊ณ  ์„ฑ์žฅํ•˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ํ†ตํ•ด ๋”์šฑ ์œ ๋งํ•˜๊ณ  ์ ๊ทน์ ์œผ๋กœ ๊ฐœ๋ฐœ๋˜๋Š” ์–ธ์–ด๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

์ „ํ™˜ ๊ธฐ๊ฐ„ ๋™์•ˆ FFI(Foreign Function Interface) ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ C++ ๋ฐ Rust ์ฝ”๋“œ์˜ ๊ณต์กด์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ ๋‹ค์Œ ์ฃผ์š” ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ Rust ์–ธ์–ด๋กœ ์™„์ „ํžˆ ๋ฒˆ์—ญํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€