πŸ”₯GNGB-YoungπŸ”₯
GNGB-team-tech-blog
πŸ”₯GNGB-YoungπŸ”₯
  • λΆ„λ₯˜ 전체보기 (8)
    • AWS (0)
    • ML&DL Service (1)
    • ML&DL Research (2)
    • DevOps (0)
      • Common (0)
      • Docker (0)
      • MLOps (0)
    • Frontend (4)
      • Common (0)
      • Svelte (4)
      • Flutter (0)
      • Streamlit (0)
    • Backend (0)
      • Common (0)
    • CS (0)
      • Common (0)
      • Network (0)
    • Statistics (1)
    • Project (0)
      • CoinBot (0)
      • Crawler (0)
    • Etc (0)
      • Tistory (0)
    • Introduction (0)
      • Team (0)

νƒœκ·Έ

  • netlify
  • tailwindcss
  • ML
  • nlp
  • Fine-tuning
  • Editor:Paul
  • instructGPT
  • ChatGPT
  • DaisyUI
  • GPT
  • language model
  • Editor:Redstone
  • Knowledge Distillation
  • Svelte
  • frontend
  • Machine Learning
  • λ‚œμ΄λ„(ν•˜)
  • hosting
  • hierarchical modeling
  • gpt-4
  • Editor:Young
  • bayesian
  • Statistics

인기 κΈ€

졜근 κΈ€

졜근 λŒ“κΈ€

전체 방문자
였늘
μ–΄μ œ
hELLO Β· Designed By μ •μƒμš°.
πŸ”₯GNGB-YoungπŸ”₯

GNGB-team-tech-blog

정식 μΆœμ‹œλœ SvelteKit 으둜 개발 ν™˜κ²½μ„ κ΅¬μ„±ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€! #2
Frontend/Svelte

정식 μΆœμ‹œλœ SvelteKit 으둜 개발 ν™˜κ²½μ„ κ΅¬μ„±ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€! #2

2023. 1. 29. 22:44

ν•΄λ‹Ή κ²Œμ‹œκΈ€μ€

(1) SvelteKit κ°œμš” 

(2) SvelteKit μ„€μΉ˜ 방법

에 λŒ€ν•œ λ‚΄μš©μ„ λ‹΄κ³  μžˆμŠ΅λ‹ˆλ‹€.

이전 κ²Œμ‹œκΈ€ - μ™œ ν•˜ν•„ Svelte μ˜ˆμš”? 저도 κ³΅λΆ€ν•΄λ³ΌκΉŒμš”? #1

 

μ™œ ν•˜ν•„ Svelte μ˜ˆμš”? 저도 κ³΅λΆ€ν•΄λ³ΌκΉŒμš”? #1

ν•΄λ‹Ή κ²Œμ‹œκΈ€μ€ (1) Svelte λ₯Ό μ„ νƒν•œ 계기 (2) Svelte λ₯Ό κ³΅λΆ€ν•˜κΈ° μ ν•©ν•œ λŒ€μƒ 에 λŒ€ν•œ λ‚΄μš©μ„ λ‹΄κ³  μžˆμŠ΅λ‹ˆλ‹€. κ΄€λ ¨ κ²Œμ‹œκΈ€ - Frontend κ°œλ°œμžκ°€ μ•„λ‹Œλ° ꡳ이 Web/App 을 곡뢀해야 ν• κΉŒμš”? [fe-cm : ep.1] Frontend

gngb-tech.tistory.com


ch1 - SvelteKit 릴리즈

SvelteKit 이 λ¬΄μ—‡μΈκ°€μš”?

