Frontend/Svelte

SvelteKit ์œผ๋กœ ๋งŒ๋“  Web ์„ ๋ฌด๋ฃŒ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‚˜์š”? ๋น ๋ฅด๊ณ  ํŽธํ•œ Netlify ๋ฅผ ์ ์šฉํ•ด๋ด์š”! #5

๐Ÿ”ฅGNGB-Young๐Ÿ”ฅ 2023. 2. 26. 20:17

ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์€

(1) Netlify ๊ฐœ์š”

(2) Netlify ์—ฐ๋™ ๋ฐฉ๋ฒ• (w/ SvelteKit, Github)

์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ „ ๊ฒŒ์‹œ๊ธ€ - ์ œ๊ฐ€ ๋งŒ๋“  Svelte Web ์€ ์™œ ์ด๋ ‡๊ฒŒ ๋ชป์ƒ๊ฒผ๋‚˜์š”? DaisyUI ์ธ๊ณตํ˜ธํก๊ธฐ๋ฅผ ๋ถ™์—ฌ๋ด์š”! #4

 

์ œ๊ฐ€ ๋งŒ๋“  Svelte Web ์€ ์™œ ์ด๋ ‡๊ฒŒ ๋ชป์ƒ๊ฒผ๋‚˜์š”? DaisyUI ์ธ๊ณตํ˜ธํก๊ธฐ๋ฅผ ๋ถ™์—ฌ๋ด์š”! #4

ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์€ (1) DaisyUI ๊ฐœ์š” (2) DaisyUI ์ ์šฉ ๋ฐฉ๋ฒ• ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๊ฒŒ์‹œ๊ธ€ - SvelteKit ์— ์š”์ฆ˜ ์ œ์ผ ์ธ๊ธฐ๋งŽ๋‹ค๋Š” TailwindCSS ๋ฅผ ์ ์šฉํ•ด๋ณผ๊นŒ์š”? #3 SvelteKit ์— ์š”์ฆ˜ ์ œ์ผ ์ธ๊ธฐ๋งŽ๋‹ค๋Š” Tai

gngb-tech.tistory.com


ch1 - Netlify ๋ž€?

Netlify ๊ฐ€ ๋ญ์˜ˆ์š”? ์‚ฌ์šฉํ•ด๋ณธ ํ›„๊ธฐ ์•Œ๋ ค์ฃผ์„ธ์š”!

์ •์  Website ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜

    Netlify ๋Š” ์ง์ ‘ ๋งŒ๋“  Website ๋ฅผ ๋ฌด๋ฃŒ๋กœ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ์†”๋ฃจ์…˜์ด์ž ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ์˜ํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€๊ณต๋˜๊ณ  ํ˜•ํƒœ๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€ํ™”ํ•˜๋Š” ๋™์  (Dynamic) Website ์— ๋Œ€ํ•œ ํ˜ธ์ŠคํŒ…์ด ์•„๋‹ˆ๋ผ, ๋ฏธ๋ฆฌ ์ €์žฅ๋œ Html/CSS/Javascript ๋“ฑ์˜ ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ์ •์  (Static) Website ์— ๋Œ€ํ•œ ํ˜ธ์ŠคํŒ…์„ ๋Œ€์ƒ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธ ๊ฒฐ๊ณผ, ํ˜„์žฌ Netlify ๋Š” ๋™์  Website ํ˜ธ์ŠคํŒ…๋„ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

    ์•„๋ž˜์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด, Local ํ™˜๊ฒฝ์—์„œ์˜ Web ๊ฐœ๋ฐœ ์‚ฐ์ถœ๋ฌผ์ด ์ ์ ˆํ•œ Netlify ์„ธํŒ…์„ ๋งˆ์น˜๋ฉด Public ํ™˜๊ฒฝ์— ํ˜ธ์ŠคํŒ…๋˜๊ณ  ์ง€์ •๋œ URL ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ˆ„๊ตฌ๋‚˜ ์ ‘๊ทผ๊ฐ€๋Šฅํ•œ Web ์ด ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ด์™€ ์œ ์‚ฌํ•œ ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜ ์„œ๋น„์Šค๋กœ๋Š” Vercel, Heroku ๋“ฑ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : Netlify ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€

  

