ํ๊ฒฝ ๋ชจ๋ธ๋ง์์ ์ ํ ์์ ์ฑ์ ํ๊ตฌํ๊ณ , ๊ธฐํ ๊ณผํ์ ์ ํ์ฑ, ์ ๋ขฐ์ฑ, ํ์ ์ ๋ฏธ์น๋ ์ด์ ์ ์ดํด๋ด ๋๋ค.
์ผ๋ฐ์ ์ธ ๊ธฐํ ๊ณผํ: ํ๊ฒฝ ๋ชจ๋ธ ์ ํ ์์ ์ฑ
๊ธฐํ ๊ณผํ์ ๋ณต์กํ ์ง๊ตฌ ์์คํ ์ ์๋ฎฌ๋ ์ด์ ํ๊ณ ๋ฏธ๋์ ๊ธฐํ ์๋๋ฆฌ์ค๋ฅผ ์์ธกํ๊ธฐ ์ํด ํ๊ฒฝ ๋ชจ๋ธ์ ํฌ๊ฒ ์์กดํฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋ธ์ ๋ฐฉ๋ํ ๋ฐ์ดํฐ ์ธํธ์ ๋ณต์กํ ๋ฌผ๋ฆฌ์ ํ๋ก์ธ์ค๋ฅผ ํตํฉํ๋ ์ ๊ตํ ์ํํธ์จ์ด ์์คํ ์ ๋๋ค. ์ด๋ฌํ ๋ชจ๋ธ์ ์ ๋ขฐ์ฑ์ ๋งค์ฐ ์ค์ํ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ๋ ์ ์ธ๊ณ์ ์ธ ์ง์ ๊ฐ๋ฅ์ฑ์ ์ํฅ์ ๋ฏธ์น๋ ์ค์ํ ์ ์ฑ ๊ฒฐ์ ์ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์๋ ํ๊ฒฝ ๋ชจ๋ธ๋ง์์ ์ ํ ์์ ์ฑ์ ์ค์์ฑ์ ์ดํด๋ณด๊ณ , ์ ํ์ฑ, ์ ๋ขฐ์ฑ ๋ฐ ํ์ ๊ฐ๋ฐ์ ๋ํ ์ด์ ์ ๋ ผ์ํฉ๋๋ค.
์ ํ ์์ ์ฑ์ด๋ ๋ฌด์์ ๋๊น?
์ ํ ์์ ์ฑ์ ํ๋ก๊ทธ๋จ ์คํ ์ค์ ํน์ ์ ํ์ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์์ฑ์ ๋๋ค. ์ ํ ์์ ์ธ์ด์์ ์ปดํ์ผ๋ฌ ๋๋ ๋ฐํ์ ์์คํ ์ ๋ณ์์ ์ ์ฅ๋๊ณ ํจ์์ ์ ๋ฌ๋ ์ ์๋ ๋ฐ์ดํฐ ์ ํ์ ๋ํ ๊ท์น์ ์ ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ํ ์์ ์ธ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์์ด์ ์ซ์์ ์ค์๋ก ์ถ๊ฐํ๊ฑฐ๋ ์ ์๊ฐ ์์๋๋ ๊ณณ์ ๋ถ๋ ์์์ ๊ฐ์ ์ ๋ฌํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ด๊ธฐ์ ์ค๋ฅ๋ฅผ ๊ฐ์งํ์ฌ ์๊ธฐ์น ์์ ๋์์ ์ํ์ ์ค์ด๊ณ ์ ์ฒด ์ํํธ์จ์ด์ ์ ๋ขฐ์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ ์ ํ์ดํ๊ณผ ๋์ ํ์ดํ
์ ํ ์์ ์ฑ์ ์ข ์ข ์ปดํ์ผ ์๊ฐ์ ์ ํ ๊ฒ์ฌ๋ฅผ ์ํํ๋ ์ ์ ํ์ดํ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. Java, C++, Fortran๊ณผ ๊ฐ์ ์ธ์ด๋ ์ ์ ์ผ๋ก ์ ํ์ด ์ง์ ๋ฉ๋๋ค. ๋ฐ๋๋ก Python ๋ฐ JavaScript์ ๊ฐ์ ์ธ์ด์์ ๋ฐ๊ฒฌ๋๋ ๋์ ํ์ดํ์ ๋ฐํ์์ ์ ํ ๊ฒ์ฌ๋ฅผ ์ํํฉ๋๋ค. ๋์ ํ์ดํ์ ์ ์ฐ์ฑ๊ณผ ๋น ๋ฅธ ํ๋กํ ํ์ ์ ์์ ์ ๊ณตํ์ง๋ง ์คํ ์ค์๋ง ๋ฐ๊ฒฌ๋๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ๋ณต์กํ ํ๊ฒฝ ๋ชจ๋ธ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ์ ์ง์ ํ์ดํ๊ณผ ๊ฐ์ ํ์ด๋ธ๋ฆฌ๋ ์ ๊ทผ ๋ฐฉ์์ ์ ์ ๋ฐ ๋์ ํ์ดํ์ ์ด์ ์ ๋ชจ๋ ๊ฒฐํฉํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
ํ๊ฒฝ ๋ชจ๋ธ๋ง์์ ์ ํ ์์ ์ฑ์ด ์ค์ํ ์ด์
ํ๊ฒฝ ๋ชจ๋ธ์ ์ข ์ข ๋ค์ํ ๋ฌผ๋ฆฌ์ , ํํ์ ๋ฐ ์๋ฌผํ์ ํ๋ก์ธ์ค ๊ฐ์ ๋ณต์กํ ๊ณ์ฐ ๋ฐ ์ํธ ์์ฉ์ ํฌํจํฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋ธ์ ์ข ์ข ๋ค์ํ ๊ธฐ๊ด๊ณผ ๊ตญ๊ฐ์์ ํ๋ ฅํ๋ ๋๊ท๋ชจ ๊ณผํ์ ๋ฐ ์์ง๋์ด ํ์์ ๊ฐ๋ฐํฉ๋๋ค. ์ ํ ์์ ์ฑ์ ์ด ์ปจํ ์คํธ์์ ๋ช ๊ฐ์ง ์ฃผ์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
- ํฅ์๋ ์ ํ์ฑ: ์ ํ ๊ฒ์ฌ๋ ๊ทธ๋ ์ง ์์ผ๋ฉด ๋์น์ฑ์ง ๋ชปํ ์ ์๋ ๊ณ์ฐ์ ๋ฏธ๋ฌํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์จ๋ ๊ฐ์ ํญ์ ์ผ๋น ๋๋ ์ญ์จ๋ก ํํํ๋ฉด ๋จ์ ๋ณํ์ผ๋ก ์ธํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- ํฅ์๋ ์ ๋ขฐ์ฑ: ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ด๊ธฐ์ ์ ํ ์ค๋ฅ๋ฅผ ๊ฐ์งํจ์ผ๋ก์จ ์ ํ ์์ ์ฑ์ ์๊ธฐ์น ์์ ์ถฉ๋ ๋๋ ์๋ชป๋ ๊ฒฐ๊ณผ์ ์ํ์ ์ค์ ๋๋ค. ์ด๊ฒ์ ์๋ฃํ๋ ๋ฐ ๋ฉฐ์น ๋๋ ๋ช ์ฃผ๊ฐ ๊ฑธ๋ฆด ์ ์๋ ์ฅ๊ธฐ๊ฐ ์คํ๋๋ ์๋ฎฌ๋ ์ด์ ์ ํนํ ์ค์ํฉ๋๋ค.
- ํฅ์๋ ํ์ : ์ ํ ์์ ์ฑ์ ๋ชจ๋ธ์ ์ฌ์ฉ๋ ๋ฐ์ดํฐ ์ ํ์ ๋ํ ๋ช ํํ๊ณ ๋ชจํธํ์ง ์์ ์ฌ์์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ค์ํ ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์ดํดํ๊ณ ๊ธฐ์ฌํ๊ธฐ๊ฐ ๋ ์ฌ์์ ธ ํตํฉ ์ค๋ฅ์ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค.
- ๋ ์ฌ์ด ๋๋ฒ๊น : ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ ํ ์ ๋ณด๊ฐ ๋ฌธ์ ์ ์์ค๋ฅผ ๋ ๋น ๋ฅด๊ฒ ์ฐพ์๋ด๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์ ํ ์์ ์ธ์ด๋ ์ข ์ข ์ค๋ฅ์ ํน์ ์์น์ ์ ํ์ ๋ํ๋ด๋ ๋ ๋์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฉ์ดํ ์ฝ๋ ์ ์ง ๊ด๋ฆฌ: ์ ํ ์์ ์ฑ์ ํตํด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ๋ฆฌํฉํฐ๋งํ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋๋ค. ๋ชจ๋ธ์ด ๋ณ๊ฒฝ๋๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ํ ์์ ํ์ง ์๋์ผ๋ก ํ์ธํ ์ ์์ด ์๋ก์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค.
ํ๊ฒฝ ๋ชจ๋ธ์์ ์ ํ ๊ด๋ จ ์ค๋ฅ์ ์
์ ํ ์์ ์ฑ์ ์ค์์ฑ์ ์ค๋ช ํ๊ธฐ ์ํด ํ๊ฒฝ ๋ชจ๋ธ์์ ๋ฐ์ํ ์ ์๋ ์ ํ ๊ด๋ จ ์ค๋ฅ์ ๋ค์ ์๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
- ๋จ์ ๋ณํ ์ค๋ฅ: ์๋ก ๋ค๋ฅธ ์ธก์ ๋จ์(์: ๋ฏธํฐ ๋ฐ ํผํธ)๋ฅผ ํผํฉํ๋ฉด ๊ณ์ฐ์ ์๋นํ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ ํ ์์ ์ฑ์ ๋ชจ๋ ๊ฐ์ด ์ผ๊ด๋ ๋จ์๋ก ํํ๋๋๋ก ์๊ตฌํ์ฌ ์ด๋ฌํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์: ๊ธฐํ ๋ชจ๋ธ์ด ํด์๋ฉด ์์น์ ๊ณ์ฐํ ๋ ๋ฏธํฐ์ ํผํธ๋ฅผ ์ค์๋ก ํผํฉํ์ฌ ๋ถ์ ํํ ์์ธก์ ํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ ํ ๋ถ์ผ์น: ๋ถ๋ ์์์ ๊ฐ์ ์ ์๋ฅผ ์์ํ๋ ํจ์์ ์ ๋ฌํ๋ฉด ์๊ธฐ์น ์์ ๊ฒฐ๊ณผ ๋๋ ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ ํ ์์ ์ฑ์ ์ธ์ ๋ฐ์ดํฐ ์ ํ์ด ํจ์์ ์๊ตฌ ์ฌํญ๊ณผ ์ผ์นํ๋์ง ํ์ธํ์ฌ ์ด๋ฌํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์: ํ ์ ํ์ ๋ชจ๋ธ์ด ํ ์ ์๋ถ์ ์ซ์๊ฐ ์๋ ๋ฌธ์์ด๋ก ์์ ํ์ฌ ์๋ฎฌ๋ ์ด์ ์ด ์คํจํฉ๋๋ค.
- ๋ฐฐ์ด ์ธ๋ฑ์ฑ ์ค๋ฅ: ์๋ชป๋ ์ธ๋ฑ์ค๋ก ๋ฐฐ์ด ์์์ ์ก์ธ์คํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์์ ๋๋ ์๋ชป๋ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ ํ ์์ ์ฑ์ ๋ฐฐ์ด ์ธ๋ฑ์ค๊ฐ ๋ฐฐ์ด์ ๊ฒฝ๊ณ ๋ด์ ์๋์ง ํ์ธํ์ฌ ์ด๋ฌํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์: ํด์ ์ํ ๋ชจ๋ธ์ด ์ ์๋ ๋๋ฉ์ธ ์ธ๋ถ์ ๊ทธ๋ฆฌ๋ ์ง์ ์ ์ก์ธ์คํ๋ ค๊ณ ์๋ํ์ฌ ์ถฉ๋์ด ๋ฐ์ํฉ๋๋ค.
- Null ํฌ์ธํฐ ์์ธ: null ํฌ์ธํฐ์ ์ก์ธ์คํ๋ฉด ์ถฉ๋ ๋๋ ์์ธกํ ์ ์๋ ๋์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ ํ ์์ ์ฑ์ ์ญ์ฐธ์กฐํ๊ธฐ ์ ์ ํฌ์ธํฐ๊ฐ ํญ์ ์ ํจํ๋๋ก ์๊ตฌํ์ฌ ์ด๋ฌํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์: ์์ ๋ชจ๋ธ์ด ์ ๋๋ก ์ด๊ธฐํ๋์ง ์์ ๊ธฐํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ์๋ํ์ฌ null ํฌ์ธํฐ ์์ธ๊ฐ ๋ฐ์ํฉ๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ ํ ์์ ์ฑ
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ ๊ณตํ๋ ์ ํ ์์ ์ฑ ์์ค์ ๋ค์ํฉ๋๋ค. Fortran๊ณผ ๊ฐ์ ์ผ๋ถ ์ธ์ด๋ ์ ํต์ ์ผ๋ก ๊ณผํ ์ปดํจํ ์ ์ฌ์ฉ๋์์ง๋ง ์ ํ๋ ์ ํ ์์ ์ฑ์ ์ ๊ณตํฉ๋๋ค. C++์ ๊ฐ์ ๋ค๋ฅธ ์ธ์ด๋ ๋ ์ง๋ณด๋ ์ ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง ์ ํ ๊ด๋ จ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. Julia ๋ฐ Rust์ ๊ฐ์ ์ต์ ์ธ์ด๋ ์ ํ ์์ ์ฑ์ ์ฃผ์ ๋ชฉํ๋ก ์ค๊ณ๋์์ผ๋ฉฐ ๊ด๋ฒ์ํ ์ ํ ๊ด๋ จ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
Fortran
๊ณผํ ์ปดํจํ ์ ์ค๋ ์ญ์ฌ๋ฅผ ๊ฐ์ง Fortran์ ๊ธฐ๋ณธ์ ์ธ ์ ํ ๊ฒ์ฌ๋ฅผ ์ ๊ณตํ์ง๋ง ๋ ํ๋์ ์ธ ์ธ์ด์์ ๋ฐ๊ฒฌ๋๋ ๊ณ ๊ธ ์ ํ ์์ ์ฑ ๊ธฐ๋ฅ ์ค ๋ค์๊ฐ ๋ถ์กฑํฉ๋๋ค. Fortran์ ์ฑ๋ฅ์ ์ข ์ข ๊ณ ๋๋ก ์ต์ ํ๋์ง๋ง ๋ ์ฝํ ์ ํ ์์คํ ์ผ๋ก ์ธํด ์ ํ ๊ด๋ จ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค. Fortran 90 ๋ฐ ์ดํ ํ์ค์ ๋์ ์ผ๋ก ์ผ๋ถ ์ ํ ๊ด๋ จ ๊ฐ์ ์ฌํญ์ด ์ถ๊ฐ๋์์ง๋ง ์ ์ ๋ถ์ ๋ฐ ์ปดํ์ผ ์๊ฐ ์ค๋ฅ ๊ฐ์ง์ ๊ด๋ จํ์ฌ ๋ค๋ฅธ ์ธ์ด๋ณด๋ค ๋ค์ณ์ ธ ์์ต๋๋ค. ์ต์ Fortran ์ฝ๋ฉ ํ์ค์ ์ปดํ์ผ ์ ์ ํ ๊ด๋ จ ๊ฒ์ฌ๋ฅผ ์ต๋ํํ๊ธฐ ์ํด ๋ช ์์ ์ ํ ์ ์ธ ๋ฐ ์ปดํ์ผ๋ฌ ํ๋๊ทธ๋ฅผ ๊ถ์ฅํฉ๋๋ค.
C++
C++๋ ํ ํ๋ฆฟ ๋ฐ ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ํฌํจํ์ฌ ๊ฐ๋ ฅํ ์ ํ ์์คํ ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ C++๋ ๋ํ ๋ฎ์ ์์ค์ ๋ฉ๋ชจ๋ฆฌ ์กฐ์์ ํ์ฉํ๋ฏ๋ก ์ฃผ์ํด์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ ํ ๊ด๋ จ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ต์ C++ ์ฝ๋ฉ ๋ฐฉ์์ ์ค๋งํธ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์์ ํฌ์ธํฐ๋ฅผ ํผํ๋ฉฐ, ์ปดํ์ผ ์๊ฐ์ ์ ์ฌ์ ์ธ ์ ํ ์ค๋ฅ๋ฅผ ๊ฐ์งํ๊ธฐ ์ํด ์ ์ ๋ถ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ฐ์กฐํฉ๋๋ค. Boost ๋ฐ Eigen๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ํ ์์ ์ปจํ ์ด๋ ๋ฐ ์ ํ ๋์ ์ฐ์ฐ์ ์ ๊ณตํ์ฌ ์ํ์ ๋์ฑ ์ค์ ๋๋ค.
Python
Python์ ์ฌ์ฉ ํธ์์ฑ๊ณผ ๊ด๋ฒ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ธํด ๊ณผํ ์ปดํจํ ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋์ ์ผ๋ก ์ ํ์ด ์ง์ ๋ ์ธ์ด์ ๋๋ค. Python์ ๋์ ํ์ดํ์ ํตํด ๋น ๋ฅธ ํ๋กํ ํ์ ์ ์์ด ๊ฐ๋ฅํ์ง๋ง ๋ฐํ์์๋ง ๋ฐ๊ฒฌ๋๋ ์ ํ ๊ด๋ จ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. Python์์ ๊ณผํ ์ปดํจํ ์ ๊ธฐ๋ฐ์ด ๋๋ NumPy ๋ฐ SciPy์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ข ์ข ์ฑ๋ฅ์์ ์ด์ ๋ก C ๋๋ Fortran์ผ๋ก ๊ตฌํ๋ฉ๋๋ค. ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Python ์ฝ๋์์ ์ฃผ์ํด์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ ํ ์ค๋ฅ์ ์ทจ์ฝํ ์ ์๋ C API๋ฅผ ๋ ธ์ถํฉ๋๋ค. Python 3.5์ ๋์ ๋ ์ ํ ํํธ๋ฅผ ์ฌ์ฉํ๋ฉด MyPy์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ์ ์ ์ ์ ํ ๊ฒ์ฌ๋ฅผ ์ํํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ํ ํํธ๋ ์ฝ๋ ๋ช ํ์ฑ์ ํฅ์์ํค๊ณ ๋์ ํ์ดํ์ ์ ์ฐ์ฑ์ ํฌ์ํ์ง ์๊ณ ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ด๊ธฐ์ ์ ์ฌ์ ์ค๋ฅ๋ฅผ ๊ฐ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
Julia
Julia๋ ๊ณผํ ์ปดํจํ ์ ์ํด ํน๋ณํ ์ค๊ณ๋ ๋น๊ต์ ์๋ก์ด ์ธ์ด์ ๋๋ค. C++ ๋ฐ Fortran๊ณผ ๊ฐ์ ์ปดํ์ผ๋ ์ธ์ด์ ์ฑ๋ฅ๊ณผ Python๊ณผ ๊ฐ์ ์ธํฐํ๋ฆฌํฐ ์ธ์ด์ ์ฌ์ฉ ํธ์์ฑ์ ๊ฒฐํฉํฉ๋๋ค. Julia๋ ์ ์ ๋ฐ ๋์ ํ์ดํ์ ๋ชจ๋ ์ง์ํ๋ ๊ฐ๋ ฅํ ์ ํ ์์คํ ์ ๊ฐ์ถ๊ณ ์์ด ๊ฐ๋ฐ์๊ฐ ํ์์ ๊ฐ์ฅ ์ ํฉํ ์ ๊ทผ ๋ฐฉ์์ ์ ํํ ์ ์์ต๋๋ค. ์ธ์์ ์ ํ์ ๋ฐ๋ผ ํจ์ ๋์์ด ๋ฌ๋ผ์ง๋ Julia์ ๋ค์ค ๋์คํจ์น ์์คํ ์ ์ผ๋ฐ์ ์ด๊ณ ์ ํ ์์ ํ ์ฝ๋ ์์ฑ์ ์ด์งํฉ๋๋ค. ์ด ์ธ์ด์ ๊ธฐ๋ณธ ์ ๊ณต ์ ํ ์ถ๋ก ๋ฐ JIT(Just-in-Time) ์ปดํ์ผ ์ง์์ ์ฑ๋ฅ๊ณผ ์ ํ ์์ ์ฑ์ ๋ชจ๋ ๊ธฐ์ฌํฉ๋๋ค.
Rust
Rust๋ ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ ์ ํ ์์ ์ฑ์ ๊ฐ์กฐํ์ฌ ๊ณผํ ์ปดํจํ ์์ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์๋ ์์คํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. Rust์ ์์ ๊ถ ๋ฐ ๋์ฌ ์์คํ ์ ๋ฐ์ดํฐ ๊ฒฝํฉ์ด๋ ๋๊ธ๋ง ํฌ์ธํฐ๊ฐ ์๋๋ก ๋ณด์ฅํ์ฌ ๋ฏธ๋ฌํ ์ ํ ๊ด๋ จ ์ค๋ฅ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. Rust์ ์ ํ ์์คํ ์ ๋งค์ฐ ํํ๋ ฅ์ด ๋ฐ์ด๋๊ณ ์ ๋ค๋ฆญ, ํน์ฑ ๋ฐ ๋์์ ๋ฐ์ดํฐ ์ ํ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ํตํด ๊ฐ๋ฐ์๋ ๊ณ ๋๋ก ํจ์จ์ ์ธ ์ ํ ์์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. Rust๋ ๋ค๋ฅธ ์ธ์ด๋ณด๋ค ํ์ต ๊ณก์ ์ด ๋ ๊ฐํ๋ฅด์ง๋ง ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ ์ ํ ์์ ์ฑ์ ๋ํ ๊ฐ๋ ฅํ ๋ณด์ฅ์ผ๋ก ์ธํด ์ค์ํ ํ๊ฒฝ ๋ชจ๋ธ๋ง ์์ฉ ํ๋ก๊ทธ๋จ์ ๋งค๋ ฅ์ ์ธ ์ ํ์ด ๋ฉ๋๋ค.
ํ๊ฒฝ ๋ชจ๋ธ์์ ์ ํ ์์ ์ฑ ํฅ์์ ์ํ ์ ๋ต
์ฌ์ฉ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ด๊ณ์์ด ํ๊ฒฝ ๋ชจ๋ธ์์ ์ ํ ์์ ์ฑ์ ํฅ์์ํค๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ์ ๋ต์ด ์์ต๋๋ค.
- ์ ์ ๋ถ์ ๋๊ตฌ ์ฌ์ฉ: ์ ์ ๋ถ์ ๋๊ตฌ๋ ์ ์ฌ์ ์ธ ์ ํ ์ค๋ฅ ๋ฐ ๊ธฐํ ์ฝ๋ ํ์ง ๋ฌธ์ ๋ฅผ ์๋์ผ๋ก ๊ฐ์งํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ํตํฉ๋์ด ์ ์ฌ์ ์ธ ๋ฌธ์ ์ ๋ํ ์กฐ๊ธฐ ํผ๋๋ฐฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์๋ก๋ Javascript์ ESLint์ ๊ฐ์ ๋ฆฐํฐ์ Clang Static Analyzer์ ๊ฐ์ C++์ฉ ์ ์ ๋ถ์๊ธฐ๊ฐ ์์ต๋๋ค.
- ๋จ์ ํ ์คํธ ์์ฑ: ๋จ์ ํ ์คํธ๋ ๋ชจ๋ธ์ ๊ฐ๋ณ ๊ตฌ์ฑ ์์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํ๊ณ ์๋ก ๋ค๋ฅธ ์ ํ์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ๊ฒ ์ฒ๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. TDD(ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ)๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฒ๊ทธ๋ฅผ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค.
- ์ฝ๋ ๊ฒํ ์ฌ์ฉ: ์ฝ๋ ๊ฒํ ๋ ์ ์ ๋ถ์ ๋๊ตฌ ๋๋ ๋จ์ ํ ์คํธ์์ ๋์น ์ ์๋ ์ ์ฌ์ ์ธ ์ ํ ์ค๋ฅ ๋ฐ ๊ธฐํ ์ฝ๋ ํ์ง ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๊ฐ๋ฐ์ ๋ฐ ๋๋ฉ์ธ ์ ๋ฌธ๊ฐ๊ฐ ๋ชจ๋ธ์ ์ค๊ณ ๋ฐ ์ฝ๋๋ฅผ ๊ฒํ ํ๋๋ก ๊ถ์ฅํฉ๋๋ค.
- ์ฝ๋ฉ ํ์ค ์ฑํ: ์ฝ๋ฉ ํ์ค์ ์ฝ๋๊ฐ ์ผ๊ด๋๊ณ ์์ธก ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ์์ฑ๋์ด ์ดํดํ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฝ๋๋ก ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ๋ณ์ ์ด๋ฆ ์ง์ , ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ ํจ์ ์๋ช ์ ๋ํ ๊ท์น์ ํฌํจํฉ๋๋ค.
- ๋๋ฉ์ธ๋ณ ์ธ์ด(DSL) ์ฌ์ฉ: DSL์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ธ์ ํน์ ์ธก๋ฉด์ ๋ณด๋ค ์ ์ธ์ ์ธ ๋ฐฉ์์ผ๋ก ์ ์ํ์ฌ ์ ํ ๊ด๋ จ ์ค๋ฅ์ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค. ์: ๋ชจ๋ธ์ ์ ๋ ฅ ๋งค๊ฐ๋ณ์์ ํด๋น ์ ํ์ ๋ณ๋์ ๊ตฌ์ฑ ํ์ผ์ ์ ์ํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ ๊ตฌํ: ๋ชจ๋ธ์ ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ ๋จ๊ณ์์ ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํ์ฌ ๋ฐ์ดํฐ๊ฐ ์์ ๋ฒ์ ๋ด์ ์๋์ง ํ์ธํ๊ณ ๋ฐ์ดํฐ ์ ํ์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํฉ๋๋ค. ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ ๋๊ตฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ง์ ์ธ์ด์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ ํ ์ฃผ์ ์ฌ์ฉ: Python ๋ฐ JavaScript์ ๊ฐ์ ์ธ์ด๋ ๊ฐ๋ฐ์๊ฐ ๋ณ์ ๋ฐ ํจ์ ์ธ์์ ์์ ์ ํ์ ์ง์ ํ ์ ์๋ ์ ํ ์ฃผ์(์ ํ ํํธ๋ผ๊ณ ๋ ํจ)์ ์ง์ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๋ ๋ช ํ์ฑ์ ํฅ์์ํค๊ณ MyPy์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ ์ ํ ๊ฒ์ฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ธฐํ ๊ณผํ์์ ์ ํ ์์ ์ฑ์ ๋ฏธ๋
ํ๊ฒฝ ๋ชจ๋ธ์ด ์ ์ ๋ ๋ณต์กํด์ง๊ณ ์ ๊ตํด์ง์ ๋ฐ๋ผ ์ ํ ์์ ์ฑ์ ์ค์์ฑ์ ๊ณ์ ์ปค์ง ๊ฒ์ ๋๋ค. ์ ํ ์์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ๊ฐ๋ฐ ๋ฐฉ์์ ์ฑํ์ ์ด๋ฌํ ๋ชจ๋ธ์ ์ ํ์ฑ, ์ ๋ขฐ์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์์ผ๋ก ๋ค์ ์์ญ์์ ๋ ๋ง์ ์ฐ๊ตฌ ๊ฐ๋ฐ์ด ์ด๋ฃจ์ด์ง ๊ฒ์ผ๋ก ์์ํ ์ ์์ต๋๋ค.
- ๊ณผํ ์ปดํจํ ์ฉ ์ ํ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ: ๊ณผํ ์ปดํจํ ์ฉ ์ ํ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ๋ฐ์ ํตํด ๊ฐ๋ฐ์๋ ์ฑ๋ฅ์ ์ ํ์ํค์ง ์์ผ๋ฉด์ ์ ํ ์์ ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ํ ์์ ์ปจํ ์ด๋, ์ ํ ๋์ ์ฐ์ฐ ๋ฐ ๊ธฐํ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ณผํ ์ปดํจํ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ํ์์ ๊ฒ์ฆ ๊ธฐ์ : ํ์์ ๊ฒ์ฆ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ด ์ฌ๋ฐ๋ฅด๊ณ ํน์ ์์ฑ์ ์ถฉ์กฑํ๋์ง ์ํ์ ์ผ๋ก ์ฆ๋ช ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ๋ชจ๋ธ์ด ์ ํ ์์ ํ๊ณ ์ ํ ๊ด๋ จ ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์๋ ์ฝ๋ ์์ฑ: ์๋ ์ฝ๋ ์์ฑ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์์ค ์ฌ์์์ ์ ํ ์์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๋ ์ฝ๋ฉ์ ์์ ์ค์ด๊ณ ์ฝ๋๊ฐ ์ ํ ์์ ํ์ง ํ์ธํ ์ ์์ต๋๋ค.
- ๋จธ์ ๋ฌ๋๊ณผ์ ํตํฉ: ๋จธ์ ๋ฌ๋ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ ์ฌ์ ์ธ ์ ํ ์ค๋ฅ ๋ฐ ๊ธฐํ ์ฝ๋ ํ์ง ๋ฌธ์ ๋ฅผ ์๋์ผ๋ก ๊ฐ์งํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ์ฝ๋์ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ์์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ๋ จํ์ฌ ์ ํ ์ค๋ฅ๋ฅผ ๋ํ๋ด๋ ํจํด์ ์๋ณํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
์ ํ ์์ ์ฑ์ ์ด๋ฌํ ๋ชจ๋ธ์ ์ ํ์ฑ, ์ ๋ขฐ์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ฑ์ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ ์๋ ํ๊ฒฝ ๋ชจ๋ธ๋ง์ ์ค์ํ ์ธก๋ฉด์ ๋๋ค. ์ ํ ์์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ๊ฐ๋ฐ ๋ฐฉ์์ ์ฑํํจ์ผ๋ก์จ ๊ณผํ์ ๋ฐ ์์ง๋์ด๋ ์ ํ ๊ด๋ จ ์ค๋ฅ์ ์ํ์ ์ค์ด๊ณ ์์ ์ ์ ๋ฐ์ ์ธ ํ์ง์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ํ๊ฒฝ ๋ชจ๋ธ์ด ์ ์ ๋ ๋ณต์กํด์ง์ ๋ฐ๋ผ ์ ํ ์์ ์ฑ์ ์ค์์ฑ์ ๊ณ์ ์ปค์ง ๊ฒ์ด๋ฉฐ, ์ด๋ ๊ธฐํ ๊ณผํ ๋ฐ ๊ด๋ จ ๋ถ์ผ์ ๊ด๋ จ๋ ๋ชจ๋ ์ฌ๋์๊ฒ ํ์์ ์ธ ๊ณ ๋ ค ์ฌํญ์ด ๋ฉ๋๋ค.
๊ธ๋ก๋ฒ ๊ธฐํ ๋ฌธ์ ๋ ์๊ฒฉํ ๊ณผํ์ ์๊ตฌํฉ๋๋ค. ์ ํ ์์ ์ฑ์ ์์ฉํจ์ผ๋ก์จ ์ฐ๋ฆฌ๋ ํ๊ฒฝ ๋ชจ๋ธ์ด ์ง์ ๊ฐ๋ฅํ ๋ฏธ๋๋ฅผ ์ํด ๋์ฑ ๊ฐ๋ ฅํ๊ณ ์ ๋ขฐํ ์ ์์ผ๋ฉฐ ์คํ ๊ฐ๋ฅํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ์ ์ ํ ์ ํ ์์ ์กฐ์น๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๋จ์ํ ์ฝ๋ฉ ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ์๋๋ผ, ์ ์ธ๊ณ์ ์ ์ฑ ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ ๊ธ์ ์ ์ธ ๋ณํ๋ฅผ ์ถ์งํ ์ ์๋ ์ ๋ขฐํ ์ ์๋ ๊ธฐํ ์์ธก์ ๊ตฌ์ถํ๊ธฐ ์ํ ์ค์ํ ๋จ๊ณ์ ๋๋ค.