FRONTEND/React
57
React :: C#์ Region ๊ฐ์ ๊ฑธ.. React ์์ ์ธ ์๋ ์์๊น?
2024.05.07
c# ๊ฐ๋ฐ์ ํด๋ณธ ์ฌ๋๋ค์ ๋ฐฉ๋ํด์ง๋ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์ ๋ฆฌํด์ ๋ณด๊ธฐ ์ํด Region ์ด๋ผ๋ ๊ธฐ๋ฅ์ ์ด๋ค.๋ฆฌ์กํธ์์๋ ์ฝ๋๊ฐ ๊ธธ์ด์ง๋ ๋ฌธ๋จ๋ณ ์ ๊ธฐ ๋ง๊ณ ๋ด๊ฐ ์ง์ ํ Region ๋งํผ๋ง ์ ๊ณ ํด๊ณ ๋ฅผ ํ๊ณ ์ถ์๋ฐ..React ์์๋ ์ด๋ค ์์ผ๋ก ์งํํด์ผ ํ ๊น? ๊ฐ๋ฐ ํ๊ฒฝ(intelliJ, vsCode) ์ ๋ฐ๋ฅธ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ๋ค. ์ฐ์ ..#region ์ด๋?๋ด๊ฐ ์ฝ๋๋ฅผ ์ ๊ณ ํด๊ณ ์ถ์ ๋ถ๋ถ์ ์์ญ์ ์ง์ ํด์ฃผ๋ ๊ฒ!#region ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด #endregion ์ผ๋ก ์ง์๋ฌธ์ ์ข
๋ฃ ํด์ผํ๋ฉฐ, visual studio ์์ #region์์ ๋ฐ๋ก ๋ค์์ผ๋ก ๋์ค๋ #endregion๊น์ง์ ์ฝ๋๋ฅผ ํ๋, ์ถ์ํ๋ฉฐ ์์
์ ์งํํ ์ ์๊ฒ ํด์ค๋ค. 1. intelliJ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ //re..
React :: React 19 Beta ํด์
1
2024.04.30
React 19 Beta – ReactThe library for web and native user interfacesreact.dev ์ผ๋ถ ํด์ ๋ฐ์ท React 19์ ์๋ก์ด ๊ธฐ๋ฅAction๋ฆฌ์กํธ ์ฑ์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ ๋ฐ์ดํฐ ๋ณํ๋ฅผ ์ํํ ๋ค์ ์๋ต์ผ๋ก ์ํ๋ฅผ ์
๋ฐ์ดํธํ๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ์ด๋ฆ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์์์ ์ ์ถํ๋ฉด API ์์ฒญ์ ํ ๋ค์ ์๋ต์ ์ฒ๋ฆฌํฉ๋๋ค. ๊ณผ๊ฑฐ์๋ ๋ณด๋ฅ ์ํ, ์ค๋ฅ, ๋๊ด์ ์
๋ฐ์ดํธ ๋ฐ ์์ฐจ์ ์์ฒญ์ ์๋์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ์ต๋๋ค. ์๋ฅผ ๋ค์ด usestate์์ ๋ณด๋ฅ ๋ฐ ์ค๋ฅ ์ํ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.// Before Actionsfunction UpdateName({}) { const [name, setName] = useState(""); con..
JS :: ๋๋ฐ์ด์ค(Debounce)์ ์ค๋กํ๋ง(Throttling)
2024.01.15
์๋ฅผ ๋ค์ด๋ณด์. ์ด๋ค ๊ฐ์ ์
๋ ฅํ ๋ ํด๋น ๋จ์ด๊ฐ ํฌํจ๋ ๋จ์ด๋ฅผ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ์ํฉ. = ๊ฒ์์์ง ๊ฒ์์ด ์ถ์ฒ ๊ฒฐ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ. ์ด๋ด ๋ ๊ธ์๊ฐ ๋ณํ ๋๋ง๋ค, ์ด๋ค function ์ด๋ API๋ฅผ ํธ์ถํ์ฌ์ผ ํ๋๋ฐ.. ๋๋ฌด ์ฆ์ ํจ์ ํธ์ถ์ด ์ผ์ด๋๋ค. ๋ฌผ๋ก ํ๋ก ํธ์๋์ ๋ฐฑ์๋์์ ์ฑ๋ฅ ์ต์ ํ๊ฐ ๋์ด ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ ์ผ์ด๋ ์๋ ์์ผ๋.. ๊ทธ๋๋ ๋ง์ผ์ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํด์ฃผ๋ ๊ฒ์ด ์ค์ํ ๊ฒ์ด๋ค. ์ด๋ ๋ณดํต ๋๋ฐ์ด์ค Debounce ์ ์ฐ๋กํ๋ง Throttling ์ ๊ฐ๋
์ ์ ์ฉํ๊ฒ ๋๋๋ฐ ์ด ๋๊ฐ์ง์ ๊ณตํต์ ๊ณผ ์ฐจ์ด์ ์ ๋ํด ์ ์ด๋ณด๊ณ ์ ํ๋ค. ๊ณตํต์ ๋๋ฐ์ด์ค์ ์ฐ๋กํ๋ง์ ๊ณตํต์ ์.. 1. ํจ์๊ฐ ๋๋ฌด ๋ง์ด ํธ์ถ๋์ง ์๋๋ก ์ ์ดํ๋ ํ
ํฌ๋์ ์ข
๋ฅ์ด๋ฉฐ, 2. ์ฑ๋ฅ ์ต์ ํ์ ๋ฆฌ์์ค ๊ด๋ฆฌ์ ๋ง์ด ์ฌ์ฉ๋๋ ๊ฐ..
Performance :: switch์ else if ๋น๊ต
1
2023.12.28
๊ฐ๋ฐํ๋ค๋ณด๋ฉด ๋ถ๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ๋๊ฒ ํ์์ ์ด์ด์ง๋ค. ์ด๋ switch๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๋์์ง else if ์ ์ฌ์ฉ์ด ๋์์ง ๊ณ ๋ฏผ์ด ๋ ๋๊ฐ ์๋ค. ๋ณดํต ์ฝ๋ ์ ๋ฆฌ๋ switch๊ฐ ํ ๋์ ๋ณด๊ธฐ ์ฌ์ด ํธ์ด๊ณ , ๊ฐ์ธ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ์๋ if~else ๋ฌธ์ด ์ฒ๋ฆฌํ๊ธฐ๊ฐ ์ฌ์ด ๊ฒ ๊ฐ๋ค. ๊ทธ๋๋ ์ฝ๋ ๊ฐ์์ฑ ๋ฐ ๊ฐ๋ฐ์ ํธ์์ฑ์ ๊ณ ๋ คํ์ง ์์ ์๋ ์์ง๋ง... ์ ์ผ ์ค์ํ ๊ฑด ํ๋ก๊ทธ๋จ ์ฑ๋ฅ์ด๋ผ... ๋ ๊ฐ์ง์ ๋ก์ง์ ์ธ ์ฐจ์ด๋ฅผ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. switch๋ฌธ ๋ณ์๋ฅผ ๋ฏธ๋ฆฌ ์
๋ ฅ ๋ฐ์ ๋๊ณ , ๋ฏธ๋ฆฌ ์ ํด๋์ ๊ฐ๋ค๊ณผ ์ผ์น ์ฌ๋ถ๋ฅผ ํ๋จํ์ฌ control flow๋ฅผ ์ฒ๋ฆฌ if~else๋ฌธ boolean์ผ๋ก ๊ฒฐ๊ณผ ๊ฐ์ด ๋์ค๋ ์กฐ๊ฑด๋ฌธ์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ true, false ๋๊ฐ์ง control flow๋ฅผ ๊ฐ์ง๋ค. ๊ทธ๋ฌ๋ฏ๋ก . . . if~e..
Javascript :: ์ซ์์ ์ฒ๋จ์๋ก ์ฝค๋ง(,) ์ฐ๊ธฐ
2023.12.04
๋ฆฌ์กํธ์์ number ํํ์ ์ซ์๋ฅผ ํ๊ณ ๋จ์ ํํ๋ก ๋ํ๋ด๊ณ ์ถ์๋ค. ex) 1000 ์ผ ๊ฒฝ์ฐ 1,000 ๋ก ๋ํ๋ด๊ณ 555666777 ์ผ ๊ฒฝ์ฐ 555,666,777 ๋ํ๋. case ๋ฅผ ๋๊ฐ์ง๋ก ๊ตฌ๋ณํ์ฌ ๊ฐ๋ฐํด๋ณด์๋ค. input ๊ฐ์ด "1000" ์ผ์๋ ์๊ณ 1000 ์ผ์๋ ์์ผ๋.. CASE1. ์ซ์ ํ์
์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๋ ๊ฒฝ์ฐ Number.prototype.format = function () { if (this == 0) return 0; var reg = /(^[+-]?\d+)(\d{3})/; var n = this + ""; while (reg.test(n)) n = n.replace(reg, "$1" + "," + "$2"); return n; }; // test var num = 12..
React :: ํ๊ฒฝ์ ๋ฐ๋ฅธ .env(ํ๊ฒฝ ๋ณ์) ์
ํ
ํ๊ธฐ
2023.11.20
React ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ๋ค๋ณด๋ฉด, ๋ฐฐํฌ ํ๊ฒฝ?์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ํ๊ฒฝ ๋ณ์๋ฅผ ์
ํ
ํด์ผํ๋ case๊ฐ ๋ฐ์ํ๋ค. ์๋ฅผ ๋ค๋ฉด, ๋ณดํต API ์ฃผ์๋ฅผ ํ๊ฒฝ ๋ณ์๋ก ๋ง์ด ์
ํ
ํด๋๊ณ ๋ ํ๋๋ฐ.. ์ด์ API ์ฃผ์์ ๊ฐ๋ฐ API ์ฃผ์๋ฅผ ๋ฐฐํฌ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์
ํ
ํด๋๊ณ ์ถ์ case๊ฐ ๋ฑ ์ด์ ํด๋นํ๋ค. React :: ํ๊ฒฝ๋ณ์(.env) ์
ํ
ํ๊ธฐ ํ ํฐ์ด๋ API ํค ๊ฐ์ ๊ฒ์ ํ๋์ฝ๋ฉ์ผ๋ก ์ง์ด ๋ฃ์ผ๋ฉด ๋ฐฐํฌ ์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๋ชจ๋ ๋๋ฌ๋๊ธฐ ๋๋ฌธ์ ์ต๋ํ ์จ๊ฒจ์ ์ฝ๋ฉ์ ์งํํด์ผ ํ๋ค. ์ด๋ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ "ํ๊ฒฝ๋ณ์" ์ด๋ค. bornatnoon.tistory.com ์ฐ์ ๊ธฐ์ด ์
ํ
๋ฐฉ๋ฒ์ ์ฒจ๋ถํด๋ณธ๋ค. (.env ํ์ผ์ ํ๋๋ง ์ฐ๋ ์ผ์ด์ค) ์ผ์ด์ค์ ๋ฐ๋ฅธ .env ์ค์ ๋ฐฉ๋ฒ โป ์ฐธ๊ณ . ๋ฆฌ์กํธ ํ๋ก์ ํธ ์..
React :: ํ๊ฒฝ๋ณ์(.env) ์
ํ
ํ๊ธฐ
2
2023.11.20
ํ ํฐ์ด๋ API ํค ๊ฐ์ ๊ฒ์ ํ๋์ฝ๋ฉ์ผ๋ก ์ง์ด ๋ฃ์ผ๋ฉด ๋ฐฐํฌ ์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๋ชจ๋ ๋๋ฌ๋๊ธฐ ๋๋ฌธ์ ์ต๋ํ ์จ๊ฒจ์ ์ฝ๋ฉ์ ์งํํด์ผ ํ๋ค. ์ด๋ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ "ํ๊ฒฝ๋ณ์" ์ด๋ค. ๊ทธ๋ผ์๋.. CRA ๊ณต์ ๋ฌธ์์์๋ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ์ฌํญ์ ์ ๋ฌํ๋ค. WARNING : Do not store any secrets (such as private API keys) in your React App ๋น๊ณต๊ฐ API ํค ๊ฐ์ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ ์ง์ํ๋ ์ด์ ๋ ํ๊ฒฝ ๋ณ์๊ฐ '๋น๋'์ ๋ด์ฅ๋์ด ๋๊ตฌ๋ ์ง ์ด๋ฅผ ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ. 1. .env ํ์ผ ์์ฑ ์ต์๋จ ๋ฃจํธ์ .env ํ์ผ์ ์์ฑํด์ฃผ๋๋ก ํ์. .env ํ์ผ์ ๊ผญ ํ๋ก์ ํธ ํ์ผ ์ต์๋จ์ ์์ด์ผ ํจ. 2. .gitignore ์ค์ .env .e..
React :: ๋์ ๋ผ์ฐํ
(feat. DB ๋ฐ์ดํฐ ์ฌ์ฉ)
2023.11.07
์์ฉ ํ๋ก๊ทธ๋จ์์ ํ๋ "๋ฉ๋ด๊ด๋ฆฌ"์ ๊ฐ๋
์ ์น์๋ ๋์
ํ๋ ๊ฒ์ด ๋ชฉ์ ์ด์์. ์ฌ์ฉ์(๊ด๋ฆฌ์)๋ ํ๋ก๊ทธ๋จ ๋ด์์ ๋ฉ๋ด์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ DB์ insert ํ ์ ์๊ณ , ์ด๋ ๊ฒ ๋ง๋ค์ด์ง Data ๋ก ๋ผ์ฐํ
์๋ ์ ์ฉ๋๊ณ , ๋ฉ๋ด๋ฐ์๋ ์ ์ฉ๋๋.. ๊ทธ๋ฐ ํํ๊ฐ ์ต์ข
์ด์์. React ์๋ช
์ฃผ๊ธฐ ํน์ฑ ์ ์ด๋ ต๋ค๋ ๋ต๋ณ์ ๋ฐ๊ธฐ๋ง ํ๋ ์ฐฐ๋.. ์ ์๋๋ฉด ์ด ๋ผ์ฐํ
์์คํ
์ ์ ๋ฆฌํ๊ฑฐ๋ ์ฝ๊ฒ ๋ง๋ค์ด๋ณด์๋ ๋ง์์ผ๋ก ์์ํ๊ฒ ๋์๋ค. ์ฒซ ์์ด๋์ด ๋ react-router-dom v5 ๋ฌธ๋ฒ์ผ๋ก ๊ตฌํํ ์๋์ ๋ชจ์ต 2023.11.03 - [FRONTEND/React] - React :: (Next.js ์ฌ์ฉ ์์ด) ํด๋น ํด๋์ ํ์ผ์ ๋์ ๋ผ์ฐํ
. ์๋ฌด๋๋ ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ ์จ์ผํ๋ค๋ ์๊ฐ๋ ์์๊ณ , ์ธ์ฃผ์
์ฒด์์ ๋ง๋ค์ด์ค ..
React :: (Next.js ์ฌ์ฉ ์์ด) ํด๋น ํด๋์ ํ์ผ์ ๋์ ๋ผ์ฐํ
.
2023.11.03
๋งค๋ฒ ์์ฑ๋๋ ํ์ผ์ App.js์ ์์์
์ผ๋ก ๋ผ์ฐํ
ํ๊ธฐ์๋ ์ฌ์ด ์ผ์ด ์๋๋ค. ๊ทธ๋์.. ํ์ด์ง๋ก ๋ผ์ฐํ
๋์ด์ผํ๋ ํ์ผ์ ์์์ ./pages ๋ผ๋ ํด๋์ ๋ชฐ์ ๋ฃ๊ณ ํด๋น ํด๋์ ์๋ ํ์ผ์ ์ ๋ถ ํ๊ฒ ๋ค๋ ๋ฌธ๋ฒ์ ์์ฑํด๋ณด์๋ค. ์๋ง ๋์ ๋ผ์ฐํ
์ ๊ฒ์ํ๋ฉด ๊ฐ์ ํ
ํ๋ฆฟ์ props ๋ง ๋ฐ๋๋ (์ํ ์์ธ ์ด๋ฏธ์ง ..) ํํ๊ฐ ๋ค์ ๋์ ์ํ๋ ์ ๋ณด๋ฅผ ์ป๊ธฐ ํ๋ค๊ฒ์ด๋ค. Next.js ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๊ฒ ๋๋ฉด ์ฐ๋ฆฌ๊ฐ ๊ตฌํํ๊ณ ์ ํ๋ ๊ธฐ๋ฅ์ ๋ ์์ฝ๊ฒ ๊ตฌํํ ์ ์์ผ๋ ์์ React (React-create-APP) ๊ธฐ๋ฐ์ผ๋ก App.js ๋ฅผ ๋์ ์ผ๋ก ๋ผ์ฐํ
ํ๋ ค๋ฉด ์๋์ ๊ฐ์ ๋ฌธ๋ฒ ์กฐ์์ด ํ์ํ๋ค. Code. 23.11 ๊ธฐ์ค์ผ๋ก ์์ ์ฝ๋๋ฅผ ํ์ฌ ํ๋ก์ ํธ์ ์ด์ํ๋ ค๊ณ ํ๋ฉด ์๋ฌ ๋ฉ์ธ์ง๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค. E..
React :: ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ. React Server Component.
2
2023.11.01
์ฐธ๊ณ ๊ธ ์๋ฌธ Making Sense of React Server Components This year, the React team unveiled something they've been quietly researching for years: an official way to run React components exclusively on the server. This is a significant paradigm shift, and it's caused a whole lot of confusion in the React communit www.joshwcomeau.com (์ด๋ฒ ๊ธ์ ๊ฒฝ์ฐ ํด๋น ๊ธ์ ๋ง๋ถํ ์ค๋ช
์ด ๋ถ์กฑํ๋ค๊ณ ๋๊ปด์ง๋ ๊ฒ๋ค์ ๋ค์ ์์นญํ์ฌ ์์ฑํ์ฌ.. ์ฐธ๊ณ ๊ธ์ด๋ผ๊ณ ํ๊ธฐ์๋ ๋จธ์ฑํ๋ค.)..
React :: Mixed Content ์๋ฌ ํด๊ฒฐ
2023.11.01
Mixed Content: The page at '' was loaded over HTTPS, but requested an insecure resource ''. This request has been blocked; the content must be served over HTTPS. Mixed Content ๋ฌธ์ ๋ https ์ฌ์ดํธ์์ http ์ฌ์ดํธ๋ก ์์ฒญ์ ๋ณด๋ผ ์์ ๋ฐ์ํ๋ ๋ณด์ ๋ฌธ์ ์ค ํ๋. https ์ฌ์ดํธ์์ ajax๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ๋ก http ์ฌ์ดํธ์ ์์ฒญ์ ๋ณด๋ด์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ธ๋ฐ.. ์ํธํ๋ https ๊ธฐ๋ฐ์ ์ฌ์ดํธ์์ ์ํธํ๋์ง ์์ http ์ฌ์ดํธ๋ก ์์ฒญ์ ๋ณด๋ด๋.. ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ. ํด๊ฒฐ ๋ฐฉ๋ฒ index.html ํ์ผ head์ ์๋ ๋ฌธ๋ฒ์ ์ถ๊ฐํ๋ค.
React :: JSX(JavaScript XML) ?
2023.10.27
JSX JavaScript XML ์ ์ฝ์๋ก ์๋ฐ์คํฌ๋ฆฝํธ์ XML์ด ํฉ์ณ์ง ๋ฌธ๋ฒ. XML ์ด๋? - eXtensible Markup Language - HTML๊ณผ ๊ฐ์ ๋งํฌ์
์ธ์ด์ด์ง๋ง, HTML์ ๋ฐ์ดํฐ๋ฅผ "ํํ"๋ผ๋ ๋งํฌ์
์ธ์ด์ธ ๋ฐ๋ฉด, XML์ ๋ฐ์ดํฐ๋ฅผ "๊ธฐ์ "ํ๋ ์ธ์ด - ์๋ฐํ ๋งํ์๋ฉด XML์ ๋งํฌ์
์ธ์ด๋ผ๊ธฐ ๋ณด๋ค ๋งํฌ์
์ธ์ด๋ฅผ ์ ์ํ๊ธฐ ์ํ ์ธ์ด .JS ์ .JSX์ ๋ฌธ๋ฒ ์ฐจ์ด 1. JSX๋ class๊ฐ ์๋ className์ ์ฌ์ฉ. 2. JSX์์๋ ๋ณ์๋ฅผ ์ฌ์ฉํ ๋, {}๋ฅผ ์ฌ์ฉํจ. 3. JSX : HTML ์์ ์คํ์ผ์ ์ง์ ํ ๋ style={{style}} ์ ํํ 4. JSX : ํ๋์ div ํ๊ทธ๋ก ๊ฐ์ธ์ผํจ. ๋์ ๊ฒฝ์ฐ .js๋ก ํ์ผ์ ์ ์ธํ์์์ง๋ง ๋ฌธ๋ฒ์ jsx์ ๋ฌธ๋ฒ์ ๋ฐ๋ผ๊ฐ..