์‚ฌ์šฉ ํ›„๊ธฐ

    SvelteKit ์„ ํ†ตํ•œ Web ๊ฐœ๋ฐœ์„ Github ๊ธฐ๋ฐ˜์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ์— Netlify ๋ฅผ ์ ์šฉํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ต‰์žฅํžˆ ๊ธ์ •์ ์ธ ์‚ฌ์šฉ ๊ฒฝํ—˜์„ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. SvelteKit ๊ณผ Netlify ์˜ ์—ฐ๋™ ๋ฐ Github ์™€ Netlify ์—ฐ๋™ ๊ณผ์ •์€ ์‰ฝ๊ณ  ์ง๊ด€์ ์ด์—ˆ๊ณ  (๋Œ€๋ถ€๋ถ„์˜ ์—ฐ๋™ ๊ณผ์ •์€ NoCode ํ˜•ํƒœ์˜ GUI ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.) CICD ๋„ ๋ณ„๋‹ค๋ฅธ ํ™˜๊ฒฝ ์„ธํŒ…์—†์ด ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, Github ์— Code ๋ฅผ Push ํ•˜๊ธฐ๋งŒ ํ•ด๋„ ์ƒˆ๋กœ์šด ๋ฒ„์ ผ์˜ Code ๊ฐ€ ๋ฐ˜์˜๋œ ์‹ ๊ทœ Web ์ด ์ž๋™ ๋ฐฐํฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Netlify ์™€ ๊ฐ™์€ ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜ ์„œ๋น„์Šค๋ฅผ ์•Œ๊ธฐ ์ „๊นŒ์ง€ Web ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ž๋™ํ™” ํŒŒ์ดํ”„๋ผ์ธ์„ GitAction ์œผ๋กœ ์ง์ ‘ CICD ๋ฅผ ๊ตฌ์ถ•ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ž˜๋ชป๋œ ์ธ์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋˜ ์ž…์žฅ์œผ๋กœ์„œ, ์ด์™€ ๊ด€๋ จ๋œ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•ํ•˜์—ฌ Web ๊ฐœ๋ฐœ์— ๋”์šฑ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ํฐ ๋งค๋ ฅ์œผ๋กœ ๋‹ค๊ฐ€์™”์Šต๋‹ˆ๋‹ค.

    (ํŠน์ • ์‚ฌ์šฉ๋Ÿ‰๊นŒ์ง€๋Š”) ๋ฌด๋ฃŒ์ธ ๊ฒƒ๋„ ํฐ ์žฅ์ ์ž…๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค ์—ฌ์œ ๋ถ„์ด ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์— ๋ถ€์กฑํ•จ์ด ์—†๋Š” ์ˆ˜์ค€์ด๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ์šฉํ•  ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งค์šฐ ํฌ๋‹ค๋“ ๊ฐ€ (100GB ์ดˆ๊ณผ) ๋ณต์žก๋„๊ฐ€ ๋†’์€ ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์•„๋ณด์ž…๋‹ˆ๋‹ค. Backend ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์„œ๋ฒ„ ๊ตฌ์ถ• ๋ฐ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ๋ถ€๋‹ด๊ฐ์ด Public Cloud ์˜ ์„œ๋ฒ„๋ฆฌ์Šค (Serverless) ์„œ๋น„์Šค (AWS Lambda, ECS Fargate ๋“ฑ) ์— ์˜ํ•ด ์ƒ๋‹น ๋ถ€๋ถ„ ํ•ด์†Œ๋˜์—ˆ๋˜ ๊ธ์ •์ ์ธ ์‚ฌ์šฉ ๊ฒฝํ—˜์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ๊ฐœ์ธ์ ์œผ๋กœ Frontend ๊ฐœ๋ฐœ ์ธก๋ฉด์—์„œ Netlify ๋Š” ๊ทธ๋ณด๋‹ค ๋” ์ข‹์€ ์‚ฌ์šฉ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. 

    ์•„๋ž˜์™€ ๊ฐ™์€ ์‚ฌํ•ญ์— ํ•ด๋‹น๋œ๋‹ค๋ฉด, ๋‹น์žฅ Netlify ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— ๋ฐฉ๋ฌธํ•ด ๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • ๊ฐœ์ธ ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ Website ๋กœ ์ •๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค. 
  • <์ฃผ๋กœ ์Šคํƒ€ํŠธ์—… or ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ํŒ€> ํŒ€ ์†Œ๊ฐœ Website ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ๊ณต์œ ํ•˜๊ณ  ์‹ถ๋‹ค.
  • Frontend ๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ–ˆ๊ณ , ๋ฐฐํฌ (ํ˜ธ์ŠคํŒ…) ๊ณผ์ •๊นŒ์ง€ End to End ๋กœ ๊ฒฝํ—˜ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค.

