728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 46

ESLint: A control must be associated with a text label.(jsx-a11y/control-has-associated-label)

ํ•ด๋‹น ์—๋Ÿฌ๋Š” ESLint ์„ค์ •์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค. (์ €๋Š” Ariabnb๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.) ์—๋Ÿฌ๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๊ณณ์€ button ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ ๋ฒ„ํŠผํƒœ๊ทธ ์•ˆ์—๋Š” ๋‚ด์šฉ์ด ์—†๊ณ , className์— ์žˆ๋Š” ์ด๋ฏธ์ง€๋กœ ๋ฒ„ํŠผ์„ ๋Œ€์ฒดํ•˜๋„๋ก ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋  ๊ฒฝ์šฐ, ๋ฒ„ํŠผ์— ๋Œ€ํ•œ ์„ค๋ช…? ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ์•ˆ aria-label ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์–ด๋–ค ๋ฒ„ํŠผ์ธ์ง€ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์•„๋ž˜ ๊นƒํ—ˆ๋ธŒ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ eslint์„ค์ •์— ignoreElements๋ฅผ ์ถ”๊ฐ€ํ•˜์‹œ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label..

Cookie] ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

2023.07.15 - [Web] - Cookie ์œ„ ๊ธ€์—์„œ ๋‹ค๋ค˜๋˜ ์ฟ ํ‚ค์˜ ๋ณด์•ˆ์ƒ ์œ„ํ—˜์ด ๋†’์€ ๋‹จ์ ๋“ค์ด ๋งŽ์Œ์—๋„ ๋ถˆ๊ณผํ•˜๊ณ  ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด์„œ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์— ๋ฌด๋ฆฌ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๋„ ๋น ๋ฆ…๋‹ˆ๋‹ค. ์ฟ ํ‚ค์˜ ์ฃผ๋œ ์‚ฌ์šฉ์ฒ˜๋Š” ID ์ €์žฅ, ๋กœ๊ทธ์ธ ์ƒํƒœ ์œ ์ง€ ํŒ์—…์ฐฝ์— ์žˆ๋Š” ๋‹ค์‹œ ๋ณด์ง€ ์•Š๊ธฐ ์ตœ๊ทผ ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. HTTP ํ†ต์‹  Httpํ”„๋กœํ† ์ฝœ ํŠน์ง•์ƒ ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ/์‘๋‹ต ํ›„์— ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜๋งŽ์€ ์š”์ฒญ์„ ๊ตฌ๋ถ„ ์ง“๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฟ ํ‚ค๋Š” ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ํ•ญ์ƒ ์ฟ ํ‚ค๋ฅผ ๋‹ด๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ํŠน์ง• ๋•๋ถ„์— ์„œ๋ฒ„๋Š” ์ˆ˜๋งŽ์€ ์š”์ฒญ์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์•ž์—์„œ ์˜ˆ๋กœ ๋“ค์—ˆ..

Web 2023.07.16

Cookie] ์ •์˜

์ฟ ํ‚ค๋Š” ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์ธก์— ์ €์žฅํ•œ ํ›„, ๋‹ค์‹œ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ธฐ์ˆ  ํ˜น์€ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” Httpํ”„๋กœํ† ์ฝœ ์ƒ Http ํ—ค๋”๋ฅผ ํ†ตํ•ด ์†ก์ˆ˜์‹ ํ•˜๋„๋ก ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ง„๊ณผ ๊ฐ™์ด dev-tool์—์„œ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฟ ํ‚ค๋Š” ๋‹จ์ˆœํžˆ name๊ณผ value๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์ˆœํ•œ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์— request ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„๋Š” response๋ฅผ ๋‚ ๋ ค์ค๋‹ˆ๋‹ค. ์ด response์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ request์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ €์žฅํ•˜๊ณ ์ž ํ•˜๋Š” ์ฟ ํ‚ค๊ฐ€ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ Set-Cookie ์„œ๋ฒ„์—์„œ ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋‚ผ ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•ด ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. Set-Cookie: Name=Value Set-Cookie..

Web 2023.07.15

JavaScript] ๋””๋ฐ”์šด์‹ฑ(Debouncing) & ์“ฐ๋กœํ‹€๋ง(Throttling)

