header-img
Info :
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..
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..
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..
list_img
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..
list_img
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์— ์•„๋ž˜ ๋ฌธ๋ฒ•์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
list_img
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์˜ ๋ฌธ๋ฒ•์„ ๋”ฐ๋ผ๊ฐ€..