๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€

(70)
์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€, ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ์–ด๋–ค ๊ฑธ ์จ์•ผํ• ๊นŒ? 2025.03.13 - [๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป dev] - ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ vs ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ vs ์ฟ ํ‚ค ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ vs ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ vs ์ฟ ํ‚คhttp ํ”„๋กœํ† ์ฝœ์€ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ์šฉ์ดํ•˜๋„๋ก ์ค‘์š”ํ•œ ํ•ด์ค€๋‹ค. ๋‹ค๋งŒ http ํ”„๋กœํ† ์ฝœ์€ stateless ํ”„๋กœํ† ์ฝœ์ด๋ผ๋Š” ์ ์—์„œ ์„œ๋ฒ„๋‚˜ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด๋‚˜ ์‘๋‹ต์„ ํŠธ๋ž˜ํ‚น ํ•˜์ง€ ์•Špyotato-dev.tistory.com์ด์ „ ๋™์ž‘์ด ์• ๋งคํ–ˆ๋˜ ๋‚˜์˜ useFunnel ๊ณ ์ณ๋ณด๊ธฐ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํผ๋„ ์Šคํƒญ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ–ˆ๋˜ ์ ์ด ์ƒ๊ฐ์ด ๋‚˜์„œ ๋‹ค๋ค„๋ณด๊ณ ์ž ํ•œ๋‹ค. ๊ทธ์ค‘ ์ด์ „์— ์‚ดํŽด๋ดค๋˜ ์„ธ์…˜/๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ์ฟ ํ‚ค์™€ ๊ด€๋ จํ•ด์„œ ์„ ํƒํ•œ ์˜ต์…˜์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ณ ์ž ํ•œ๋‹ค.๐Ÿค” ํƒญ์ด๋‚˜ ํŽ˜์ด์ง€๋ฅผ ๋‹ซ๊ณ  ๋‹ค์‹œ ์ง„์ž…ํ–ˆ์„ ๊ฒฝ์šฐ, ํ•ด๋‹น ์„ ํƒ์‚ฌํ•ญ์ด ์œ ์ง€๋˜์–ด์•ผํ• ๊นŒ? ์‚ญ..
๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ vs ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ vs ์ฟ ํ‚ค http ํ”„๋กœํ† ์ฝœ์€ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ์šฉ์ดํ•˜๋„๋ก ์ค‘์š”ํ•œ ํ•ด์ค€๋‹ค. ๋‹ค๋งŒ http ํ”„๋กœํ† ์ฝœ์€ stateless ํ”„๋กœํ† ์ฝœ์ด๋ผ๋Š” ์ ์—์„œ ์„œ๋ฒ„๋‚˜ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด๋‚˜ ์‘๋‹ต์„ ํŠธ๋ž˜ํ‚น ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์ด๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ/์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ๋ฒ„๋“ค ๊ฐ„์˜ ์š”์ฒญ์„ ํŠธ๋ž˜ํ‚น ํ•  ์ˆ˜ ์žˆ๋‹ค.TLDR;ํ•œ๋ˆˆ์— ๋น„๊ตํ•ด๋ณด๊ธฐlocal storagesession storagecookie์ €์žฅ ์šฉ๋Ÿ‰5MB ~ 10MB๋Œ€๋ถ€๋ถ„ 5MB์ตœ๋Œ€ 4KBpersistence๋ธŒ๋ผ์šฐ์ €/ํƒญ์„ ๋‹ซ์•„๋„ ์œ ์ง€, ์ง์ ‘ ๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์‚ญ์ œ๋ฅผ ํ•ด์ค˜์•ผ ์ œ๊ฑฐ๋œ๋‹ค.๋ธŒ๋ผ์šฐ์ €/ํƒญ์ด ๋‹ซํžˆ๋ฉด ์ œ๊ฑฐ๋จ์ฟ ํ‚ค ์„ค์ •์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค (session-base ๋˜๋Š” persist)scopeorigin, ๋„๋ฉ”์ธ์ด๋‚˜ ํ”„๋กœํ† ์ฝœ์— ์˜ํ•ด ๊ฐ๊ฐ ์ €์žฅ๋จ..
[ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] Type error: Re-exporting a type when 'isolatedModules' is enabled requires using 'export type'. 2025.03.12 - [๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป dev] - ๐Ÿฌ React import ์‹œ Wrapper ํŒจํ„ด ํ™œ์šฉํ•ด ๋ณด๊ธฐ ๊ณผ ๊ฐ™์ด importํ•˜๋Š” ๊ฒฝ์šฐ" data-og-host="pyotato-dev.tistory.com" data-og-source-url="https://pyotato-dev.tistory.com/entry/%F0%9F%8D%AC-React-import-%EC%8B%9C-Wrapper-%ED%8C%A8%ED%84%B4-%ED%99%9C%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0" data-og-url="https://pyotato-dev.tistory.com/entry/%F0%9F%8D%AC-React-import-%EC%8B%9C-Wrapper-%ED%8C%A8%ED%..
๐Ÿฌ React import ์‹œ Wrapper ํŒจํ„ด ํ™œ์šฉํ•ด๋ณด๊ธฐ ์ตœ๊ทผ์— ๋ฆฌ์•กํŠธ์—์„œ import ์‹œ์— wrapper ํŒจํ„ด์„ ํ™œ์šฉํ–ˆ๋‹ค๋Š” ๊ธ€์„ ์ฝ์—ˆ๋‹ค.lodash๋‚˜ Framer Motion๋ฅผ ์ „์ฒด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹จ์œ„๋กœ importํ•˜๋Š” ์ƒํ™ฉ์ด ์ข…์ข… ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, lodash๋ฅผ > ๊ณผ ๊ฐ™์ด importํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๊ฐ™๋‹ค.>import _ from 'lodash' -> imported 71.78KB>import debounce from "lodash/debounce"; -> imported 3.41KBimport merge from 'lodash/merge'; -> imported 16KB๋ฌผ๋ก  ์ „์ฒด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ importํ•˜๊ณ  ์žˆ์ง€๋Š” ์•Š์ง€๋งŒ, ๊ธ€์“ด์ด๊ฐ€ ์–ธ๊ธ‰ํ•œ ๋ฐ”์™€ ๊ฐ™์ด, ์—ฌ๊ธฐ์ €๊ธฐ ํฉ์–ด์ ธ ์žˆ๋Š” ํŒŒ์ผ๋“ค๋งˆ๋‹ค framer-motion๋‚˜ className/bind๋ฅผ importํ•˜๊ณ ..
๐Ÿ‘‹ ๊ตฟ๋ฐ”์ด CRA (Sunsetting Create React App) TLDR;๋ฆฌ์•กํŠธ ์•ฑ์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด CRA๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์…จ๋‚˜์š”? ์ด์ œ๋Š” CRA๊ฐ€ deprecate ๋ฉ๋‹ˆ๋‹ค.ํ•ด๋‹น ์ด์œ ๋Š” ํฌ๊ฒŒ CRA๋Š” ๋ผ์šฐํŒ…, ๋ฐ์ดํ„ฐ fetching, ์ฝ”๋“œ ์Šคํ”Œ๋ฆฟ์„ ์ž์ฒด์ ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š์•„ ์ถ”๊ฐ€์ ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜์กดํ•ด์•ผํ–ˆ๋‹ค๋Š” ์ , ์ตœ๊ทผ ๋งŽ์€ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์ด ํ•ด๋‹น ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ–ˆ๊ณ  ํ•ด๋‹น ๊ธฐ๋Šฅ๋“ค์„ ์œ„ํ•ด CRA๊ด€๋ฆฌ๊ฐ€ ๋ถˆํ•„์š”ํ•ด์กŒ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๋นŒ๋“œ ํˆด๋กœ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ธฐ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ก CRA+๋นŒ๋“œ ํˆด๋„ ์„ ํƒ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์ด์ง€๋งŒ ๋ผ์šฐํŒ…, ๋ฐ์ดํ„ฐ fetching, ์ฝ”๋“œ ์Šคํ”Œ๋ฆฟ ๊ธฐ๋Šฅ์„ โ€œ์ž˜โ€ ํ†ตํ•ฉํ•ด๋†“์€ Next.js, React Router, Expo์™€ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.์œ„์˜ ํ”„๋ ˆ์ž„์œ„ํฌ๋“ค์€ SSR๊ณผ CSR ์˜ต์…˜ ๋ชจ๋‘ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.SSR์ด SEO๋ฟ๋งŒ..
์„ฑ๋Šฅ - intro https://web.dev/learn/performance Learn Performance  |  web.devThis course is designed for those new to web performance, a vital aspect of the user experience. It covers key web performance concepts and techniques for improving performance.web.dev"์„ฑ๋Šฅ์„ ์ฑ™๊ฒจ์•ผ์ง€"๋ผ๊ณ  ์ƒ๊ฐ์€ ํ–ˆ๊ณ , ์ž‘๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋“ค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ์—ฌ๊ธฐ์ €๊ธฐ ์‹ค์ฒœํ–ˆ์ง€๋งŒ, ์ด๋ก ์ ์ธ ๊ฒƒ์„ ๋‚ด๊ฐ€ ์ž˜ ์•Œ๊ณ , ์—ฐ๊ฒฐ ์ง€์–ด ์‹ค์ œ๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€๋ฅผ ์ƒ๊ฐํ•˜๋ฉด 100% ์ž์‹  ์žˆ๊ฒŒ ๊ทธ๋ ‡๋‹ค๊ณ  ํ•˜๊ธฐ ์–ด๋ ค์›Œ ์•„์‰ฌ์› ๋‹ค.์ด๋ฒˆ์—๋Š” web.dev๋ฅผ ํ†ตํ•ด ์•Œ๊ณ  ์žˆ์—ˆ๋˜ ..
[Nextjs] Dynamic metadata tag ์ƒ์„ฑํ•˜๊ธฐ (Part.2) 2025.02.25 - [๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป dev] - [Nextjs] Dynamic metadata tag ์ƒ์„ฑํ•˜๊ธฐ (SEO ์ง€ํ‘œ 54 โžก๏ธ 91) [Nextjs] Dynamic metadata tag ์ƒ์„ฑํ•˜๊ธฐ (SEO ์ง€ํ‘œ 54 โžก๏ธ 91)nextjs๋กœ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด Metadata API ๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ metadata tag๋ฅผ ๋‹ฌ์•„์ฃผ๋Š” ๊ฒŒ ์•„๋‹๊นŒ ์‹ถ๋‹ค.์˜ค๋Š˜์€ ๊ทธ ์ค‘ ํŽ˜์ด์ง€ ํŒŒ๋žŒ์— ๋”ฐ๋ผ ๋‹ค์ด๋‚ด๋ฏนํ•˜๊ฒŒ ๋ฉ”ํƒ€ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€pyotato-dev.tistory.com ์ด์ „์—๋Š” /region ๊ฒฝ๋กœ์˜ ํŽ˜์ด์ง€๋“ค์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ถ™์—ฌ์คฌ๋‹ค.ํ•˜์ง€๋งŒ ๋‹น์‹œ ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ์€ ๊ฑฐ ๊ฐ™์•„์„œ ์ข€ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๋‹ˆ, ์ƒ์œ„์˜ ํŽ˜์ด์ง€์— ๊ณต์œ ํ•  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ์“ธ ..
[Nextjs] Dynamic metadata tag ์ƒ์„ฑํ•˜๊ธฐ (SEO ์ง€ํ‘œ 54 โžก๏ธ 91) nextjs๋กœ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด Metadata API ๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ metadata tag๋ฅผ ๋‹ฌ์•„์ฃผ๋Š” ๊ฒŒ ์•„๋‹๊นŒ ์‹ถ๋‹ค.์˜ค๋Š˜์€ ๊ทธ ์ค‘ ํŽ˜์ด์ง€ ํŒŒ๋žŒ์— ๋”ฐ๋ผ ๋‹ค์ด๋‚ด๋ฏนํ•˜๊ฒŒ ๋ฉ”ํƒ€ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ณ ์ž ํ•œ๋‹ค.Tripie ์•ฑ์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ, ํŠธ๋ฆฌํ”Œ์—์„œ ์Šคํฌ๋ž˜ํ•‘ํ•œ ์—ฌํ–‰์ง€์— ๋Œ€ํ•œ ํŒ, ์ง€์—ญ ์ •๋ณด๋‚˜ ์‹๋‹น ์ •๋ณด, ์—ฌํ–‰ ์ผ์ • ํŒ ๋“ฑ์„ ์—ด๋žŒํ•  ์ˆ˜ ์žˆ๋‹ค.์ฑ—์ง€ํ”ผํ‹ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ๊ธฐํ˜ธ์— ๋”ฐ๋ผ ์—ฌํ–‰์ผ์ •์„ ์ž‘์„ฑํ•ด ์ค€๋‹ค.  ์ด ์ค‘ ๋ฉ”ํƒ€ํƒœ๊ทธ๋กœ ์‚ผ์„ ๋ฐ์ดํ„ฐ๋“ค์ด ๋ชจ๋‘ ์ค€๋น„๋œ ์ฒซ ๋ฒˆ์งธ์ธ ์—ฌํ–‰์ง€ ์ •๋ณด์— ๋Œ€ํ•œ ํŽ˜์ด์ง€๋“ค์— ๋ฉ”ํƒ€ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ ์ž ํ•œ๋‹ค. ๊ณต์‹๋ฌธ์„œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, ๋ฉ”ํƒ€ํƒœ๊ทธ๋ฅผ ๋‹ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋‘๊ฐ€์ง€๋‹ค.Config ๊ธฐ๋ฐ˜ : static metadata object๋‚˜ dynami..