2021๋ Stack Overflow ๊ฐ๋ฐ์ ์ค๋ฌธ์กฐ์ฌ ๊ฒฐ๊ณผ์์ 1์๋ฅผ ์ฐจ์งํ, ๊ฐ๋ฐ์์๊ฒ ๊ฐ์ฅ ์ฌ๋๋ฐ๋ ์น ํ๋ ์์ํฌ๋ก ๋ฝํ Svelte(์ค๋ฒจํธ)์ ๋ํด ์์๋ณด์.
์ด ๊ธ์์๋ Svelte๊ฐ ๋ฌด์์ธ์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ๋์ํ๋์ง, React์๋ ๋ฌด์์ด ๋ค๋ฅด๊ณ ์ด๋ป๊ฒ React๋ณด๋ค ๋น ๋ฅธ์ง์ ๋ํด ํฌ์คํ ํด๋ณด๋ ค ํ๋ค.
Svelte ๋?
๋น ๋ฅธ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๋๊ตฌ
· ์คํ ์์ค ํ๋ก ํธ์๋ ์น ํ๋ ์์ํฌ
Svelte(์ค๋ฒจํธ)๋ 2016๋ ์ถ์๋ ์คํ ์์ค ํ๋ก ํธ์๋ ์น ํ๋ ์์ํฌ๋ก, ๋น ๋ฅธ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ํด์ด๋ค. Interactiveํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ๋ค๋๋ฐ ์์ด React๋ Vue์ ๊ฐ์ JavaScript ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ฌํ๋ค.
Svelte ์ปดํฌ๋ํธ๋ 3๊ฐ์ง ์์๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
1. Script Tag
: <script>๋ธ๋ก์๋ ๊ตฌ์ฑ ์์ ์ธ์คํด์ค๊ฐ ์์ฑ๋ ๋ ์คํ๋๋ JavaScript๊ฐ ํฌํจ๋๋ค.
2. Style Tag (์ปดํฌ๋ํธ์ ์คํ์ผ)
: ์ปดํฌ๋ํธ์ ์คํ์ผ์ ๋ํ๋ด๋ฉฐ CSS ๋ด๋ถ์ <style>๋ธ๋ก์ ํด๋น ๊ตฌ์ฑ ์์๋ก ๋ฒ์๊ฐ ์ง์ ๋๋ค.
3. <div>์์น์๋ ์ํ๋ HTML ์์๋ค์ ๋ฌด์์ด๋ ์ฌ์ฉํ ์ ์๋ค.
# Svelte์ React, Vue์ ์ฐจ์ด
Svelte๋ ์ค์ DOM์ ์ฌ์ฉํ๋ฉฐ, ์ปดํ์ผ๋ฌ์ด๋ค.
React(๋ฆฌ์กํธ), Vue(๋ทฐ)์๋ ๋ค๋ฅด๊ฒ Svelte๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ๊ฐ ์๋๋ผ ์ปดํ์ผ๋ฌ์ ๊ฐ๊น๋ค.
Svlete๋ ์์ ์ 'ํ๋ ์์ํฌ๊ฐ ์๋ ํ๋ ์์ํฌ' ๋ผ๊ณ ์๊ฐํ๋ค. ์ด๋ ๊ฐ์ DOM์ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ, ๋ฐํ์์ Load ํ ํ๋ ์์ํฌ๊ฐ ์์์ ์๋ฏธํ๋ค.
React๋ ๊ฐ์ DOM์ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ์น ํ๋ ์์ํฌ์ด๋ค. ๊ฐ ๊ตฌ์ฑ ์์๋ฅผ ๋ง๋ค๋ฉด ๊ฐ์ DOM ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง๊ณ , ์ค์ DOM๊ณผ ๊ฐ์ DOM์ ๋น๊ตํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ค์ DOM์ผ๋ก ์
๋ฐ์ดํธํ๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ค.
๋ฐ๋ฉด, Svelte๋ ์ด ๊ณผ์ ์ ์๋ตํ๊ณ ๋ฐ๋ก ์ค์ DOM์ ๋ฐ์ํ๋ค. Svelte๋ ์ฑ์ ์คํ ์์ (Run time)์์ ํด์ํ์ง ์๊ณ ๋น๋ ์์ (Build time)์์ Vanilla JavaScript ๋ฒ๋ค๋ก ์ปดํ์ผํ๋ค.
์๋ฅผ ๋ค์ด, React๋ก ์น์๋น์ค๋ฅผ ๋น๋ํ๋ฉด, ์ ์ํ๊ณ ๋ฐฐํฌ๋ฅผ ํ๊ฒ ๋ ์ ์ ์ ๊ฐ ์น์ฌ์ดํธ์ ๋ค์ด์ฌ ๋ 2๊ฐ์ง ์ข ๋ฅ์ ์ฝ๋, 1)์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ์ฝ๋ ์ 2)React ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐฐํฌํด์ผ ํ๋ค.
๊ทธ๋ฌ๋ Svelte๋ ์ปดํ์ผ๋ฌ์ด๊ธฐ ๋๋ฌธ์ ์์์ ์ฝ๋๋ฅผ ๋ถ์ํ๊ณ , ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ๋ก ์ดํดํ ์ ์๋ JS ์ฝ๋๋ก ์๋ ์ปดํ์ผ ํ๋ค. ๋ฐ๋ผ์ ์ ์ ๊ฐ ์น์ฌ์ดํธ์ ๋ค์ด์ฌ ๋ Svelte ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ธํ, ์์ฑ๋ ๋จ ํ๋์ JavaScript ํ์ผ๋ง ๋ฐฐํฌํ๋ฉด ๋๋ค.
์ด๋ก์ธํด ์ฑ ์ฌ์ด์ฆ๋ React์ Vue์ ๋นํด ๋งค์ฐ ์๋ค.
-
๋ํ React, Vue ๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๋ค.
์ปดํ์ผ๋ฌ๊ฐ ๋์ฑ ์ต์ ํ๋ JS ์ฝ๋๋ฅผ ๋ง๋ค์ด์ ๋์ฑ ๋น ๋ฅธ ์๋๋ก UI๋ฅผ ์๋ก๊ณ ์นจ ํ ์ ์๊ธฐ ๋๋ฌธ์ Virtural DOM์ด ํ์์์ด VanillaJS์ ๊ฐ์ ์คํผ๋๋ฅผ ๋ณด์ฌ์ค๋ค.
# ์ ์ฌ๋๋ค์ด Svelte๋ฅผ ์ข์ํ ๊น?
- ๊ฐ๋ฐ ๊ฒฝํ(๊ฐ์ฅ ํฐ ์ด์ ) → Svelte๋ React๋ Vue ๊ฒฝํ์ด ์๋ค๋ฉด, ๋ฐฐ์ฐ๊ธฐ ์ฝ๊ณ ์ง๊ด์ ์ด๋ค.
- ์ ์ ์๊ฒ์ ์ ๋ ฅ๊ฐ์ ๊ฐ์ ธ์ค๋ ์์ ๋ค์ด React์ฒ๋ผ ์ค๋ ๊ฑธ๋ฆฌ์ง ์๊ณ ๊ธ๋ฐฉ ํ ์ ์๋ค.
- ์ฝ๋๊ฐ ์ง๊ด์ ์ด๊ณ , ์ฒ์๋ณด๋ ์ฌ๋๋ ์ดํดํ ์ ์์ ์ ๋๋ก ์ฝ๊ธฐ ํธํ๋ค.
[์ฐธ๊ณ ] https://youtu.be/Y7PHBSqDfvE
'๐ Programming > Svelte' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Svelte] VS Code์ ํ๊ฒฝ ์ธํ ํ๊ธฐ (0) | 2022.03.22 |
---|