๐Ÿšค ์„ฑ์žฅ์ผ์ง€ 7.0

์ฑ… ํ–‰๋ณตํ•œ ์ด๊ธฐ์ฃผ์˜์ž(์›จ์ธ ๋‹ค์ด์–ด)์˜ ๋‚ด์šฉ์— ์ž๊ทน๋ฐ›์•„ ์‹œ์ž‘ํ•˜๋Š” ์†Œ๋ฐ•ํ•œ ์„ฑ์žฅ๊ธฐ๋ก

์‚ด์•„์žˆ๋Š” ๊ฝƒ๊ณผ ์ฃฝ์€ ๊ฝƒ์€ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ณ„ํ•˜๋Š”๊ฐ€?
์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ด์•„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
์ƒ๋ช…์˜ ์œ ์ผํ•œ ์ฆ๊ฑฐ๋Š” ์„ฑ์žฅ์ด๋‹ค!

โš› (7.0)<์™„์ „ ๊ฐœํŽธ> ํŒŒ์ธ๋งŒ ํ•™์Šต๋ฒ•์„ ์•Œ๊ฒŒ ๋œ๋งŒํผ, ์„ฑ์žฅ์ผ์ง€๋Š” ์ •๋ง ๊ทธ ๋‚ ์˜ ํ‚ค์›Œ๋“œ ์ค‘์‹ฌ์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋„๋ก ํ•œ๋‹ค.

โš›๏ธ ํ‚ค์›Œ๋“œ: ์ง๊ด€์ ์ด๊ณ  ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑ

html์˜ tabindex

html์˜ tabindex๋Š” ํ‚ค๋ณด๋“œ๋กœ ํฌ์ปค์Šค๋ฅผ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์š”์†Œ๋ฅผ ์ง€์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค. ์ด ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ‚ค๋ณด๋“œ๋กœ ํฌ์ปค์Šค๋ฅผ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์š”์†Œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ, tabindex์˜ ๊ฐ’์€ ์ˆซ์ž์ด๋ฉฐ, 0์ด๋ฉด ํฌ์ปค์Šค๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , -1์ด๋ฉด ํฌ์ปค์Šค๋ฅผ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค. ๋˜ํ•œ, ์ˆซ์ž๊ฐ€ ํด์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ mdn์—์„œ๋Š” 0๋ณด๋‹ค ํฐ ์ˆซ์ž ์‚ฌ์šฉ์„ ์ง€์–‘ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ๋‹ค. (์œ ์ €์—๊ฒŒ ์žˆ์–ด UX์ ์œผ๋กœ ๋” ํ˜ผ๋ž€์„ ์ค„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.)

React์—์„œ ํŠน์ • element๋ฅผ ref๋กœ ์ฐธ์กฐํ•˜๊ณ  ํ•ด๋‹น element์— ํฌ์ปค์Šค๋ฅผ ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ, element.focus()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๋•Œ, ๋งŒ์•ฝ element๊ฐ€ focus๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด tabindex๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

Context API

React์˜ Context API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด tanstack-query๋งŒํผ์€ ์•„๋‹ˆ์ง€๋งŒ Provider๋ฅผ ํ†ตํ•ด ์บ์‹ฑ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ๋”ฐ๋กœ ๊ธ€์„ ์ž‘์„ฑํ•ด์„œ ์ž์„ธ ์ž‘์„ฑํ•ด๋ณผ ์˜ˆ์ •์ด๋‹ค!

CacheStorage

๋งค๋ฒˆ ๋ธŒ๋ผ์šฐ์ €๋‹จ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ, localStorage ํ˜น์€ sessionStorage๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ์ด๋ฒˆ์— ํŒ€ ๋ฏธ์…˜์œผ๋กœ ์บ์‹ฑ์„ ๋‹ค์‹œ ๊ตฌํ˜„ํ•˜๋ฉด์„œ CacheStorage๋ฅผ ์ฒ˜์Œ ์ ‘ํ–ˆ๋‹ค. ์•ž์˜ 2๊ฐœ์™€ ํฐ ์ฐจ์ด์ ์€ ๋ธŒ๋ผ์šฐ์ €์˜ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ๋ธŒ๋ผ์šฐ์ €์˜ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•Œ์•„์„œ ์บ์‹ฑ์„ ๊ด€๋ฆฌํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์บ์‹ฑ์„ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋˜ํ•œ, ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•Œ์•„์„œ ์บ์‹œ๋ฅผ ์‚ญ์ œํ•ด์ค€๋‹ค. (localStorage๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์‚ญ์ œํ•ด์ค˜์•ผ ํ•œ๋‹ค.) ๋˜, ๋™๊ธฐ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” localStorage์™€ ๋‹ฌ๋ฆฌ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค๋Š” ์ ๋„ ํฐ ์ฐจ์ด์ ์ด๋‹ค.(๋ธ”๋กœํ‚น์ด ์—†๋‹ค๋Š” ์˜๋ฏธ)

๐Ÿ“ ํšŒ๊ณ 

์˜ค๋Š˜๋„ ์—ด์‹ฌํžˆ ๋ฏธ์…˜์„ ๊ตฌํ˜„ํ•˜๊ณ  ํ•ด๊ฒฐํ–ˆ๋‹ค. ๋‚˜๋ฆ„ ์ž˜ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๋ถ€๋ถ„๋“ค์—์„œ๋„ ์ƒˆ๋กœ์šด ๊ฒŒ ๋งŽ์•„์„œ ์ฐธโ€ฆ ๊ฐœ๋ฐœ ๊ณต๋ถ€๋Š” ํ•˜๋ฉด ํ• ์ˆ˜๋ก ์žฌ๋ฏธ์žˆ๋‹ค. ๋ญ”๊ฐ€ ๋‘๊ทผ๊ฑฐ๋ฆฌ๊ฒŒ ํ•˜๋Š” ๊ฒŒ ์žˆ๋‹ค๊ณ  ํ•ด์•ผํ•˜๋‚˜โ€ฆใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ์ด์ œ๋Š” ์กฐ๊ธˆ ๋ฆฌ์•กํŠธ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋Š” ๊ฒŒ ์ต์ˆ™ํ•ด์ ธ๊ฐ€๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋” ์ฆ๊ฒ๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ณ  ๋” ํ–‰๋ณตํ•œ ์‚ถ์„ ์‚ด์ž!

์ฐธ๊ณ