SvelteKit v1.0

    SvelteKit 은 Svelte 의 Meta-framework λ‘œμ„œ 졜근 (2022.12.15) v1.0 이 정식 μΆœμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. React.js 에 μ΅μˆ™ν•˜μ‹  뢄듀은 Next.js, Vue.js 에 μ΅μˆ™ν•˜μ‹  뢄듀은 Nuxt.js 와 같은 λ°°κ²½κ³Ό λͺ©μ μ— μ˜ν•΄ 개발된 Meta-framework 라고 이해해 μ£Όμ‹œλ©΄ 될 것 κ°™μŠ΅λ‹ˆλ‹€. Frontend κ°œλ°œμ„ 처음 μ ‘ν•˜μ‹œλŠ” 뢄듀은 이와 같은 Meta-framework κ°€ μ΅μˆ™ν•˜μ‹œμ§€ μ•Šκ² μ§€λ§Œ, Svelte λ₯Ό ν™œμš©ν•œ 개발 κ²½ν—˜μ„ κ°œμ„ ν•΄μ€„ 수 μžˆλŠ” Framework κ°€ Beta 버젼 이후 정식 λ²„μ ΌμœΌλ‘œ μΆœμ‹œλ˜μ—ˆλ‹€κ³  이해해 μ£Όμ‹œλ©΄ 될 것 κ°™μŠ΅λ‹ˆλ‹€. 이전 κ²Œμ‹œκΈ€μ—μ„œλ„ μ–ΈκΈ‰ν•˜μ˜€λ“―μ΄, λ‹€μ–‘ν•œ 선택지 쀑 Web κ°œλ°œμ„ Svelte 둜 μ‹œμž‘ν•˜κ²Œ 된 μ£Όμš” κ³„κΈ°λ‘œ SvelteKit 정식 μΆœμ‹œκ°€ μžˆμ—ˆλ˜ 만큼 Svelte 에 관심이 μžˆμ—ˆλ˜ μ‚¬λžŒλ“€μ—κ²ŒλŠ” 이번 정식 버젼 μΆœμ‹œκ°€ ꡉμž₯히 μ„€λ ˆλŠ” μΌμ΄μ—ˆμŠ΅λ‹ˆλ‹€. 정식 버젼 μ΄μ „μ˜ SvelteKit 은 (λ‹€λ₯Έ Beta 버젼 Framework 도 μœ μ‚¬ν•˜κ² μ§€λ§Œ) μž¦μ€ 변경이 μ˜ˆκ³ λ˜μ—ˆκΈ° λ•Œλ¬Έμ— ν•™μŠ΅ λŒ€μƒμœΌλ‘œμ„œ μ•ˆμ •μ μ΄μ§€ λͺ»ν–ˆκ³ , ν”„λ‘œμ νŠΈμ— 정식 λ„μž…ν•˜κΈ°μ—λŠ” μœ„ν—˜ν•œ νŒλ‹¨μœΌλ‘œ κ°„μ£Όλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

    SvelteKit 의 곡식 ν™ˆνŽ˜μ΄μ§€μ— μ ‘κ·Όν•˜λ©΄ μ•„λž˜μ™€ 같은 μ„Έκ°œμ˜ ν‚€μ›Œλ“œκ°€ λ°©λ¬Έμžμ—κ²Œ κ°€μž₯ λ¨Όμ € λ…ΈμΆœλ©λ‹ˆλ‹€. Frontend 개발 μ΄ˆμ‹¬μžμ˜ μž…μž₯μ—μ„œλŠ” 'Fun' μ΄λΌλŠ” ν‚€μ›Œλ“œκ°€ μœ λ… λˆˆμ— 띄고 ν₯미둭게 λŠκ»΄μ§‘λ‹ˆλ‹€. λ‹€μ–‘ν•œ 개발 μ–Έμ–΄ ν˜Ήμ€ Framework 의 곡식 ν™ˆνŽ˜μ΄μ§€λ₯Ό λ°©λ¬Έν•΄λ³Έ κΈ°μ–΅ 속에, Fun μ΄λΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ΄λ ‡κ²ŒκΉŒμ§€ μžλž‘μŠ€λŸ½κ²Œ μ΅œμƒλ‹¨μ— λ…ΈμΆœμ‹œν‚€λŠ” ν™ˆνŽ˜μ΄μ§€λŠ” λ³Έ 기얡이 μ—†κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. (μ‹€μ œλ‘œ 이후에 SvelteKit 을 톡해 κ°„λ‹¨ν•œ Demo Web λ₯Ό κ΅¬ν˜„ν•΄λ³Έ κ²°κ³Ό, 재미있긴 ν–ˆμŠ΅λ‹ˆλ‹€.)

좜처 : SvelteKit 곡식 ν™ˆνŽ˜μ΄μ§€

 

