Courses
Reviews
- Svelte Introductory Course - A to Z
- Svelte Introductory Course - A to Z
- Svelte Introductory Course - A to Z
- Svelte Introductory Course - A to Z
- Svelte Introductory Course - A to Z
Posts
Q&A
์ปดํฌ๋ํธ ์ด๋ฒคํธ
์๊ตฌ.. jsh971229๋ ๋ง์ ์ฃผ์ ๊ฒ ๋ง์ต๋๋ค. dispatch('message', event.detail)๋ก ๋๊ฒจ์ฃผ๋๊ฒ ๋ง์ต๋๋ค. ๊ฐ์ ์์ ๊ฐ ์๋ชป ์์ฑ๋์๋ค์.. ํ๊ฐ๋ฆฌ๊ฒ ํด๋๋ ค์ ์ฃ์กํฉ๋๋ค. ใ ใ ์ง๋ฌธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
- 1
- 1
- 250
Q&A
CDN์ด ๋ญ๊ฐ์?
์๋ ํ์ธ์. jsh971129๋. CDN์ Contents Delivery Network์ ์ฝ์์ ๋๋ค. ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์๋ ์ฌ์ฉ์์๊ฒ ์ปจํ ์ธ ๋ฅผ ๋น ๋ฅด๊ฒ ์ ๊ณตํ ์ ์๋ ๊ธฐ์ ์ ์ด์ผ๊ธฐํฉ๋๋ค. ๋ฆฌ์ํธ์์๋ https://unpkg.com/react@17/umd/react.production.min.js, ๋ทฐ์์๋ https://cdn.jsdelivr.net/npm/vue@2.6.0 ๋ก ๋ฐํ์ ๋์์ ๊ฐ์๋์ ๋น๊ตํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ฝ๋๋ฅผ CDN์ ํตํด ์ ๊ณตํฉ๋๋ค. * ๋ฐํ์์ด๋ ์ฝ๋๊ฐ ๋์ํ๋ ์์ ์ ๋ปํฉ๋๋ค. ์ฌ์ฉ์ ์ ์ฅ์์ ๋ณด๋ฉด, ์ฌ์ฉ์๊ฐ ์น ํ์ด์ง์์ ์๋น์ค๋ฅผ ์ ๊ณต๋ฐ๋ ๋์์ ๋ฐํ์์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ๋ทฐ์์ CDN์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ new Vue({ ... }); ์ ๊ฐ์ด ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ค๋ฒจํธ๋ ๋น๋ ํ์์ ๋ฐ์ํ์ด ๊ฒฐ์ ๋๋ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ๊ฐ์๋์ด ํ์์๋๋ฐ, ๊ฐ์๋์ด ํ์์์ด์ ๋ฐํ์ ๋์์ ๊ฐ์๋์ ๋น๊ตํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ฝ๋๊ฐ ํ์ํ์ง ์์ง ์์ต๋๋ค. ๊ทธ๋์ ์ค๋ฒจํธ๋ ๋ฐํ์์์ ๊ฐ์๋์ ๋น๊ตํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ฝ๋๋ฅผ CDN์ผ๋ก ์ ๊ณตํ์ง ์์ต๋๋ค. * ๋น๋ํ์์ ํ๋ก์ ํธ๊ฐ ๋น๋๋์ด ๋น๋๋ JS ํ์ผ๋ค์ ์์ฑํ๋ ์์ ์ ์ด์ผ๊ธฐํฉ๋๋ค. ์ง๋ฌธ์ ๋ต๋ณ์ด ๋์๊ธธ ๋ฐ๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 1
- 1
- 1.5K
Q&A
๋ฐฑ์๋์ ํ๋ก ํธ์๋ ๋ก๊ทธ์ธ ๊ตฌํ ๋ถ๋ถ๊น์ง์ ์ค๊ฐ๋จ๊ณ ์๋ฌ
์๋ ํ์ธ์ Gichul Roh๋ :) ์ง๋ฌธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. Backend์์ /user ๋ผ์ฐํฐ์ ์ญ์ ํ์ผ๋, Frontend์์ /user API๋ฅผ ํธ์ถํ๊ณ ์์ด์, API๋ฅผ ์ฐพ์ ์ ์๋ค๋ 404 Not Found ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ ์์ต๋๋ค. ์ด ํ์ ๊ฐ์์์ /user API๋ฅผ ํธ์ถํ๋ ๋ถ๋ถ์ ์ญ์ ํ์ง๋ง, ์ง๊ธ ๋จ๊ณ์์ Frontend์์ /user API๋ฅผ ํธ์ถํ๋ ๋ถ๋ถ์ ์ญ์ ํด๋ ์๊ด์์ต๋๋ค.
- 1
- 1
- 419
Q&A
ํน์ ๋ค์ ๊ฐ์๋ ์ธ์ ์ฏค??
์๋ ํ์ธ์ ์๋ :) Svelte ์ค์ ๊ฐ์ - ์ค๋์ฟ ๋ง๋ค๊ธฐ ๊ฐ์์ ์คํํ์์ต๋๋ค~! ๊ธฐ๋ค๋ ค์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 263
Q&A
ํน์ ๋ค์ ๊ฐ์๋ ์ธ์ ์ฏค??
์๋ ํ์ธ์ ์๋ :) ๋ค์ ๊ฐ์๋ฅผ ๊ธฐ๋ค๋ ค์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค. ๋ค์ ๊ฐ์๋ ์ง๊ธ 80~90ํ๋ก ๋ นํ๊ฐ ์๋ฃ๋์์ต๋๋ค. ์ง๊ธ์ ๊ฐ์์์ ์ค๋ช ํ ๊ธฐ๋ ์ ์ดํด๋ฅผ ๋๊ธฐ ์ํ ์ฐธ๊ณ ์์ ๋ นํ๋ฅผ ์ค๋นํ๊ณ ์์ต๋๋ค. ์ฐธ๊ณ ๋ก ๋ง์๋๋ฆฌ๋ฉด, ๋ค์ ๊ฐ์๋ Express(+ MongoDB)์ Svelte๋ฅผ ์ฌ์ฉํ๋ ์ค์ ๊ฐ์์ ๋๋ค. ๋ฆ์ด๋ 11์ ๋ง, 12์ ์ด์๋ ๋ค์ ๊ฐ์๋ฅผ ์คํํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค~~~!
- 1
- 2
- 263
Q&A
๊ฐ์ข ๋ฒ์๋ ์๋์ง๋ง์...
์๋ ํ์ธ์. :) ์ด๋ฐ ์ฐ์ฐ์ด ์์๊น ์ถ์ต๋๋ค! ๋ฐฑ์๋๋ Node.JS, ํ๋ก ํธ์๋๋ Svelte๋ก ๋ค์ ๊ฐ์๋ฅผ ์ดฌ์ํ๊ณ ์์ต๋๋ค.(๊ฐ์๋ ๋ค์๋ฌ์ ์คํ ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.) ์ฌ์ฉ์ ์ธ์ฆ์ JWT๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํด์, ์กฐ๊ธ์ ๋์์ด ๋ ์ ์์ ๋ฒํ ๋ต๋ณ์ ๋๋ฆด ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. JWT๋ฅผ ์ฌ์ฉํด ๋ณธ ๊ฒฐ๊ณผ, JWT๋ ๋จ์ํ ์ธ์ฆ ๋ฐฉ์์ด๋ผ ๋ฐฑ์๋๋ก ๋ฌด์์ ์ฌ์ฉํ๊ฑด, ํ๋ก ํธ๋ฅผ ๋ฌด์์ ์ฌ์ฉํ๊ฑด ์๊ด์์ด ์ด๋๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ค๋น ์ค์ธ ๊ฐ์์์๋ ๋ฐฑ์๋ Node.JS์์ jsonwebtoken์ด๋ผ๋ npm ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ํ ํฐ์ ์์ฑํ๊ณ ํ๋ก ํธ์ ์ ๋ฌํฉ๋๋ค. ํ๋ก ํธ์์๋ ๋ฐฑ์๋์์ ์ ๋ฌ๋ฐ์ ํ ํฐ์ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅํด์ ๋ก๊ทธ์ธ์ ์ ์ง ์์ผ์ค๋๋ค. JWT ํ ํฐ์ด ๋ง๋ฃ๋๋ฉด ๋ก์ปฌ์คํ ๋ฆฌ์ง์์ ์ญ์ ํด์ฃผ๊ณ ์. jwt-decode๋ผ๋ npm ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ํ ํฐ์ ๋์ฝ๋ฉ์ ๋ง๋ฃ์๊ฐ๊ณผ ๊ธฐํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ํ๋ก ํธ์์ API๋ฅผ ์์ฒญํ ๋ HTTP ์์ฒญ ํด๋์ ํ ํฐ์ ๋ด์ API๋ฅผ ๋ฐฑ์๋๋ก ์ ๋ฌํฉ๋๋ค. ๋ฐฑ์๋์์๋ jsonwebtoken ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ verify๋ฅผ ํตํด ์ ํจ์ฑ ์ฒดํฌ๋ฅผ ์งํํ๊ณ , ์ ํจํ์ง ์๋ค๋ฉด ์๋ฌ๋ฅผ, ์ ํจํ๋ค๋ฉด HTTP ์์ฒญ์ ์๋ตํฉ๋๋ค. ๊ฒฐ๋ก ์, 1. ํ ํฐ์ ์์ฑ, ์ ํจ์ฑ ์ฒดํฌ๋ ๋ฐฑ์๋์์ ์ด๋ฃจ์ด์ง๋ค. (jsonwebtoken ์ฌ์ฉ) 2. ํ๋ก ํธ์ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ํ ํฐ์ ์ ์ฅํด์ ๋ก๊ทธ์ธ์ ์ ์ง์์ผ์ค๋ค. 3. ํ ํฐ ๋ง๋ฃ์ ๋ก์ปฌ์คํ ๋ฆฌ์ง์์ ์ญ์ ํ๋ค. (jwt-decode๋ก ๋ง๋ฃ ์๊ฐ ํ์ธ) 4. ํ๋ก ํธ์์ ๋ฐฑ์๋๋ก API๋ฅผ ์์ฒญํ ๋ ํ ํฐ์ HTTP ์์ฒญ ํด๋์ ๋ด์์ ๋ณด๋ธ๋ค. ์ด๋ ๊ฒ ์ ๋ฆฌํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ํน์ ๋ต๋ณ์ ํ์ธํ์๊ณ ๋ ๊ถ๊ธํ ์ฌํญ์ด๋, ์ดํด๊ฐ ์๊ฐ๋ ๋ถ๋ถ์ ์ถ๊ฐ ์ง๋ฌธ ์ฃผ์ธ์. :)
- 2
- 2
- 325
Q&A
undefined ์์ ๊ธฐ
์๋ ํ์ธ์ :) {data || ''} ์ด๋ฐ ๋ฐฉ๋ฒ์ ์ด๋จ๊น์??
- 1
- 3
- 307
Q&A
์๋ช ์ฃผ๊ธฐ ์ค afterUpdate๊ฐ ๋์ํ์ง ์๋ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค
์๋ ํ์ธ์. :) ์ง๋ฌธ ์ฃผ์ ๋ด์ฉ๊ณผ ๋์ผํ ์ด์๊ฐ https://github.com/sveltejs/svelte/issues/3290 ์ ๋ฒ๊ทธ๋ก ๋ฆฌํฌํ ๋์ด ์์์ต๋๋ค. :( ์์ ๋ ๊ฒ์ผ๋ก ์ด์๊ฐ ๋ซํ ์์ง๋ง ์ฌํ๋๋ ๊ฒ์ผ๋ก ๋ณด์ ํด๋น ์ด์๊ฐ ์์ ํ ํด๊ฒฐ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ ๋จ๊ฒจ ๋๊ณ , Svelte์ ๋ต๋ณ์ ๊ธฐ๋ค๋ฆฌ๋ ์ค์ ๋๋ค. ๋ต๋ณ์ด ์ค๋ฉด ๋ค์ ๋ต๊ธ์ ๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค.
- 2
- 2
- 381
Q&A
์ด๋ฒคํธ ์์์ด ์ค์์ passive ์ค๋ช ์ด ์ ์ดํด๊ฐ ๋์ง ์์ต๋๋ค
์ง๋ฌธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. :) ์ดํดํ๊ธฐ ์ด๋ ค์ด๊ฑฐ ์๋ค๋ฉด ์ธ์ ๋ ์ง๋ฌธ ์ฃผ์ธ์~!
- 1
- 3
- 1K
Q&A
์ด๋ฒคํธ ์์์ด ์ค์์ passive ์ค๋ช ์ด ์ ์ดํด๊ฐ ๋์ง ์์ต๋๋ค
๊ฐ์ ๋ค์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. :) ์๋ ์ฝ๋์ ๊ฐ์ด ํฐ์น, ํ ์ด๋ฒคํธ๋ preventDefault๋ฅผ ์ฌ์ฉํ๋ฉด ์คํฌ๋กค์ ๋ง์ ์ ์์ต๋๋ค. function handle (event) { event.preventDefault(); } div { height: 200vh; } ๋ธ๋ผ์ฐ์ ์์๋ ํฐ์น ํน์ ํ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ๋ง๋ค ์คํฌ๋กค์ ํ ์ง ๋ง์ง ๊ฒฐ์ ์ ํด์ผ ํฉ๋๋ค. ์คํฌ๋กค์ด ๋ฐ์ํ๋ฉด ๋ง์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฒ ๋๋๋ฐ, ์ด๋ฒคํธ ๋ง๋ค ์คํฌ๋กค์ ํ ์ง ๋ง์ง ํ๋จํ๊ฒ ๋๋ค๋ฉด ๋ธ๋ผ์ฐ์ ๋ ๋๋ ค์ง ์ ์์ต๋๋ค. ์ด๋ passive ์์ฑ์ ์ฌ์ฉํด์ ๋ธ๋ผ์ฐ์ ์๊ฒ preventDefault๋ฅผ ์ฌ์ฉํด์ ์คํฌ๋กค์ ๋ง์ง ์๊ฒ ๋ค๊ณ ์๋ ค์ค๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ํญ์ ์คํฌ๋กค์ ํ๋ ๊ฒ์ผ๋ก ์ธ์ํ๊ณ , ์คํฌ๋กค ํ ์ง ๋ง์ง ๊ฒฐ์ ํ๋๋ฐ ๋ญ๋น๋๋ ์์์ ์ ์ฝํด์ ์ฑ๋ฅ์ ํฅ์ ์ํฌ ์ ์๊ฒ ๋ฉ๋๋ค. ์ฐธ๊ณ ๊ฐ ๋ ๋งํ ๋งํฌ์ ๋๋ค. http://sculove.github.io/blog/2016/12/29/addEventListener-passive/ https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md https://developer.mozilla.org/ko/docs/Web/API/EventTarget/addEventListener
- 1
- 3
- 1K