Light Purple Pointer
yarn ๋ฒ„์ „ ๋ณ€๊ฒฝ
ยท
STUDY
https://yarnpkg.com/cli/set/version
์›น์‚ฌ์ดํŠธ ์ตœ์ ํ™” ๊ด€๋ จ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…
ยท
STUDY
https://mong-blog.tistory.com/entry/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8%EB%A5%BC-%EC%B5%9C%EC%A0%81%ED%99%94%EC%8B%9C%ED%82%A4%EB%8A%94-3%EA%B0%80%EC%A7%80-%EA%B8%B0%EB%B2%95-%EC%BD%94%EB%93%9C-%EC%95%95%EC%B6%95-%EA%B2%BD%EB%9F%89%ED%99%94-%EB%82%9C%EB%8F%85%ED%99%94
tanstack-query์—์„œ stale time๊ณผ gc time์˜ ์ฐจ์ด์ 
ยท
STUDY
Tanstack-query์—์„œ staleTime๊ณผ gcTime์€ ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์ค‘์š”ํ•œ ๋‘ ๊ฐ€์ง€ ์„ค์ • ๊ฐ’์ด๋‹ค. 1. staleTime๋ฐ์ดํ„ฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ '์‹ ์„ ํ•œ ์ƒํƒœ'๋กœ ์œ ์ง€๋˜๋Š”์ง€๋ฅผ ์ •ํ•˜๋Š” ์‹œ๊ฐ„ staleTime ๋‚ด์—๋Š” ๊ฐ™์€ ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋„คํŠธ์›Œํฌ ์š”์ฒญ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๊ณ , ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด staleTime์„ 5๋ถ„์œผ๋กœ ์„ค์ •ํ•˜๋ฉด, ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๋‚˜์„œ 5๋ถ„ ๋™์•ˆ ๋ฐ์ดํ„ฐ๊ฐ€ '์‹ ์„ ํ•˜๋‹ค'๊ณ  ํŒ๋‹จํ•ด์„œ ์ฟผ๋ฆฌ ํ˜ธ์ถœ ์‹œ ์ถ”๊ฐ€ ๋„คํŠธ์›Œํฌ ์š”์ฒญ ์—†์ด ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  5๋ถ„์ด ์ง€๋‚œ ํ›„ ํ•ด๋‹น ์ฟผ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ƒˆ๋กœ์šด ์š”์ฒญ์„ ๋ณด๋‚ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค. staleTime ๊ธฐ๋ณธ๊ฐ’์€ 0์ž„ 2. gcTimeํ•ด๋‹น ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์ด ์—†๊ฒŒ ๋œ ์ดํ›„์—๋„ ์บ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ผ๋งˆ..
์‹คํ–‰ ์ปจํ…์ŠคํŠธ
ยท
STUDY
1. ์‹คํ–‰ ์ปจํ…์ŠคํŠธ ?- ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ์„ ์˜๋ฏธํ•œ๋‹ค. - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ, ๊ทธ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ์˜ ํ™˜๊ฒฝ์„ ์ •์˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์ด๋‹ค. - ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋Š” ํฌ๊ฒŒ ์ „์—ญ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์™€ ํ•จ์ˆ˜ ์ปจํ…์ŠคํŠธ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.  - ์ „์—ญ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ฒ˜์Œ ์‹คํ–‰๋  ๋•Œ ์ƒ์„ฑ๋˜๋Š” ์ปจํ…์ŠคํŠธ์ด๋‹ค. ์ด ์ „์—ญ ์ปจํ…์ŠคํŠธ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ ๊นŒ์ง€ ์œ ์ง€๋˜๋ฉฐ, ์ „์—ญ ์ปจํ…์ŠคํŠธ์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋‚ด ์–ด๋””์„œ๋Š” ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.- ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ „์—ญ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋Š” 1๊ฐœ๋งŒ ์กด์žฌํ•œ๋‹ค. - ํ•จ์ˆ˜ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋Š” ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ์ƒ์„ฑ๋˜๋Š”  ์ปจํ…์ŠคํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ฐ ํ•จ์ˆ˜๋Š” ์ž์‹ ๋งŒ์˜ ์ปจํ…์Šค..
reflow์™€ repaint์˜ ์ฐจ์ด์ 
ยท
STUDY
1. Reflow  reflow์™€ repaint๋Š” ์›น ํŽ˜์ด์ง€๊ฐ€ ๋ Œ๋”๋ง ๋˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ค‘์š”ํ•œ ์ž‘์—…๋“ค์ž…๋‹ˆ๋‹ค.reflow๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํŽ˜์ด์ง€์˜ ๋ ˆ์ด์•„์›ƒ์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค. DOM์˜ ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ CSS ์Šคํƒ€์ผ์ด ๋ณ€๊ฒฝ๋˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ฐ ์š”์†Œ๊ฐ€ ํ™”๋ฉด์— ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜๋ ์ง€ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ๋ชจ๋“  ์ž์‹ ์š”์†Œ์™€ ๊ด€๋ จ๋œ ๋ถ€๋ชจ ์š”์†Œ๊นŒ์ง€ ์˜ํ–ฅ์„ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, CSS์—์„œ ์š”์†Œ์˜ width๋‚˜ height ์†์„ฑ์„ ๋ณ€๊ฒฝํ•˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ํ•ด๋‹น ์š”์†Œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฐ๊ด€๋œ ๋ชจ๋“  ์š”์†Œ์˜ ๋ฐฐ์น˜๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 2. Repaintrepaint๋Š” ์š”์†Œ์˜ ๋ชจ์–‘์ด๋‚˜ ์Šคํƒ€์ผ์ด ๋ณ€๊ฒฝ๋  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์š”์†Œ์˜ ๋ ˆ์ด์•„์›ƒ์€ ๊ทธ๋Œ€๋กœ์ด๊ณ , ์ƒ‰์ƒ์ด๋‚˜ ๋ฐฐ๊ฒฝ ๋“ฑ์˜ ์Šคํƒ€์ผ๋งŒ ๋ณ€๊ฒฝ..
REST API(RESTful API)-ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ข…๋ฅ˜
ยท
STUDY
API ?- ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ๊ทธ๋žจ(์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ)์ด ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ๋”ฐ๋ผ์•ผ ํ•˜๋Š” ๊ทœ์น™์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ(ํ˜น์€ ์„œ๋น„์Šค)์ด ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ๊ทธ ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•œ ๊ทœ์น™. REST API(RESTful API)์›น ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜API์˜ ์—”๋“œํฌ์ธํŠธ ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹HTTP ํ”„๋กœํ† ์ฝœ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ method๋“ค(GET, POST, PUT, DELETE)์„ ์‚ฌ์šฉํ•ด์„œ ๋‘ ๋จธ์‹ ์ด ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฐฉ์‹์ด๋‹ค.REST ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ•˜๋Š” ์›น ์„œ๋น„์Šค๋ฅผ RESTfulํ•œ ์›น ์„œ๋น„์Šค๋ผ๊ณ  ํ•œ๋‹ค.(๊ทธ๋ž˜์„œ ์ œ์•ฝ๋“ค์„ ๋ชจ๋‘ ๋งŒ์กฑํ•ด์„œ ๋งŒ๋“ค๋ฉด RESTfulํ•˜๋‹ค ๊ณ  ํ•œ๋‹ค)API์—์„œ ์ „์†กํ•˜๋Š” ์ž์›(resource)์„ URI๋กœ ํ‘œํ˜„ํ•˜๊ณ  ํ•ด๋‹น ์ž์›์— ํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ์˜๋„๋ฅผ HTTP๋ฉ”์†Œ..
ํด๋กœ์ €(Closure)๋ž€?
ยท
STUDY
ํด๋กœ์ €๋Š” ํ•จ์ˆ˜๊ฐ€ ์„ ์–ธ๋  ๋•Œ์˜ ์Šค์ฝ”ํ”„๋ฅผ ๊ธฐ์–ตํ•˜์—ฌ, ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋œ ์ดํ›„์—๋„ ๊ทธ ์Šค์ฝ”ํ”„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.๋น„์œ ํ•˜์ž๋ฉด, ํ•จ์ˆ˜๊ฐ€ ์ž์‹ ์ด ์ƒ์„ฑ๋œ ํ™˜๊ฒฝ์„ '๊ธฐ์–ต'ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋กœ์ €๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•จ์ˆ˜๊ฐ€ ์ผ๊ธ‰ ๊ฐ์ฒด๋ผ๋Š” ํŠน์„ฑ๊ณผ ๋ ‰์‹œ์ปฌ ์Šค์ฝ”ํ”„์˜ ์กฐํ•ฉ์œผ๋กœ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ์Šค์ฝ”ํ”„๋ž€?Scope๋ฅผ ์šฐ๋ฆฌ๋ง๋กœ ๋ฒˆ์—ญํ•˜๋ฉด ‘๋ฒ”์œ„’๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.์ฆ‰, ์Šค์ฝ”ํ”„(Scope)๋ž€ ‘๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„’ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„  ์Šค์ฝ”ํ”„๋Š” 2๊ฐ€์ง€ ํƒ€์ž…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ global(์ „์—ญ)๊ณผ local(์ง€์—ญ)  ํด๋กœ์ €์˜ ํ•ต์‹ฌ ์š”์†Œ 1. ์ค‘์ฒฉ ํ•จ์ˆ˜(Nested Function): ํ•จ์ˆ˜ ์•ˆ์— ์ •์˜๋œ ํ•จ์ˆ˜. 2. ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ ๋ณ€์ˆ˜ ์ ‘๊ทผ: ๋‚ด๋ถ€ ํ•จ์ˆ˜๊ฐ€ ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ ๋ณ€์ˆ˜์— ์ ‘๊ทผ ๊ฐ€๋Šฅ. 3. ๋ณ€์ˆ˜ ์ƒํƒœ ์œ ์ง€: ์™ธ๋ถ€ ํ•จ..
[๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ] react-spring ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ตฌํ˜„
ยท
STUDY
const styles = useSpring({ from: { transform: 'translateX(0px)' }, to: { transform: 'translateX(100px)' }, reset: true,});https://www.react-spring.dev/ react-springWhy Springs? We think of animation in terms of time and curves, but that causes most of the struggle we face when trying to make elements on the screen move naturally, because nothing in the real world moves like that. Springs don’..
[๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ] react hook form ์œ ํšจ์„ฑ ๊ฒ€์‚ฌํ•˜๋Š” ํผ ๋งŒ๋“ค๊ธฐ
ยท
STUDY
https://www.npmjs.com/package/react-hook-form react-hook-formPerformant, flexible and extensible forms library for React Hooks. Latest version: 7.53.0, last published: 19 days ago. Start using react-hook-form in your project by running `npm i react-hook-form`. There are 5111 other projects in the npm registry usingwww.npmjs.com  https://ko.legacy.reactjs.org/docs/forms.html#controlled-components..
<E2E ํ…Œ์ŠคํŠธ> playwright E2E ํ…Œ์ŠคํŠธ ๋ฐ ๊นƒํ—ˆ๋ธŒ CI ์„ค์ •ํ•˜๊ธฐ
ยท
STUDY
E2E ํ…Œ์ŠคํŠธ๋ž€ ?  E2E ํ…Œ์ŠคํŠธ๋ž€ ? E2E ํ…Œ์ŠคํŠธ ๊ณผ์ •์—์„œ๋Š” ์‹ค์ œ ์‚ฌ์šฉ์ž์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํ…Œ์ŠคํŠธํ•จ์œผ๋กœ์จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋™์ž‘์„ ํ…Œ์ŠคํŠธํ•˜๊ฒŒ๋˜๊ณ ,๋˜ํ•œ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ OS์™€ ๋ธŒ๋ผ์šฐ์ €์—”์ง„ ํ™˜๊ฒฝ์ด ๋‹ฌ๋ผ์„œ ๋ฐœ์ƒํ•˜๋Š” ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ๋ฅผ E2E ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๋ฏธ๋ฆฌ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•จ์œผ๋กœ์จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.E2E ํ…Œ์ŠคํŠธ๋Š” End To End์˜ ์•ฝ์ž๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ๋ฆ„์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.React ์—์„œ์˜ ํ…Œ์ŠคํŒ…๋„๊ตฌ  ? React ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ŠคํŒ… ๋„๊ตฌ๋Š” cypress๋‹ค. ํ•˜์ง€๋งŒ ์š”์ฆ˜์— playwright ๊ฐ€ ๋œจ๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ์ฐพ์•„๋ณด๋‹ˆ cypress์—์„œ playwright ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฐœ๋ฐœ์ž๋“ค๋„ ๋Š˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.  Cypress..
ใ„ด