CSR์ ๋ํ์ ์ธ ๋จ์ ์ค ํ๋์ธ ์ทจ์ฝํ SEO ์ ์์ ๋ชจ๋ ์ฌ๋๋ค์ด ์ฌ์ฉํ ์ ์๋ ์๋น์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์น ์ ๊ทผ์ฑ ๊ฐ์ ์์
์ ์ํํด์ผํ๋ค. ์น ์ ๊ทผ์ฑ๊ณผ SEO์ ๊ฐ์ ํ๊ธฐ ์ด์ ์ ์ ์์ด๋ค.์ ๊ทผ์ฑ์ ํ์ด์ง ๋ง๋ค ์์ดํ์ง๋ง, ๊ฐ์ฅ ๋ฎ์ ๋ฉ์ธํ์ด์ง์ ์ ์๊ฐ 69์ , SEO ์ ์๋ 83์ ์ ๊ธฐ๋กํ์๋ค. SEO : ๊ฒ์์์ง ์ต์ ํ๐ React์ SEO๋ฆฌ์กํธ์ ๊ฐ์ SPA๋ SSR๊ณผ๋ ๋ฌ๋ฆฌ, ์ด๊ธฐ์ HTML์ด ์ต์ํ์ ๋ด์ฉ์ ํฌํจํ๊ณ , ๋๋ถ๋ถ์ ์ฝํ
์ธ ๋ JS๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ธก์์ ๋ ๋๋ง์ด ๋๋ ๋ฐฉ์์ด๋ค. ๋ชจ๋ ํฌ๋กค๋ฌ๊ฐ ์๋ ๋ง์ ํฌ๋กค๋ฌ๋ค์ด JS๋ฅผ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ๋ค.(๊ตฌ๊ธ๋ด์ JS๋ฅผ ์ง์ํด์ SEO๊ฐ ๋์์ง ์๋ค๊ณ ํจ)Next.js๋ฅผ ์ด์ฉํ ํ๋ก์ ํธ์์๋ ๋ณ๋ค๋ฅธ ์์
์ ..
์งํ์ค์ธ ํ๋ก์ ํธ๋ ๋ฐ๋ ค๋๋ฌผ์ ๊ธฐ๋ก๊ณผ ์ฌ์ง ๊ณต์ ๊ฐ ์ฃผ๋ ๊ธฐ๋ฅ์ธ ๋งํผ, ์ด๋ฏธ์ง ์ต์ ํ ์์
์ด ์ค์ํ๋ค๊ณ ์๊ฐํ๋ค.๋ฒ๋ค์ฌ์ด์ฆ๋ฅผ ์ด์ฌํ ์ค์ฌ๋ KB๋จ์์ง๋ง.. ์ด๋ฏธ์ง๋ ๋จ์๋ถํฐ MB์ด๋ฏ๋ก, ์ด๋ฏธ์ง ์ต์ ํ๋ ํ์์ด๋ค. Next.js์ ์ด๋ฏธ์ง ์ต์ ํNext.js๋ next/image๋ฅผ ํตํด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ด๋ฏธ์ง ์ต์ ํ ์์
์ ์ํํด์ค๋ค.But, ๋ฆฌ์กํธ๋ ์ด์ ๊ฐ์ ์ด๋ฏธ์ง ์ต์ ํ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํด์ฃผ์ง ์์ผ๋ฏ๋ก, ์ง์ ์ต์ ํ ์์
์ ์ํํด์ผํ๋ค...!๐ซฃ ์๋ resizingWebp ๊ฐ์ ์ต์ ์ด๋ฏธ์ง ํฌ๋งท ์ง์Lazy Loading๋ก ํ์ด์ง ๋ก๋ฉ ์๋ ํฅ์CDN ์ง์์ด๋ฏธ์ง ์ต์ ํ๋ฅผ ์ํ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ๋ค์ ๊ณต๋ถํด๋ฉด์, ์ ์ฉํด๋ณด์๋ค. 1. browser-image-compression ํ์ฉํ ์ด๋ฏธ์ง ํญ, ํ..
์ฑํ
์
๋ ฅ์ฐฝ์ ์ด๋ชจ์ง ์์ด์ฝ์ ๋๋ฅด๋ฉด, ์ด๋ชจํฐ์ฝ ํค๋ณด๋๊ฐ ๋์ ์ด๋ชจ์ง๋ฅผ ์
๋ ฅํ ์ ์๊ฒ ๊ตฌํํ๊ณ ์ถ์๋ค. emoji-picker-react const [showPicker, setShowPicker] = useState(false); const [message, setMessage] = useState("");const onEmojiClick = (event, emojiObject) => { setMessage((prevMessage) => prevMessage + emojiObject.emoji); setShowPicker(false); }; return ( setMessage(e.target.value)} > ..
keyDown/keyUp ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ ๋, ์์ด๋ ๊ด์ฐฎ์ง๋ง ํ๊ตญ์ด๋ก ์
๋ ฅํ๋ฉด ์ด๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๐ค Why? ์ด ๋ฌธ์ ๋ ํ๊ธ์ ์กฐํฉํ ์
๋ ฅ ๋ฐฉ์ ๋๋ฌธ์ด๋ผ๊ณ ํ๋ค. ํ๊ธ ์
๋ ฅ์ ์ฌ๋ฌ ํค ์
๋ ฅ์ด ์กฐํฉ๋์ด ํ๋์ ๊ธ์๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ ๊ฑฐ์น๊ธฐ ๋๋ฌธ์, key Event๊ฐ ๋ฐ์ํ๋ ์์ ์๋ ์
๋ ฅ์ด ์์ ํ ์์ฑ๋์ง ์์ ์ ์๋ค๊ณ ํ๋ค. e.nativeEvent.isComposing ์ด ์์ฑ์ ์ฌ์ฉ์๊ฐ ํ
์คํธ ์
๋ ฅ ์ค์ ๋ฌธ์ ์กฐํฉ(์: ํ๊ธ ์์๊ณผ ๋ชจ์ ์กฐํฉ)์ด ์งํ ์ค์ธ์ง ์ฌ๋ถ๋ฅผ ๋ํ๋
๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ์
๋ ฅ์ด ์์ฑ๋ ์ํ์ธ์ง๋ฅผ ํ์ธํ์ฌ, ์
๋ ฅ์ ์์ฑ์ด ๋ ๊ฒฝ์ฐ์๋ง ๊ฒ์์ฒ๋ฆฌ๋ฅผ ์คํํ๋๋ก ํ๋ค. const handleKeyDown: Keyboar..
'REACT' ํ๊ทธ์ ๊ธ ๋ชฉ๋ก
๋จ์ถํค
๋ด ๋ธ๋ก๊ทธ
๋ด ๋ธ๋ก๊ทธ - ๊ด๋ฆฌ์ ํ ์ ํ |
Q
Q
|
์ ๊ธ ์ฐ๊ธฐ |
W
W
|
๋ธ๋ก๊ทธ ๊ฒ์๊ธ
๊ธ ์์ (๊ถํ ์๋ ๊ฒฝ์ฐ) |
E
E
|
๋๊ธ ์์ญ์ผ๋ก ์ด๋ |
C
C
|
๋ชจ๋ ์์ญ
์ด ํ์ด์ง์ URL ๋ณต์ฌ |
S
S
|
๋งจ ์๋ก ์ด๋ |
T
T
|
ํฐ์คํ ๋ฆฌ ํ ์ด๋ |
H
H
|
๋จ์ถํค ์๋ด |
Shift + /
โง + /
|
* ๋จ์ถํค๋ ํ๊ธ/์๋ฌธ ๋์๋ฌธ์๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ฉฐ, ํฐ์คํ ๋ฆฌ ๊ธฐ๋ณธ ๋๋ฉ์ธ์์๋ง ๋์ํฉ๋๋ค.