SvelteKit νŠΉμ§•

    SvelteKit 의 νŠΉμ§• (μž₯점) 은 곡식 ν™ˆνŽ˜μ΄μ§€μ— κ°€μž₯ μƒμ„Ένžˆ κΈ°μž¬λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. Frontend 개발 μž…λ¬Έμžλ‘œμ„œ κΉŠμ€ μˆ˜μ€€μœΌλ‘œ 이해할 수 μžˆλŠ” 뢀뢄은 μ œν•œμ μ΄μ—ˆμ§€λ§Œ, μ—¬λŸ¬ λΈ”λ‘œκ·Έ 및 μ†Œκ°œ μ˜μƒμ„ 톡해 νŒŒμ•…ν•œ μ£Όμš” νŠΉμ§•μ€ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

  • SSR (Server-side Rendering) 을 μ˜ˆμ•½μ–΄λ₯Ό ν™œμš©ν•˜μ—¬ κ΅¬ν˜„ν•  수 μžˆλ‹€.
  • Backend κΈ°λŠ₯ (REST API) μ„ κ΅¬ν˜„ν•  수 μžˆλ‹€. 
  • νŽ˜μ΄μ§€ λΌμš°νŒ…μ„ 폴더λͺ… 기반으둜 νŽΈλ¦¬ν•˜κ²Œ κ΅¬ν˜„ν•  수 μžˆλ‹€. (동적 λΌμš°νŒ…λ„ κ°€λŠ₯ν•˜λ‹€.) 
  • HTML λ ˆμ΄μ•„μ›ƒμ„ μ˜ˆμ•½νŒŒμΌμ„ ν†΅ν•˜μ—¬ κ΅¬ν˜„ν•  수 μžˆλ‹€.
  • Netlify λ₯Ό 톡해 κ°œλ°œν•œ Web 을 μ‰½κ²Œ 배포할 수 μžˆλ‹€.

    μœ„μ˜ 사항듀은 SvelteKit 을 ν™œμš©ν•œ Web 개발 κ³Όμ •μ—μ„œ ꡬ체적으둜 닀루도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. (SSR κ³Ό 같이 Frontend 곡톡 κ°œλ…μ— ν•΄λ‹Ήν•˜λŠ” 사항은 μΆ”ν›„, Frontend - Common λΆ„λ₯˜μ— κ²Œμ‹œκΈ€μ„ μ—…λ‘œλ“œν•  μ˜ˆμ •μž…λ‹ˆλ‹€.) κ°œμΈμ μœΌλ‘œλŠ” νŽΈλ¦¬ν•œ νŽ˜μ΄μ§€ λΌμš°νŒ… 방식 및 (Full-stack Web κ°œλ°œμ„ μœ„ν•œ) 자체 REST API κ΅¬ν˜„ 뢀뢄이 κ°€μž₯ λ§€λ ₯적으둜 λ‹€κ°€μ™”μŠ΅λ‹ˆλ‹€.


ch2 - SvelteKit μ„€μΉ˜ 방법

SvelteKit 을 μ–΄λ–»κ²Œ μ„€μΉ˜ν•˜λ©΄ λ˜λ‚˜μš”?

쀀비사항

    Node.js κ°€ μ„€μΉ˜λœ 상황이 μ „μ œλ©λ‹ˆλ‹€. Node.js λŠ” 곡식 ν™ˆνŽ˜μ΄μ§€λ₯Ό 톡해 λ‹€μš΄λ‘œλ“œ (Node.js λ‹€μš΄λ‘œλ“œ 링크) ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Node.js κ°€ μ •μƒμ μœΌλ‘œ λ‹€μš΄λ‘œλ“œ λ˜μ—ˆλ‹€λ©΄, 터미널에 μ•„λž˜ λ‘κ°œμ˜ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν–ˆμ„ λ•Œ νŠΉμ • 결과값이 λ°˜ν™˜λ©λ‹ˆλ‹€.