ch2 - SvelteKit (w/ Github) ํ™˜๊ฒฝ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

Sveltekit ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์„ธ์š”!

SvelteKit ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…

    Github ์— Repository ๋ฅผ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ์ €์žฅ์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ SvelteKit ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. Github ๊ฐœ์ธ ๊ณ„์ •์ด๋ผ๋ฉด Public ๋ฐ Private Repository ๋ชจ๋‘ ํ™œ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (Netlify ๋ฅผ Public Repository ์— ํ•œ์ •ํ•˜์—ฌ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ฐฉ๊ฐํ•˜์—ฌ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์ค‘๊ฐ„์— Private Repository ๋กœ ์ด์ „ํ•œ ๊ฒฝํ—˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹คใ… ใ… ) ๋‹ค๋งŒ, Github ์กฐ์ง ๊ณ„์ •์ด๋ผ๋ฉด ๋ฌด๋ฃŒ Plan ์—์„œ๋Š” Private Repository ๋ฅผ ์—ฐ๋™ ๋Œ€์ƒ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. SvelteKit ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๊ณผ์ •์€ ์•„๋ž˜์˜ ๊ด€๋ จ ๊ฒŒ์‹œ๊ธ€์— ์ƒ์„ธํžˆ ๊ธฐ์žฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ๊ฒŒ์‹œ๊ธ€ - ์ •์‹ ์ถœ์‹œ๋œ SvelteKit ์œผ๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! #2

 

์ •์‹ ์ถœ์‹œ๋œ SvelteKit ์œผ๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! #2

ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์€ (1) SvelteKit ๊ฐœ์š” (2) SvelteKit ์„ค์น˜ ๋ฐฉ๋ฒ• ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๊ฒŒ์‹œ๊ธ€ - ์™œ ํ•˜ํ•„ Svelte ์˜ˆ์š”? ์ €๋„ ๊ณต๋ถ€ํ•ด๋ณผ๊นŒ์š”? #1 ์™œ ํ•˜ํ•„ Svelte ์˜ˆ์š”? ์ €๋„ ๊ณต๋ถ€ํ•ด๋ณผ๊นŒ์š”? #1 ํ•ด๋‹น ๊ฒŒ์‹œ

gngb-tech.tistory.com

    ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด npm ์„ ํ†ตํ•ด Svelte ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์œ„ํ•œ Netlify Adapter ๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๊ธฐ๋ณธ์ ์ธ ์ ์šฉ๊ณผ์ •์€ ๊ณต์‹ ๋ฌธ์„œ์˜ ๊ฐ€์ด๋“œ๋ผ์ธ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.)

npm install -D @sveltejs/adapter-netlify@next

๋‹ค์šด๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด, svelte.config.cjs ์„ ์•„๋ž˜์˜ ์ฝ”๋“œ๋ธ”๋Ÿญ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

import adapter from '@sveltejs/adapter-netlify'; // ์ถ”๊ฐ€
import { vitePreprocess } from '@sveltejs/kit/vite';

/** @type {import('@sveltejs/kit').Config} */
const config = {
	kit: {
		adapter: adapter()
	},
	preprocess: vitePreprocess()
};

export default config;

netlify.toml ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์•„๋ž˜์˜ ์ฝ”๋“œ๋ธ”๋Ÿญ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

[build]
  command = "npm run build"
  publish = "build"

์œ„์˜ ๊ณผ์ •์„ ํ†ตํ•ด, Netlify ์—ฐ๋™์„ ์œ„ํ•œ SvelteKit ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…์€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

