๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ ๋ง๋ก ๋ค์ํ๋ค. C๋ถํฐ Java, C#, python, Go, Swift, PHP, JavaScript ๋ฑ๋ฑ ๋๋ ์์ด ๋์ดํ ์ ์์ ์ ๋๋ก ๋ฌด์ํ ๋ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์กด์ฌํ๋ค.
์ด๋ฐ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค๋ ์ปดํ์ผ ๋ฐฉ์, ๋ฉ๋ชจ๋ฆฌ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ ๋ฑ ์ฌ๋ฌ ๊ธฐ์ค์ ๋ฐ๋ผ ๋ถ๋ฅ๋ฅผ ๊ฐ๋ฅํ๋ค. ์ด๋ฒ ํฌ์คํธ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ถ๋ฅํ๋ ๊ธฐ์ค์ ์๊ฐํ๋ ค๊ณ ํ๋ค. ์๋ ๊ธฐ์ค์ ํตํด ํ๋ก๊ทธ๋จ ์ธ์ด๋ค์ ๋ถ๋ฅํด๋ณด์.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ถ๋ฅ๊ธฐ์ค
1. ์ ์์ค vs ๊ณ ์์ค
2. ์ปดํ์ผ vs ์ธํฐํ๋ฆฌํฐ
3. ๊ฐํ ํ์ vs ์ฝํ ํ์
4. ๋งค๋์ง๋ vs ์ธ๋งค๋์ง๋
1. ์ ์์ค ์ธ์ด vs ๊ณ ์์ค ์ธ์ด
๊ตฌ๋ถ | ์ ์์ค ์ธ์ด(Low-level language) | ๊ณ ์์ค ์ธ์ด(High-level language) |
๊ธฐ์ค: ์ ์์ค ๊ณ ์์ค์ ๊ธฐ์ค์ ๊ธฐ๊ณ๊ฐ ์ดํด๊ธฐ์ ์น์ํ๊ฐ์ ๋ฐ๋ผ ๋๋๋ค. | ||
์ดํด | ์ปดํจํฐ๊ฐ ์ดํดํ๊ธฐ ์ฌ์ด ์ธ์ด | ์ธ๊ฐ์ด ์ดํดํ๊ธฐ ์ฌ์ด ์ธ์ด |
Ex | 0๊ณผ 1๋ก๋ง ์ด๋ฃจ์ด์ง | ์ธ๊ฐ์ด ์ฌ์ฉํ๋ ์ธ์ด๋ก ์ด๋ฃจ์ด์ง |
ํน์ง | ๊ธฐ๊ณ์ด(machine code) | ์ด์ ๋ธ๋ฆฌ์ด, C, C+, Java, C# |
์ปดํจํฐ๊ฐ ๋ฐ๋ก ์ดํดํ๋ฏ๋ก ๋ณํ ๊ณผ์ ์ด ํ์ ์์ | ์ปดํจํฐ๊ฐ ์ดํดํ๋ ‘๊ธฐ๊ณ์ด’๋ก ๋ณํํ๋ ๊ณผ์ ์ด ํ์ | |
์ปดํจํฐ๊ฐ ์ดํดํ๊ธฐ ์ฌ์ด ์ธ์ด์ ๊ฐ๊น์ธ์๋ก ์ ์์ค, ์ธ๊ฐ์ด ์ดํดํ๊ธฐ ์ฌ์ด ์ธ์ด์ ๊ฐ๊น์ธ์๋ก ๊ณ ์์ค์ด๋ฉฐ ์ ์์ค ์ธ์ด์ ๊ณ ์์ค ์ธ์ด๋ ์๋์ ์ |
2. ์ปดํ์ผ ์ธ์ด vs ์ธํฐํ๋ฆฌํฐ ์ธ์ด
2.1 ์ปดํ์ผ์ธ์ด
์ปดํ์ผ ์ธ์ด(Compiled language) | |
์ดํด | ์์ค์ฝ๋๋ฅผ ์ปดํ์ผํด์ค์ ๊ธฐ๊ณ๊ฐ ์ดํดํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ฐ๊ฟ์ค๋ค. |
๋ํ์ธ์ด | C, C++ |
์ฒ๋ฆฌ๊ณผ์ | ์์ค์ฝ๋ -> ์ปดํ์ผ๋ฌ(์์ค์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ฐ๊พธ์ด์) -> ๊ธฐ๊ณ์ด -> ์คํ |
์ฅ์ | ๋ค์ํ ์ต์ ํ๊ฐ ๊ฐ๋ฅํ๋ค. (ํฌ๋ก์คํ๋ซํผ์ด ๊ฐ์ฅ ๋๋ฆฌ ์ง์๋๋ค.) |
๋จ์ | ํ๋ซํผ๋ง๋ค ๋ค๋ฅธ exeํ์ผ์ ์ปดํ์ผํด์ผ ํ๋ค. (CPU, ์ด์์ฒด์ ๋ง๋ค ์ดํดํ๋ ๊ธฐ๊ณ์ด๊ฐ ๋ค๋ฅผ ์ ์๊ธฐ ๋๋ฌธ) |
2.2 JIT ์ปดํ์ผ ์ธ์ด
JIT(Just-In-Time) ์ปดํ์ผ ์ธ์ด | |
์ดํด | ์คํ๋ผ์ธ ์ปดํ์ผ๋ฌ๊ฐ ์์ค ์ฝ๋๋ฅผ ์ค๊ฐ ์ธ์ด๋ก ์ปดํ์ผ |
๋ํ์ธ์ด | C#, Java, WASM(WebAssembly) |
์ฒ๋ฆฌ๊ณผ์ | ์์ค์ฝ๋ -> ์ปดํ์ผ๋ฌ -> ์ค๊ฐ ์ธ์ด ์ฝ๋ -> JIT ์ปดํ์ผ๋ฌ -> ๊ธฐ๊ณ์ด -> ์คํ |
ํน์ง | ์ต์ข
๊ณ ๊ฐ์ด ์คํํ๋ ํ์ผ์ ๊ธฐ๊ณ์์ ๋๋ ๊ฒ์ด ์๋ ์ค๊ฐ๋จ๊ณ์ ๊ฐ์๋จธ์ ์์ ๋๋ค. ํ๋ซํผ ๋ณ๋ก VM(Virtual Machine)์ ์ค์นํด์ผ ํ๋ค. ํ๋ก๊ทธ๋จ ์คํ ์ค์ VM์ด ์ค๊ฐ ์ธ์ด๋ฅผ ๊ธฐ๊ณ๊ฐ ์ดํดํ๋ ์ธ์ด๋ก ๋ฐ๊ฟ์ ์คํ Java๋ C#์ ํ๋ซํผ์ ์ข ์์ ์ด์ง ์๊ณ VM์ ์ข ์์ ์ |
2.3 ์ธํฐํ๋ฆฌํฐ ์ธ์ด
์ธํฐํ๋ฆฌํฐ ์ธ์ด(Interpreter language) | |
์ดํด | ์คํ ์ค์ ๊ณ ์์ค ์ธ์ด๋ฅผ ๋ค์ดํฐ๋ธ ์ฝ๋๋ก ํด์ํด์ ์คํํจ |
๋ํ์ธ์ด | JavaScript, Python, Lua, PHP |
์ฒ๋ฆฌ๊ณผ์ | ์์ค์ฝ๋ -> ์ธํฐํ๋ฆฌํฐ(์์ค์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ํด์์ ํด์) -> ๊ธฐ๊ณ์ด -> ์คํ |
์ฅ์ | ์ปดํ์ผ ๊ณผ์ ์ด ์์ด์ ๋น ๋ฅด๊ฒ ๋๋ฆด ์ ์๋ค. |
๋จ์ | ์ค๋ฅ๋ฅผ ์ ๋ ์ก์๋ด๊ธฐ ํ๋ค๋ค. ์ค์ ๋ก ์คํํ๊ธฐ ์ ๊น์ง ์ฝ๋์ ๋ฌธ์ ๋ฅผ ์ก์๋ผ ์ ์์(์คํ๋ผ์ธ ์ปดํ์ผ๋ฌ๊ฐ ์๊ธฐ ๋๋ฌธ) |
3. ๊ฐํ ํ์ ์ธ์ด vs ์ฝํ ํ์ ์ธ์ด
๊ตฌ๋ถ | ๊ฐํ ํ์ ์ธ์ด | ์ฝํ ํ์ ์ธ์ด |
๊ธฐ์ค: ๋ณ์ ์ ์ธ(๋ณ์์ ์ฉ๋)๊ณผ ๊ด๋ จ ์์. - ๋ณ์ํ์ ์ ์ธํ ํ์ ๋ณ์ํ์ ๋ณ๊ฒฝํ ์ ์๋? | ||
์ดํด | NO - ๋ณ์ํ์ ๋ณ๊ฒฝํ ์ ์๋ค. | YES - ๋ณ์ํ์ ๋ณ๊ฒฝํ ์ ์๋ค. |
Ex | C, C++, C#, Java | JavaScript |
ํน์ง | ํ์
์ด ์ ํด์ ธ ์๋ ์ธ์ด๋ฅผ ์ฐ๋ ์ด์ ๋ ๋ณ์์ ์ด๋ค ํ์
์ด ๋ค์ด๊ฐ๋ ์ง๋ฅผ ๋ช
ํํ ์ ์ ์๊ธฐ ๋๋ฌธ์ ํ์
์ด ์ ํด์ ธ ์์ง ์์ ๋ ๋ฒํ ์ ์๋ ์ค์๋ฅผ ๋ฏธ๋ฆฌ ํ๋จํ ์ ์๋ค. ํ์
์ ํ ๊ฒฝ์ฐ์๋ ์ด๋ ํ ๋ณ์์ ํ์
์ด ๋ฌด์์ธ์ง ๋ชจ๋ฅผ ๊ฒฝ์ฐ ์ค์ํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค. ํ์ ์ด ์ ํด์ ธ ์์ง ์๋ค๋ฉด ๊ธฐ๊ณ๊ฐ ์ค์ ๋ก ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ ๊น์ง ์ค์๋ฅผ ์ฐพ์ ์ ์๋ค. ์ด๋ฌํ ์ด์ ๋ก ์์ฉ์ฝ๋(์ ํ)๋ฅผ ์์ฑํ ๋๋ ๊ฐํ ํ์ ์ธ์ด๋ค์ด ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. |
4. ๋งค๋์ง๋ ์ธ์ด vs ์ธ๋งค๋์ง๋ ์ธ์ด
๊ตฌ๋ถ | ๋งค๋์ง๋ ์ธ์ด | ์ธ๋งค๋์ง๋ ์ธ์ด |
๋๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋ช (๋ผ์ดํ ์ฌ์ดํด)์ ๊ด๋ฆฌํ๋๊ฐ ํต์ฌ | ||
์ดํด | ํ๋ก๊ทธ๋จ์์ ํฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ด์์ฒด์ (OS)๋ก๋ถํฐ ๋
์ ์ ์ผ๋ก ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํด์ผ ํจ ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ค ์ฌ์ฉํ ๋ค์๋ OS์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐํํด์ผ ํจ |
|
Ex | Java, C#, JavaScript, Lua | C, C++ |
ํน์ง | ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๋ ์ด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉ ์ ํ๋ ์ ํฉ์ ํ๋จํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐํํด ์ค | ํ๋ก๊ทธ๋๋จธ๊ฐ ์ฑ ์์ง๊ณ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐํํด์ผ ํจ |
์ฑ๋ฅ์ด ์ค์ํ์ง ์์ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ๋ | ์ฑ๋ฅ์ด ์ค์ํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ๋ | |
๋งค๋์ง๋ ์ธ์ด๊ฐ ์ค์๊ฐ ์ ๊ณ ํธํ๊ธด ํจ, ๊ทธ๋ฌ๋ ์ด๋ฆผ์ง์์ด ๋ช ์์ ํํ๋ณด๋ค ํจ์จ์ ์ผ ์ ์์ |
[Unity] ์ ๋ํฐ๋? ๊ฒ์๊ฐ๋ฐ์ ์ํ ์์ง ์ ๋ํฐ๋ฅผ ์๊ฐํฉ๋๋ค
'๊ฒฝํ > ๐IT์ ๋ณด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ผ์ฑ ์ฒญ๋ SW ์์นด๋ฐ๋ฏธ SSAFY ์๊ฐ (2) | 2020.05.14 |
---|---|
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ถ๋ฅ(2) ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์ (0) | 2020.04.30 |
๊ฐ๋ฐ์ ํ ํฌํธ๋ฆฌ ์ถ์ฒ์์ (0) | 2020.04.24 |
๊ฐ๋ฐ์ ํ ํฌํธ๋ฆฌ ๋ก๋๋งต์ ํ์ธํด๋ณด์ (0) | 2020.04.23 |