node -v
npm -v

    λ˜ν•œ, Web 개발 νš¨μœ¨μ„± ν–₯상을 μœ„ν•΄ μ μ ˆν•œ IDE κ°€ ν•„μš”ν•œλ°, SvelteKit μ—μ„œ κ³΅μ‹μ μœΌλ‘œ μΆ”μ²œν•˜λŠ” VScode λ₯Ό μ‚¬μš©ν•˜κ² μŠ΅λ‹ˆλ‹€. (μ›λž˜λ„ μ‚¬μš©ν•˜κ³  있긴 ν–ˆμŠ΅λ‹ˆλ‹€.) VScode λŠ” Frontend 뢄야에 ν•œμ •λœ 것이 μ•„λ‹ˆλΌ, Backend 및 ML/DL λΆ„μ•Ό λ“± 전뢄야에 걸쳐 κ°€μž₯ 많이 ν™œμš©λ˜λŠ” IDE μž…λ‹ˆλ‹€. 특히, μ΅œκ·Όμ—λŠ” IT μ—…κ³„μ˜ 직μž₯μ—μ„œλŠ” νŠΉλ³„ν•œ μ‚¬μœ κ°€ μ—†λ‹€λ©΄ (Github 와 같이) VScode λ₯Ό ν‘œμ€€ Tool 둜 ν™œμš©ν•˜λŠ” λ“―ν•œ λŠλ‚Œμ„ 받을 수 μžˆμ„ μ •λ„μ˜ μœ„μƒμ„ 보이고 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, VScode λ₯Ό μ‚¬μš©ν•΄λ³΄μ‹  κ²½ν—˜μ΄ μ—†λ‹€λ©΄ 이번 κΈ°νšŒμ— λ‹€μš΄λ‘œλ“œ λ°›μ•„μ„œ (VScode λ‹€μš΄λ‘œλ“œ 링크) μ‚¬μš©ν•΄λ³΄μ‹€ 것을 ꢌμž₯ν•΄λ“œλ¦½λ‹ˆλ‹€. 

 

μ„€μΉ˜ 및 μ‹€ν–‰

    ν„°λ―Έλ„μ—μ„œ μ•„λž˜μ˜ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•˜λ©΄ SvelteKit 을 λ‹€μš΄λ‘œλ“œ 받을 수 μžˆμŠ΅λ‹ˆλ‹€. (기본적인 μ„€μΉ˜κ³Όμ •μ€ 곡식 λ¬Έμ„œμ˜ κ°€μ΄λ“œλΌμΈκ³Ό λ™μΌν•©λ‹ˆλ‹€.) 

npm create svelte@latest gngb-app
cd gngb-app
npm install
npm run dev

첫 λͺ…령어에 λŒ€ν•œ μ‹€ν–‰ κ³Όμ •μ—μ„œ λ‹€μ–‘ν•œ μ˜΅μ…˜μ„ 선택해야 ν•˜λŠ”λ°, ν•΄λ‹Ή κ²Œμ‹œκΈ€μ—μ„œλŠ” μ•„λž˜μ˜ 이미지와 같이 μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 뢀가적인 ν…œν”Œλ¦Ώ 파일이 μ²¨λΆ€λ˜μ§€ μ•ŠλŠ” Skeleton project λ₯Ό μ„ νƒν–ˆκ³ , TypeScript λŠ” JavaScript κ°€ μ΅μˆ™ν•΄μ§„ 이후 곡뢀할 κ³„νšμ΄λ―€λ‘œ μ„ νƒν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

SvelteKit μ„€μΉ˜ 섀정사항

λ§ˆμ§€λ§‰ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λ©΄ ν„°λ―Έλ„μ—μ„œ http://localhost:5173/ 에 μ ‘κ·Όν•˜λΌλŠ” μ„€λͺ…을 확인할 수 있으며, ν•΄λ‹Ή μ£Όμ†Œλ‘œ μ ‘μ†ν•˜λ©΄ 쒌츑 ν•˜λ‹¨μ˜ 이미지와 같이 둜컬 ν™˜κ²½μ—μ„œ Web 이 잘 λ™μž‘ν•˜κ³  μžˆλŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή Web 은 우츑 ν•˜λ‹¨μ˜ 이미지에 μ‘΄μž¬ν•˜λŠ” src/routes/+page.svelte 파일의 μ½”λ“œμ— κΈ°λ°˜ν•©λ‹ˆλ‹€. 

초기 μ‹€ν–‰ν™”λ©΄
폴더 ꡬ쑰

src/routes/+page.svelte 파일의 μ½”λ“œλ₯Ό μ•„λž˜μ™€ 같이 μˆ˜μ •ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

