๐คทโ๏ธ ๋ณธ๋ก ์ ์์
IT๋ถ์ผ์์ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ฉด ์ปดํ์ผ๋ฌ(Compiler)์ ์ธํฐํ๋ฆฌํฐ(Interpreter) ์ฐจ์ด์ ๋ํ ๊ฐ๋ ์ด ํ์ํ ๋๊ฐ ์๊ณ ์ด ๋ ๊ฐ์ ๋ฐฉ์์ ๋ํ ๊ฐ๋ ์ ๊ฐ๋ฐ์์๊ฒ ์ค์ํ ์ง์์ด๋ผ๊ณ ์๊ฐ์ด ๋ญ๋๋ค.
๊ทธ๋์ ์ด๋ฒ ๊ธ์ ํตํด์ ์ปดํ์ผ๋ฌ์ ์ธํฐํ๋ฆฌํฐ์ ๊ฐ๋ ์ ๊ฐ์ฅ ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ์ ๋ฆฌํด ๋ณด์์ต๋๋ค.
๐คทโ๏ธ ์ปดํ์ผ๋ฌ์ ์ธํฐํ๋ฆฌํฐ ๊ฐ๋
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ ๋ ์ฝ๋๊ฐ ์ด๋ป๊ฒ ์คํ๋๋์ง ์ดํดํ๋ ๊ฒ์ ๊ฐ๋ฐ์์๊ฒ ์ค์ํฉ๋๋ค.
์ฌ๊ธฐ์ ํ๋ก๊ทธ๋จ ์ธ์ด๋ง๋ค ์ปดํ์ผ๋ฌ์ ์ธํฐํ๋ฆฌํฐ๋ผ๋ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์๊ณ ๋ ๋ค ๊ณ ๊ธ์ธ์ด์ด๋ฉฐ ์ฆ ๊ธฐ๊ณ๊ฐ ์ดํดํ ์ ์๋ ์ธ์ด๋ก ๋ฒ์ญํด ์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ ๊ฐ์ง๋ ์ฝ๋ ์คํ ๋ฐฉ์์์ ํฐ ์ฐจ์ด๋ฅผ ๋ณด์ ๋๋ค.
์ปดํ์ผ๋ฌ์ ์ธํฐํ๋ฆฌํฐ ๊ฐ๋ ์ ์์ฆ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ React, Svelte, Vue์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ํตํด ์ฝ๊ฒ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค.
์ปดํ์ผ๋ฌ (Compiler)
์ปดํ์ผ๋ฌ๋ ์ ์ฒด ์ฝ๋๋ฅผ ํ ๋ฒ์ ์ฝ๊ณ ์ด๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ์ฌ ์คํ ๊ฐ๋ฅํ ํ์ผ์ ์์ฑํฉ๋๋ค.
์ ์ฒด ์ฝ๋๋ฅผ ์ฝ๊ณ ์๋ฃ๋ ๋๊น์ง ์๋ฌ๋ฅผ ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ฒ๊น ์ด ์ด๋ ต๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
ํ์ง๋ง ์ ์ฒด ์ฝ๋ ๋ณํ์ ์๋ฃํ๋ฉด ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ณด๋ค ํ๋ก๊ทธ๋จ ์คํ ์๋๊ฐ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
์ปดํ์ผ๋ฌ์ ๋ณํ ๊ณผ์
- ์ฝ๋ ์์ฑ: ๊ฐ๋ฐ์๊ฐ ์์ค ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
- ์ปดํ์ผ: ์ปดํ์ผ๋ฌ๊ฐ ์ฝ๋๋ฅผ ์ฝ๊ณ ์ค๋ฅ๋ฅผ ์ฒดํฌํ ํ ๊ธฐ๊ณ์ด๋ก ๋ณํํฉ๋๋ค.
- ์คํ: ๋ณํ๋ ํ์ผ์ ์คํํฉ๋๋ค.
์๋ฅผ ๋ค์ด C++ ๊ฐ์ ์ธ์ด๋ ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. C++ ์ฝ๋๋ฅผ ์์ฑํ ํ ์ปดํ์ผ๋ฌ๋ฅผ ํตํด ์คํ ํ์ผ์ ๋ง๋ค๊ณ ์ด ํ์ผ์ ์คํํ์ฌ ํ๋ก๊ทธ๋จ์ด ์๋ํฉ๋๋ค.
์ธํฐํ๋ฆฌํฐ (Interpreter)
์ธํฐํ๋ฆฌํฐ๋ ์ฝ๋๋ฅผ ํ ์ค์ฉ ์ฝ๊ณ ์ฆ์ ์คํํฉ๋๋ค.
ํ๋ก๊ทธ๋จ ์คํ ์๋๋ ๋๋ฆฌ์ง๋ง ์๋ฌ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์คํ์ด ๋ฉ์ถ๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๋ฅผ ๋ฐ๋ก๋ฐ๋ก ์ฐพ์ ์ ์์ต๋๋ค.
์ธํฐํ๋ฆฌํฐ ๋ณํ ๊ณผ์
- ์ฝ๋ ์์ฑ: ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
- ์คํ: ์ธํฐํ๋ฆฌํฐ๊ฐ ์ฝ๋๋ฅผ ํ ์ค์ฉ ์ฝ๊ณ ์ฆ์ ์คํํฉ๋๋ค.
JavaScript๋ ๋ํ์ ์ธ ์ธํฐํ๋ฆฌํฐ ์ธ์ด์ ๋๋ค.
React, Svelte, Vue์ ๊ฐ์ ํ๋ ์์ํฌ๋ JavaScript๋ก ์์ฑ๋๋ฉฐ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด ์ฝ๋๋ฅผ ์ฝ๊ณ ์ฆ์ ์คํํฉ๋๋ค.
๐คทโ๏ธ ์ปดํ์ผ๋ฌ vs ์ธํฐํ๋ฆฌํฐ์ ์์
React: React๋ JavaScript๋ก ์์ฑ๋ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. React ์ฝ๋๋ ๋ธ๋ผ์ฐ์ ์์ ์ธํฐํ๋ฆฌํฐ์ ์ํด ์คํ๋ฉ๋๋ค. ์ฆ, ๊ฐ๋ฐ์๊ฐ ์์ฑํ JSX(React์ ๋ฌธ๋ฒ ํ์ฅ)๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฝ๊ณ ํด์ํ์ฌ DOM์ ๋ฐ์๋ฉ๋๋ค.
Svelte: Svelte๋ ์ปดํ์ผ๋ฌ ๊ธฐ๋ฐ์ ํ๋ ์์ํฌ์ ๋๋ค. Svelte ์ฝ๋๋ฅผ ์์ฑํ๋ฉด, Svelte ์ปดํ์ผ๋ฌ๊ฐ ์ด๋ฅผ ์ต์ ํ๋ JavaScript ์ฝ๋๋ก ๋ณํํฉ๋๋ค. ์ด ๊ณผ์ ์์ ๋ถํ์ํ ๋ถ๋ถ์ด ์ ๊ฑฐ๋๊ณ ๋ ๋น ๋ฅด๊ฒ ์คํ๋ ์ ์๋๋ก ์ต์ ํ๋ฉ๋๋ค.
Vue: Vue๋ ์ฃผ๋ก ์ธํฐํ๋ฆฌํฐ ๋ฐฉ์์ผ๋ก ์๋ํ์ง๋ง, Vue์ ํ ํ๋ฆฟ์ ์ปดํ์ผ๋ฌ์ ์ํด ์ฌ์ ์ปดํ์ผ๋ ์ ์์ต๋๋ค. ์ฆ, Vue๋ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ํ ํ๋ฆฟ์ JavaScript๋ก ๋ณํํ์ฌ ๋ธ๋ผ์ฐ์ ์์ ์คํํ ์ ์๋๋ก ํฉ๋๋ค.
๐คทโ๏ธ ์ ๋ฆฌํ์๋ฉด
์ปดํ์ผ๋ฌ: ์ ์ฒด ์ฝ๋๋ฅผ ํ ๋ฒ์ ์ฝ๊ณ ๊ธฐ๊ณ์ด๋ก ๋ณํํ์ฌ ์คํ ํ์ผ์ ์์ฑํฉ๋๋ค. (์: C++, C)
์ธํฐํ๋ฆฌํฐ: ์ฝ๋๋ฅผ ํ ์ค์ฉ ์ฝ๊ณ ์ฆ์ ์คํํฉ๋๋ค. (์: JavaScript, Python, PHP)
React, Svelte, Vue์ ๊ฐ์ ํ๋ ์์ํฌ๋ ์ด๋ฌํ ๊ฐ๋ ์ ๋ฐํ์ผ๋ก ์๋ํ๋ฉฐ ๊ฐ๊ฐ์ ๋ฐฉ์์ ๋ฐ๋ผ ๊ฐ๋ฐ์์๊ฒ ๋ค์ํ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค. ์ด์ฒ๋ผ ์ปดํ์ผ๋ฌ์ ์ธํฐํ๋ฆฌํฐ์ ์ฐจ์ด๋ฅผ ์ดํดํ๋ฉด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ๋ ์์ํฌ์ ์๋ ๋ฐฉ์์ ๋ ์ ์ดํดํ ์ ์์ต๋๋ค.
์ฌ๋ฐ๋ ์ค๋์ ๋ ๋ณ ์ด์ธ ๋ณด๊ณ ๊ฐ์ธ์!
https://cometruedream.tistory.com/247
https://cometruedream.tistory.com/243
https://cometruedream.tistory.com/242
https://cometruedream.tistory.com/241
https://cometruedream.tistory.com/244