Netlify ์—ฐ๋™ (w/ Github)

    Netlify ํ™ˆํŽ˜์ด์ง€์— ๋ฐฉ๋ฌธํ•˜์—ฌ ํšŒ์›๊ฐ€์ž…์„ ๋งˆ์น˜๊ณ  Starter (๋ฌด๋ฃŒ) ์ž๊ฒฉ์œผ๋กœ Team ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. Team Overview ๋ฉ”๋‰ด์˜ ์ขŒ์ธก ํ•˜๋‹จ Sites ํƒญ์—์„œ ์•„๋ž˜์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด import from git ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„, ์ •ํ•ด์ง„ ํ”„๋กœ์„ธ์Šค๋Œ€๋กœ GUI ๋ฅผ ํ†ตํ•ด Github ๊ณ„์ • ๋ฐ Repository ์—ฐ๋™์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Netlify ์—ฐ๋™ : Sites ํƒญ ๋‚ด, Git ์˜ต์…˜

    ์ดํ›„, ํ˜ธ์ŠคํŒ…์ด ์ ์šฉ๋  Branch (Deafult : Main) ๋ฅผ ์ง€์ •ํ•˜๊ณ , Build ์„ธํŒ…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด, Base Directory ๊ณต๋ž€์— SvelteKit ์—์„œ ์ฒ˜์Œ์— ์„ค์ •ํ•œ ํด๋” ๋ช…์นญ (App Name) ์„ ์ž‘์„ฑํ•˜๊ณ  Build Command ์— npm run build ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.  

Netlify ์—ฐ๋™ : Build ์„ธํŒ…

    ์ •์ƒ์ ์œผ๋กœ ์—ฐ๋™ ์„ธํŒ…์ด ์ง„ํ–‰๋˜์—ˆ๋‹ค๋ฉด, Netlify ์— ์˜ํ•ด ํ• ๋‹น๋ฐ›์€ ์ž„์˜์˜ URL ์„ ๊ธฐ๋ฐ˜์œผ๋กœ Website ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , Public ํ™˜๊ฒฝ์—์„œ ํ˜ธ์ŠคํŒ…๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ, ์•„๋ž˜์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด General - Site Details ํƒญ์„ ํ™œ์šฉํ•˜์—ฌ ์ž„์˜๋กœ ํ• ๋‹น๋œ URL ๋Œ€์‹  ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” Website ๋ช…์นญ์œผ๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋ณ„๋„์˜ Domain ์„ธํŒ…์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด .netlify.app Domain ์ฃผ์†Œ๋Š” ์‚ญ์ œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.)

    ์œ„์˜ ๊ณผ์ •์„ ํ†ตํ•ด Github ์™€ ์—ฐ๋™๋œ Netlify ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด Website ๋ฅผ ํ˜ธ์ŠคํŒ…ํ–ˆ๋‹ค๋ฉด, ์•ž์œผ๋กœ ํ•ด๋‹น Website ๋Š” Github ์— ์ƒˆ๋กœ์šด Code ๊ฐ€ Push ๋  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ”ํƒ•์œผ๋กœ (๋™์ผํ•œ URL ์˜) ์ƒˆ๋กœ์šด ๋ฒ„์ ผ์˜ Website ๋กœ ์—…๋ฐ์ดํŠธ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋น„์ „๊ณต์ž๊ฐ€ Svelte ๋ฅผ ๊ณต๋ถ€ํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฒช๊ฒŒ ๋  ์–ด๋ ค์›€๊ณผ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๋จผ์ € ๊ฒฝํ—˜ํ•˜๊ณ , ์ด์–ด์งˆ ๊ฒŒ์‹œ๊ธ€์—์„œ ์ตœ๋Œ€ํ•œ ์‰ฝ๊ฒŒ ๊ณต์œ ํ•ด๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ง€์ ์‚ฌํ•ญ์ด๋‚˜ ๋ฌธ์˜์‚ฌํ•ญ์€ ์–ธ์ œ๋“ ์ง€ ํŽธํ•˜๊ฒŒ ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์‹œ๊ธธ ๋ฐ”๋ผ๊ฒ ์Šต๋‹ˆ๋‹ค.