FRONTEND
73
Javascript :: ๋์ ์ผ๋ก ๋ณ์ ์์ฑ
2024.11.26
// ๊ฐ์ฒด ์์ฑlet dynamicVars = {};// ๋์ ์ผ๋ก ๋ณ์๋ช
์์ฑfor (let i = 0; i ์ด๋ ๊ฒ ๋ฌด์ง์ฑ ๋ณ์๋ ์ ์ธํ ์ ์๊ณ ,${i} ๋์ ๊ธฐ์กด์ ์ ์ธํด๋์๋ ๋ณ์๋ค์ ์ฌ์ฉํ ์๋ ์๋ค. ๋์ ๊ฒฝ์ฐ์๋ ๋ฐฐ์ด ์์ ๊ฐ์ ํด๋นํ๋ ๋ฐ์ดํฐ์ ๊ฒ์ฆํ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํด๋ฌ์ผ ํด์ ๋์ ๋ณ์๋ฅผ ๊ตฌํํ๊ฒ ๋์์. ์๋ฅผ ๋ค๋ฉด ๊ทธ๋ฆฌ๋์์ ๋ฐฐ์ด[] ์์ ์๋ ๊ฐ๊ณผ ์ด๋ฆ์ด ๊ฐ์ ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๋ ์ผ์ด๋ค.๊ทธ๋๋ ์๋์ ๊ฐ์ด ๋ณํํด์ ์ฌ์ฉํ ์๋ ์๋ค. const checkColumns = ['Nation', 'Dept', 'Name', 'Age'] _.forEach(dataList, (row, index) => { let dynamicVars = {}; // ๋์ ์ผ๋ก ๋ณ์๋ช
์์ฑ for (let i ..
React :: public ๊ฒฝ๋ก์ src ๊ฒฝ๋ก์ ์ฐจ์ด์ . ๊ฐ๊ฐ ์ธ์ ์ฌ์ฉํ๋ฉด ์ข์๊น?
1
2024.11.19
Public ๋๋ ํ ๋ฆฌ ์ src ๋๋ ํ ๋ฆฌ์ ์ฐจ์ด์ Public ๋๋ ํ ๋ฆฌ- ์ ์ ํ์ผ์ ๋ฃ๋ ๋๋ ํ ๋ฆฌ (index.html์ ๋น๋กฏํ html ํ์ผ, img ํ์ผ ๋ฑ..) * ํ์ผ์ด ํ์ฒ๋ฆฌ(post-process) ๋๊ฑฐ๋ ๊ฒฝ๋ํ(minify) ๋์ง ์๋๋ค. * ํ์ผ ๊ฒฝ๋ก๋ฅผ ์๋ชป ์
๋ ฅํ๊ฑฐ๋, ํ์ผ์ด ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ์ ์ปดํ์ผ ๋จ๊ณ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๊ณ , ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ๋ 404 ์ค๋ฅ๋ฅผ ์๋ตํ๊ฒ ๋๋ค. * ํ์ผ์ด ์์ ๋ ๋ ๋ง๋ค ์ง์ ํ์ผ๋ช
์ ์์ ํ๊ฑฐ๋ ๋งค๊ฐ๋ณ์ ์ฟผ๋ฆฌ๋ฅผ ์ถ๊ฐํด์ผ ํจ => ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋์ ๋ ํด๊ฒฐ์ด ๊ฐ๋ฅํ๊ธด ํ๋ค.. src ๋๋ ํ ๋ฆฌ- ๊ฐ๋ฐํ๋ฉด์ ์์
ํ๋ ํ์ผ์ ๋๋ถ๋ถ์ ๋ฃ๋ ๋๋ ํ ๋ฆฌ (index.js, ๊ทธ ์ธ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ๊ฐ์ js ํ์ผ, css ํ์ผ ๋ฑ....

์์ :: ๋ฆฌ์กํธ ํ์คํ ํ๋ ์์ํฌ ONE ๊ณต๊ฐ
1
2024.10.21
๊ณต์ ํ์ด์ง One, a React FrameworkOne is a React framework focused on simplicity that lets you target both web and native at once with a single Vite plugin.onestack.dev ๋ด๊ฐ ๋ณธ ์ ํฌ๋ธ ์์https://www.youtube.com/watch?v=ZJH4bKkwo90 VITE ๋น๋ ํด์ด ๊ธฐ๋ฐ์ธ ๋ฆฌ์กํธ ํ๋ ์์ํฌ..(๋ฆฌ์กํธ ํ๋ ์์ํฌ๋ผ๋ ๋จ์ด๊ฐ ์ด์ํ๊ธฐ๋ ํ์ง๋ง..) ์ ๋ง ๋ง ๊ทธ๋๋ก ์ด ํ๋ ์์ํฌ ํ๋๋ฉด ํ์คํ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋ค.์์ฌํ๋ฉด์ ์ ํฌ๋ธ ๋์์์ ๋ณด๋ ์ฟผ๋ฆฌ์ง๋ ๋ถ๋ถ๊น์ง ํ๋ ์์ํฌ ์์ ๊ธฐ์ฌ๋์ด ์์;; ๋ฐฑ์๋ ์ฐ๊ฒฐ ๋ถ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฒ๋ผ ์ ๊ณตํ๊ณ ์์ ๋ฟ๋ง ์๋๋ผ์ฟผ๋ฆฌ ๋ถ..
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..
์ด๋ฐ ์ฌ๋ฏธ๋ ํ๋ก์ ํธ๋ฅผ ํด๋ณด๊ณ ์ถ๋ค!
2024.03.27
https://techblog.woowahan.com/16158/
์ฉ์ด :: ์ธ๋ฐ์ด๋(inbound)์ ์์๋ฐ์ด๋(outbound)
2024.01.26
์ธ๋ฐ์ด๋์ ์์๋ฐ์ด๋๋ ํธ๋ํฝ์ด ๋คํธ์ํฌ ๊ฐ์ ์ด๋ํ๋ ๋ฐฉํฅ์ ์๋ฏธ. ์ธ๋ฐ์ด๋ - ๋คํธ์ํฌ์ ๋ค์ด์ค๋ ์ ๋ณด - ๋ฉ์ธ์ง๊ฐ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ํฅํ๋ ๊ฒ - ex. ์ฒจ๋ถํ์ผ์ ์๋ฒ์ ์ ์ฅํ ๋ (upload) ์์๋ฐ์ด๋ - ๋คํธ์ํฌ์์ ๋๊ฐ๋ ์ ๋ณด - ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๋ฉ์ธ์ง๊ฐ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋ค์ ํฅํ๋ ๊ฒ - ex. ์ฒจ๋ถํ์ผ์ ๋ค์ด๋ก๋ ํ ๋

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..