<h1>Welcome to GNGB</h1>
<p>
	μ—΄μ‹¬νžˆ κ³΅λΆ€ν•΄λ΄…μ‹œλ‹€!
</p>

μ½”λ“œ μˆ˜μ • 이후 μ‹€ν–‰ν™”λ©΄

    이과 같이 src/routes 폴더 λ‚΄, +page.svelte 파일의 μ½”λ“œλ₯Ό μˆ˜μ •ν•˜κ³  μ €μž₯ν•˜λ©΄ 즉각 둜컬 ν™˜κ²½μ˜ Web 에 λ°˜μ˜λ˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€. λ‹€λ₯Έ JavaScript 기반의 Web Framework (React.js, Vue.js) 와 λ‹€λ₯΄κ²Œ, 기본적인 HTML λ¬Έλ²•λ§ŒμœΌλ‘œ λ™μž‘ν•˜λŠ” 것이 ν₯λ―Έλ‘­μŠ΅λ‹ˆλ‹€. 'Write Less Code' λΌλŠ” Svelte 의 μ£Όμš” 철학을 짧은 μ‹œκ°„μ— κ°•λ ¬ν•˜κ²Œ λŠλ‚„ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

// React 의 Hellworld μ˜ˆμ‹œ
import React from 'react';

function App() {
   return (
      <div>
         Hello World
      </div>
   );
}


// Svelte 의 Hellworld μ˜ˆμ‹œ
<div>Hello World</div>

λΉ„μ „κ³΅μžκ°€ Svelte λ₯Ό κ³΅λΆ€ν•˜λŠ” κ³Όμ •μ—μ„œ κ²ͺ게 될 μ–΄λ €μ›€κ³Ό μ‹œν–‰μ°©μ˜€λ₯Ό λ¨Όμ € κ²½ν—˜ν•˜κ³ , μ΄μ–΄μ§ˆ κ²Œμ‹œκΈ€μ—μ„œ μ΅œλŒ€ν•œ μ‰½κ²Œ κ³΅μœ ν•΄λ“œλ¦¬κ³ μž ν•©λ‹ˆλ‹€. μž˜λͺ»λœ λ‚΄μš©μ— λŒ€ν•œ μ§€μ μ‚¬ν•­μ΄λ‚˜ λ¬Έμ˜μ‚¬ν•­μ€ μ–Έμ œλ“ μ§€ νŽΈν•˜κ²Œ λŒ“κΈ€λ‘œ λ‚¨κ²¨μ£Όμ‹œκΈΈ λ°”λΌκ² μŠ΅λ‹ˆλ‹€.

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)
    'Frontend/Svelte' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • SvelteKit 으둜 λ§Œλ“  Web 을 무료둜 배포할 수 μžˆλ‚˜μš”? λΉ λ₯΄κ³  νŽΈν•œ Netlify λ₯Ό μ μš©ν•΄λ΄μš”! #5
    • μ œκ°€ λ§Œλ“  Svelte Web 은 μ™œ μ΄λ ‡κ²Œ λͺ»μƒκ²Όλ‚˜μš”? DaisyUI 인곡호흑기λ₯Ό λΆ™μ—¬λ΄μš”! #4
    • SvelteKit 에 μš”μ¦˜ 제일 μΈκΈ°λ§Žλ‹€λŠ” TailwindCSS λ₯Ό μ μš©ν•΄λ³ΌκΉŒμš”? #3
    πŸ”₯GNGB-YoungπŸ”₯
    πŸ”₯GNGB-YoungπŸ”₯
    GNGB νŒ€ (Paul, Redstone, Young) 이 κ΄€λ¦¬ν•˜λŠ” IT 기술 λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€. νŒ€μ› λͺ¨λ‘ CS λΉ„μ „κ³΅μžμ˜€μ§€λ§Œ, ν˜„μž¬λŠ” IT 업계에 μž¬μ§μ€‘μž…λ‹ˆλ‹€. λΉ„μ „κ³΅μžλ“€λ„ μ‰½κ²Œ 이해할 수 μžˆλŠ” 전달λ ₯μžˆλŠ” 컨텐츠λ₯Ό μ œκ³΅ν•˜κ² μŠ΅λ‹ˆλ‹€.

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”