header-img
Info :
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 ํŒŒ์ผ ๋“ฑ....
list_img
์˜์ƒ :: ๋ฆฌ์•กํŠธ ํ’€์Šคํƒ ํ”„๋ ˆ์ž„์›Œํฌ 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..
list_img
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. ์ฒจ๋ถ€ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•  ๋•Œ
list_img
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..
list_img
React :: ํ™˜๊ฒฝ์— ๋”ฐ๋ฅธ .env(ํ™˜๊ฒฝ ๋ณ€์ˆ˜) ์…‹ํŒ…ํ•˜๊ธฐ
2023.11.20
React ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋‹ค๋ณด๋ฉด, ๋ฐฐํฌ ํ™˜๊ฒฝ?์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์…‹ํŒ…ํ•ด์•ผํ•˜๋Š” case๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ๋ณดํ†ต API ์ฃผ์†Œ๋ฅผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ๋งŽ์ด ์…‹ํŒ…ํ•ด๋‘๊ณ ๋Š” ํ•˜๋Š”๋ฐ.. ์šด์˜ API ์ฃผ์†Œ์™€ ๊ฐœ๋ฐœ API ์ฃผ์†Œ๋ฅผ ๋ฐฐํฌ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์…‹ํŒ…ํ•ด๋‘๊ณ  ์‹ถ์€ case๊ฐ€ ๋”ฑ ์ด์— ํ•ด๋‹นํ•œ๋‹ค. React :: ํ™˜๊ฒฝ๋ณ€์ˆ˜(.env) ์…‹ํŒ…ํ•˜๊ธฐ ํ† ํฐ์ด๋‚˜ API ํ‚ค ๊ฐ™์€ ๊ฒƒ์€ ํ•˜๋“œ์ฝ”๋”ฉ์œผ๋กœ ์ง‘์–ด ๋„ฃ์œผ๋ฉด ๋ฐฐํฌ ์‹œ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์— ๋ชจ๋‘ ๋“œ๋Ÿฌ๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€ํ•œ ์ˆจ๊ฒจ์„œ ์ฝ”๋”ฉ์„ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๊ฐ€ "ํ™˜๊ฒฝ๋ณ€์ˆ˜" ์ด๋‹ค. bornatnoon.tistory.com ์šฐ์„  ๊ธฐ์ดˆ ์…‹ํŒ… ๋ฐฉ๋ฒ•์„ ์ฒจ๋ถ€ํ•ด๋ณธ๋‹ค. (.env ํŒŒ์ผ์„ ํ•˜๋‚˜๋งŒ ์“ฐ๋Š” ์ผ€์ด์Šค) ์ผ€์ด์Šค์— ๋”ฐ๋ฅธ .env ์„ค์ • ๋ฐฉ๋ฒ• โ€ป ์ฐธ๊ณ . ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ ์ƒ..
list_img
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..