JS์—์„œ ์ตœ์ ํ™”์ž‘์—…? ์— ๊ฐ€๊นŒ์šด ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๋”ฐ๋กœ ์˜์‹ํ•˜๊ฑฐ๋‚˜ ๊ฐœ๋…์„ ์•Œ๊ณ  ๊ฐœ๋ฐœํ•œ ์ ์€ ์—†๋Š”๋ฐ, ์ด๋ฒˆ๊ธฐํšŒ์— ์ €๋„ ์ฐพ์•„๋ณด๋ฉด์„œ ๊ณต๋ถ€ํ•˜๊ณ  ์•ž์œผ๋กœ์˜ ๊ฐœ๋ฐœ์— ์žˆ์–ด ์ข‹์€ ๋ฐ‘๊ฑฐ๋ฆ„์ด ๋  ๋“ฏ์‹ถ์Šต๋‹ˆ๋‹ค. ๋””๋ฐ”์šด์‹ฑ(Debouncing) ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ํŠน์ • ์‹œ๊ฐ„ ์ดํ›„์— ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰์‹œํ‚ค๋ฉด ๋˜๋Š” ์ตœ์ ํ™” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์˜ˆ์‹œ ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋กœ ์„ค๋ช…๋“œ๋ฆฌ๋ฉด, ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค. ํšŒ์›๊ฐ€์ž… ์ •๋ณด ์ž…๋ ฅ ํ›„, submit๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ œ์ถœํ•˜๋Š”๋ฐ ์ด ๋ฒ„ํŠผ์„ ๊ด‘ํดํ•ด์„œ 500ms์— 5๋ฒˆ ํด๋ฆญํ•˜๊ฒŒ ๋˜๋ฉด, post๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ 5๋ฒˆ ์ „๋‹ฌํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋””๋ฐ”์šด์‹ฑ ๊ฐœ๋…์„ ์‚ฌ์šฉํ•ด์„œ ํŠน์ • ์‹œ๊ฐ„์„ 500ms๋กœ ์„ค์ •ํ•˜๊ฒŒ ๋˜๋ฉด, 500ms ๋™์•ˆ ํด๋ฆญํ•œ 5๋ฒˆ์ด ์ „๋ถ€ ์ „๋‹ฌ๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๋งˆ์ง€๋ง‰ 1๋ฒˆ๋งŒ ์ „๋‹ฌ ๋˜๊ฒŒ ํ•จ์œผ๋กœ์จ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ..

Language/JavaScript 2023.07.15

Git] Revert & Reset

Git์„ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด, ์ปค๋ฐ‹ ์ด๋ ฅ์„ ๋˜๋Œ๋ฆฌ๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด Rever์™€ Reset์ด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ์ค‘์š”ํ•˜๋ฏ€๋กœ ์‹ ์ค‘ํžˆ ์‚ฌ์šฉํ•˜์…”์•ผ ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ Reset... Revert ํŠน์ • ์ปค๋ฐ‹์„ ๋˜๋Œ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋ฟ๋”๋Ÿฌ revert ํ–ˆ๋‹ค๋Š” ์ด๋ ฅ๊นŒ์ง€ ๋‚จ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. git revert [commit Id] git log, IDE, github ํŽ˜์ด์ง€ ๋“ฑ commit ID๋ฅผ ํ™•์ธํ•œ ๋’ค ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด ์ฃผ๋ฉด, ํ•ด๋‹น ์ปค๋ฐ‹ ID์—์„œ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ๋“ค์ด ๋‹ค์‹œ ์›์ƒ ๋ณต๊ท€๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฑธ ๋˜๋Œ๋ฆฌ๊ณ , ์–ด๋–ค ๊ฑธ ๋‹ค์‹œ ์ˆ˜์ •ํ–ˆ๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Reset ํŠน์ • ์‹œ์ ์œผ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. Revert์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๊ทธ ์‚ฌ์ด์˜ commit์ด๋ ฅ๋“ค์ด ์ „๋ถ€ ์‚ฌ๋ผ์ง€๊ฒŒ ๋˜๋ฏ€๋กœ ..

Git 2023.07.11

Git] SSH(Secure Shell) Key

ํ˜ผ์ž ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ git์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋”ฑํžˆ SSH Key๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. SSH Key๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค๋ฅธ ์›๊ฒฉ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ๋กœ์ปฌ์—์„œ๋Š” ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๊ณ , ๋‹ค๋ฅธ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ณ ์ž ํ•  ๋•Œ ๋ณด์•ˆ์ ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ํ™•์ธ ๋ฐฉ๋ฒ• ํ˜น์‹œ๋‚˜ ssh๋ฅผ ์ƒ์„ฑํ•ด ๋†จ์„ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ, ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. cat ~/.ssh/id_rsa.pub id_rsa.pub์ด๋ผ๋Š” ๊ณต๊ฐœํ‚ค๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ ๋ฐฉ๋ฒ• ssh-keygen ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ssh key๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ํ‚ค๋Š” ๋ณดํ†ต C:\Users\'์ปดํ“จํ„ฐ์ด๋ฆ„'\. ssh๊ฒฝ๋กœ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๊ณต๊ฐœํ‚ค(id_rsa)์™€ ๊ณต๊ฐœํ‚ค(id_rsa.pub)๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋“ฑ๋ก ๋ฐฉ๋ฒ• https:/..

Git 2023.07.09

Git] Migration

Git์€ ํ•  ๋•Œ๋งˆ๋‹ค ํ•ญ์ƒ ์ƒˆ๋กญ๊ธด ํ•œ๋ฐ, ์ด๋ฒˆ์— ์ฒ˜์Œ์œผ๋กœ Migration์„ ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ GitHub → GitLab์œผ๋กœ Migration ํ•˜๊ฒŒ ๋๋Š”๋ฐ, ์ž‘์—…์ง„ํ–‰ ํ–ˆ๋˜ ์ˆœ์„œ๋ฅผ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—… ์ˆœ์„œ Repositroy ์ฃผ์†Œ๋ฅผ ์•„๋ž˜๋กœ ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. https://github.com/example/oldRepository.git 1. ์ƒˆ๋กœ์šด Repository ๋˜๋Š” Giblab Project๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 2. git bash์ฐฝ์„ ํ‚ค๊ณ , bare ์˜ต์…˜์œผ๋กœ clone์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. $ git clone --bare https://github.com/example/oldRepository.git 3. 2๋ฒˆ์—์„œ bare์˜ต์…˜์œผ๋กœ clone์ƒ์„ฑํ•œ ํด๋”๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. $ cd oldRepository.gi..

Git 2023.07.07

Library] swagger-ui-react

ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘์— BE ๋‹ด๋‹น์ž๊ฐ€ swagger๋ฅผ ์„œ๋ฒ„์— ์˜ฌ๋ ค์ฃผ์ง€ ์•Š๊ณ , yaml ํŒŒ์ผ๋กœ ์ „๋‹ฌ ์ค˜์„œ ๋ถˆํŽธํ•จ์„ ๊ฒช๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. swaggerํ™ˆํŽ˜์ด์ง€ ์—ด์–ด์„œ yamlํŒŒ์ผ์„ importํ•ด๋„ ๋˜์ง€๋งŒ, ๋”ฐ๋กœ ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๋ณด๊ณ ์žํ•˜๋Š” ๋ชฉ์ ์— ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋์Šต๋‹ˆ๋‹ค. https://www.npmjs.com/package/@types/swagger-ui-react ์„ค์น˜ npm i @types/swagger-ui-react ํ™ˆํŽ˜์ด์ง€ ๋‚˜์™€์žˆ๋Š”๋Œ€๋กœ npm ์„ค์น˜ ์‚ฌ์šฉ๋ฒ• import SwaggerUI from 'swagger-ui-react'; import 'swagger-ui-react/swagger-ui.css'; export default function Swagger() { const url = 'ํด๋”..

Front-End/Library 2023.07.07

Error] formํƒœ๊ทธ submit ์‹œ, ํŽ˜์ด์ง€ ์ด๋™ ๋ง‰๊ธฐ

React์—์„œ formํƒœ๊ทธ ์ž‘์„ฑ ํ›„, button type์„ submit์„ ์ฃผ๊ณ  ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋กœ์ง๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๊ณ , formํƒœ๊ทธ ์•ˆ์— inputํƒœ๊ทธ๋“ค์˜ ๊ฐ’๋“ค์€ ์ดˆ๊ธฐํ™”๋˜๊ณ , ํŽ˜์ด์ง€๋Š” ๊ทธ๋Œ€๋กœ ์žˆ๋Š” ํ˜„์ƒ์„ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค. ์›์ธ formํƒœ๊ทธ์—์„œ submit์ด ์ž‘๋™ํ•˜๋ฉด, action์†์„ฑ์— ์ง€์ •๋œ url๋กœ request ํ•˜์—ฌ ํ•ด๋‹น ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ ๋™์ž‘์ž…๋‹ˆ๋‹ค. React ๊ฐœ๋ฐœ์ž(SPA)๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ ๋˜๋Š” ํ˜„์ƒ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ง์ ‘ ์ž‘์„ฑํ•œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋กœ์ง์ด ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์›ํ•  ๊ฒ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์œ„์—์„œ ์„ค๋ช…ํ•œ submit๊ธฐ๋ณธ๋™์ž‘์€ ํ•„์š” ์—†์Œ์œผ๋กœ event.preventDefault()๋ฅผ ์ค˜์„œ request๋ฅผ ๋ง‰์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ submit ๋™์ž‘์„ ๋ง‰์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„ํ•œ ๋Œ€๋กœ ๋™..

Library] SWR : ์‘์šฉ_Pagination & InfiniteScroll(useSWRInfinite)

์ผ๋ฐ˜์ ์ธ pagenation์€ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜๊ณ , useSWRInfinite์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. https://swr.vercel.app/ko/docs/pagination Pagination ๊ธฐ๋ณธ pagination์€ useSWRInfinite๋ฅผ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. function Page ({ index }) { const { data } = useSWR(`/api/data?page=${index}`, fetcher); // ... ๋กœ๋”ฉ ๋ฐ ์—๋Ÿฌ ์ƒํƒœ๋ฅผ ์ฒ˜๋ฆฌ return data.map(item => {item.name}) } function App () { const [pageIndex, setPageIndex] = useState(0); return setPageIndex(pageIndex..

Front-End/Library 2023.07.04
728x90
๋ฐ˜์‘ํ˜•