alpaka206
๐Ÿ’ป Profile
alpaka206 profile image
alpaka206
Frontend Engineer
์ธ์ƒ์ ์ธ ํ™˜๊ฒฝ์€ ์ฝ”๋“œ๋กœ๋„ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ๋„ ์กฐ๊ธˆ ๋” ์ฝ๊ธฐ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ณ ๋ฏผํ•˜๊ณ , ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
๐ŸŒŸ Others
๐Ÿ“ช Contact
github
instagram
email
linkedin
๐Ÿ’ป Profile
alpaka206 profile image
alpaka206
Frontend Engineer
์ธ์ƒ์ ์ธ ํ™˜๊ฒฝ์€ ์ฝ”๋“œ๋กœ๋„ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ๋„ ์กฐ๊ธˆ ๋” ์ฝ๊ธฐ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ณ ๋ฏผํ•˜๊ณ , ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
๐Ÿ”Ž Search
๐Ÿท๏ธ Tags
๐Ÿ“— Docs

YouTube Data API v3 ํ™œ์šฉ๋ฒ•

2026๋…„ 4์›” 27์ผ

YouTube์— ์˜์ƒ์„ ์ž๋™ ์—…๋กœ๋“œํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ์–ด์„œ YouTube Data API v3์˜ ์˜์ƒ ์—…๋กœ๋“œ, SRT ์ž๋ง‰ ์—…๋กœ๋“œ, ๋‹ค๊ตญ์–ด ์ œ๋ชฉ/์„ค๋ช… ๋“ฑ๋ก ํ๋ฆ„์„ ๊ณต๋ถ€ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

BlogGithubStudyAI
๐Ÿ“— Docs

code-review-graph: AI ์ฝ”๋“œ ๋ฆฌ๋ทฐ์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•

2026๋…„ 4์›” 20์ผ

Tree-sitter์™€ MCP๋กœ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๊ทธ๋ž˜ํ”„ํ™”ํ•ด Claude Code์™€ Codex์˜ ๋ฆฌ๋ทฐ ์ปจํ…์ŠคํŠธ๋ฅผ ์ค„์ด๋Š” code-review-graph์˜ ์ž‘๋™ ์›๋ฆฌ์™€ ์ ์šฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

BlogGithubStudyAI
๐Ÿ“— Docs

Harness: Claude Code ์—์ด์ „ํŠธ ํŒ€์„ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•

2026๋…„ 4์›” 13์ผ

์ธํ„ด์„ ํ•˜๋ฉด์„œ Claude Code์šฉ ๋ฉ”ํƒ€ ์Šคํ‚ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ Harness๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ, ๋ณต์žกํ•œ ์ž‘์—…์„ ์—์ด์ „ํŠธ ํŒ€๊ณผ ์Šคํ‚ฌ๋กœ ๋ถ„ํ•ดํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์„ค์น˜/์‚ฌ์šฉ๋ฒ•, ๋„์ž… ์‹œ ์ฃผ์˜์ ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

BlogGithubStudy
๐Ÿ’ป Frontend

AI ๋”๋น™ ์„œ๋น„์Šค

2026๋…„ 3์›” 12์ผ

Study
๐Ÿ’ป Frontend

Notion API ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œ morethan-log ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

2026๋…„ 2์›” 2์ผ

Blog
๐Ÿ’ป Frontend

React์—์„œ index๋ฅผ key๋กœ ์“ฐ๋ฉด ์•ˆ ๋˜๋Š” ์ด์œ 

2026๋…„ 1์›” 26์ผ

React๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ key๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด์ „ ์š”์†Œ์™€ ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ๋งค์นญํ•œ๋‹ค. index๋Š” ํ•ญ๋ชฉ์˜ ์œ„์น˜ ์ •๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๊ฐ„ ์‚ฝ์ž…์ด๋‚˜ ์‚ญ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ฐ’์ด ๋ฐ”๋€Œ๊ณ , ์ด๋กœ ์ธํ•ด React๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ๋กœ ์ธ์‹ํ•ด state๋‚˜ DOM์„ ์ž˜๋ชป ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ key๋กœ๋Š” index ๋Œ€์‹  ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ณ ์œ ํ•œ id๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜๋‹ค.

Study
๐Ÿ’ป Frontend

Zustand useShallow ์ •๋ฆฌ

2026๋…„ 1์›” 19์ผ

๊ฐ์ฒด/๋ฐฐ์—ด selector ๋ฆฌ๋ Œ๋”๋ง ์žก๋Š” ๊ฐ€์žฅ ํ˜„์‹ค์ ์ธ ๋ฐฉ๋ฒ•

Studyharucut
๐Ÿ’ป Frontend

์œ ํŠœ๋ธŒ IFrame API๋กœ ์Œ์•… ํ”Œ๋ ˆ์ด์–ด ๋งŒ๋“ค๊ธฐ

2026๋…„ 1์›” 12์ผ

Studyharucut
๐Ÿ’ป Frontend

Tailwind CSS ์ •๋ฆฌ

2025๋…„ 12์›” 22์ผ

Study
๐Ÿ’ป Frontend

๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ ์ •๋ฆฌ

2025๋…„ 12์›” 15์ผ

Study
โœ๏ธ Coding Test

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์ค€๋น„ - ํƒ๋ฐฐ ์ƒ์ž ๊บผ๋‚ด๊ธฐ

2025๋…„ 9์›” 1์ผ

Coding Test
โœ๏ธ Study

Vite + React ๋นŒ๋“œ ์‚ฐ์ถœ๋ฌผ์„ ๋‹จ์ผ HTML๋กœ ์ „๋‹ฌํ•˜๊ธฐ

2025๋…„ 8์›” 24์ผ

Vite + React ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฅผ vite-plugin-singlefile๋กœ ๋‹จ์ผ HTML์— ์ธ๋ผ์ธํ•˜์—ฌ file://, ๋‚ด๋ถ€๋ง, ๋ฉ”์ผ ์ฒจ๋ถ€ ํ™˜๊ฒฝ์—์„œ๋„ ๋ฐ”๋กœ ์—ด ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํŽ‘ํƒ€์ด๊ทธ๋ ˆ์ดํ„ฐ์ฐจ์ด๋‚˜React
โœ๏ธ Study

React์—์„œ Browser Notification ๊ตฌํ˜„ํ•˜๊ธฐ

2025๋…„ 8์›” 17์ผ

๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์— ๋ธŒ๋ผ์šฐ์ € ์•Œ๋ฆผ์„ ๋ถ™์ด๋Š” ๊ธฐ๋ณธ ํ›…๋ถ€ํ„ฐ, ์ฑ„ํŒ…์ฒ˜๋Ÿผ ๋นˆ๋ฒˆํ•œ ์ด๋ฒคํŠธ์— ์ฟจ๋‹ค์šด ํŒจํ„ด๊นŒ์ง€ ๋‹จ๊ณ„์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•

ํŽ‘ํƒ€์ด๊ทธ๋ ˆ์ดํ„ฐ์ฐจ์ด๋‚˜React
โœ๏ธ Study

๋‚ด๋ถ€๋ง ์„œ๋ฒ„์—์„œ Docker๋กœ Node.js ๋ฐฐํฌํ•˜๊ธฐ โ€“ npm_cache.tar.gz ํ™œ์šฉ๋ฒ•

2025๋…„ 8์›” 10์ผ

๋‚ด๋ถ€๋ง์ด๋‚˜ ์•„์›ƒ๋ฐ”์šด๋“œ ์ฐจ๋‹จ ํ™˜๊ฒฝ์—์„œ npm install ์—†์ด๋„ Node.js ํ”„๋กœ์ ํŠธ๋ฅผ Docker๋กœ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. npm_cache.tar.gz๋กœ NPM ์บ์‹œ๋ฅผ ๋ฏธ๋ฆฌ ์•„์นด์ด๋ธŒํ•ด ์™ธ๋ถ€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ ‘๊ทผ ์—†์ด ์˜์กด์„ฑ์„ ์„ค์น˜ํ•˜๊ณ , npm ci์™€ npm install์˜ ์ฐจ์ด๊นŒ์ง€ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํŽ‘ํƒ€์ด๊ทธ๋ ˆ์ดํ„ฐ์ฐจ์ด๋‚˜
โœ๏ธ Study

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์™€ ๋ฌธ์„œํ™”: ์™œ ํ•ด์•ผ ํ• ๊นŒ?

2025๋…„ 8์›” 3์ผ

ํ”„๋ก ํŠธ์—”๋“œ ๋ฌธ์„œํ™”์˜ ํ•„์š”์„ฑ๋ถ€ํ„ฐ ์„ค๊ณ„/ADR, APIยท์ปดํฌ๋„ŒํŠธ ๋ฌธ์„œ, ์‹œ๊ฐ ํšŒ๊ท€, a11y, CVE ๋ณด์•ˆ ํŠธ๋ž˜ํ‚น

ํŽ‘ํƒ€์ด๊ทธ๋ ˆ์ดํ„ฐ์ฐจ์ด๋‚˜
โœ๏ธ Study

n8n์„ ํ™œ์šฉํ•œ ๋ฐ˜๋ณต ์ž‘์—… ์ž๋™ํ™”์™€ ํ…Œ์ŠคํŠธ ํšจ์œจํ™”

2025๋…„ 7์›” 13์ผ

n8n์€ ์‹œ๊ฐ์ ์ธ ์›Œํฌํ”Œ๋กœ์šฐ ์„ค๊ณ„์™€ ๊ฐ•๋ ฅํ•œ ์ž๋™ํ™” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ํˆด์ž…๋‹ˆ๋‹ค. ๋ณธ ๊ธ€์—์„œ๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์˜ ์‹œ์„ ์—์„œ, ๋ฐ˜๋ณต ํ…Œ์ŠคํŠธ ์ž๋™ํ™”์™€ QA ์—…๋ฌด ํšจ์œจํ™”๋ฅผ ์œ„ํ•ด n8n์„ ์‹ค๋ฌด์— ์ ์šฉํ•œ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํŽ‘ํƒ€์ด๊ทธ๋ ˆ์ดํ„ฐ์ฐจ์ด๋‚˜
๐Ÿ’ป Frontend

Zustand์˜ ์ฒ ํ•™๊ณผ ๊ตฌ์กฐ - Redux์™€์˜ ์ฐจ์ด

2025๋…„ 7์›” 6์ผ

Redux๋Š” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ƒํƒœ ๊ด€๋ฆฌ ๋„๊ตฌ์ง€๋งŒ, ๋ณต์žกํ•œ ์„ค์ •๊ณผ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ๋กœ ์ธํ•ด ์‚ฌ์šฉ์ด ๋ถ€๋‹ด์Šค๋Ÿฌ์šด ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. Zustand๋Š” Redux์˜ ํ•ต์‹ฌ ์ฒ ํ•™์ธ Flux ํŒจํ„ด์€ ์œ ์ง€ํ•˜๋ฉด์„œ, ํ›จ์”ฌ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์œ ์—ฐํ•œ ๋ฐฉ์‹์œผ๋กœ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Zustand์˜ ์„ค๊ณ„ ์ฒ ํ•™, ์ค‘์•™ ์ง‘์ค‘ํ˜• ๊ตฌ์กฐ, Slice Pattern, ๊ทธ๋ฆฌ๊ณ  Redux์™€์˜ ๊ตฌ์กฐ์  ์ฐจ์ด์ ์„ ์‹ค์ œ ์ฝ”๋“œ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ReactํŽ‘ํƒ€์ด๊ทธ๋ ˆ์ดํ„ฐ์ฐจ์ด๋‚˜
๐Ÿ’ป Frontend

์™œ Recoil์„ ๋– ๋‚˜ Zustanโ€d๋ฅผ ์„ ํƒํ–ˆ๋Š”๊ฐ€?

2025๋…„ 6์›” 29์ผ

Recoil์€ React ์นœํ™”์ ์ธ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ง€๋งŒ, ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๊ตฌ์กฐํ™”์˜ ์–ด๋ ค์›€๊ณผ React ์™ธ๋ถ€ ์ƒํƒœ ์ ‘๊ทผ์˜ ์ œ์•ฝ์ด ๋ถ„๋ช…ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Recoil์„ ์‚ฌ์šฉํ•˜๋˜ ๊ฐœ๋ฐœ์ž๊ฐ€ Zustand๋กœ ์˜ฎ๊ฒจ๊ฐ„ ๋ฐฐ๊ฒฝ๊ณผ, Zustand๋ฅผ ์„ ํƒํ•œ ๊ฒฐ์ •์  ์ด์œ ๋“ค์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ReactํŽ‘ํƒ€์ด๊ทธ๋ ˆ์ดํ„ฐ์ฐจ์ด๋‚˜
๐Ÿ’ป Frontend

์ธ์•ฑ ๋ธŒ๋ผ์šฐ์ € ๊ฐ์ง€ ๋ฐ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

2025๋…„ 6์›” 22์ผ

์นด์นด์˜คํ†ก, ๋ผ์ธ, ์ธ์Šคํƒ€๊ทธ๋žจ ๋“ฑ์˜ ์ธ์•ฑ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์›น์‚ฌ์ดํŠธ ๊ธฐ๋Šฅ์ด ์ œํ•œ๋˜๊ฑฐ๋‚˜ ๋น„์ •์ƒ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ์•ฑ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ฐ์ง€ํ•˜๊ณ , ์‚ฌ์šฉ์ž๋ฅผ ํฌ๋กฌ ๋˜๋Š” ์‚ฌํŒŒ๋ฆฌ ๋“ฑ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๋กœ ์œ ๋„ํ•˜๋Š” ์ฝ”๋“œ ๊ตฌํ˜„ ๋ฐฉ์‹์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ReactCOMATCHING
๐Ÿ’ป Frontend

react-chartjs-2 ๋ ˆ์ด๋” ์ฐจํŠธ ๊ตฌํ˜„

2025๋…„ 6์›” 15์ผ

๋ถ€์ฒœFC FRIEND COMMUNITY ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ์ž ์„ฑํ–ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด react-chartjs-2๋ฅผ ํ™œ์šฉํ•ด ๋ ˆ์ด๋” ์ฐจํŠธ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒฝํ—˜์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. Chart.js๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•, UX ๊ณ ๋ ค์‚ฌํ•ญ, ์ฝ”๋“œ ์„ค๊ณ„๊นŒ์ง€ ์ž์„ธํžˆ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

ReactFriend Community
โœ๏ธ Study

OCR ํŠน์ˆ˜๊ธฐํ˜ธ ์ธ์‹์„ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ์„ค๊ณ„: ํŒฉํ† ๋ฆฌ ํŒจํ„ด ๊ธฐ๋ฐ˜ ๊ตฌ์กฐํ™”

2025๋…„ 6์›” 8์ผ

OCR ์‹œ์Šคํ…œ์—์„œ ํŠน์ˆ˜๊ธฐํ˜ธ ์ธ์‹ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…ํ•œ ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋ฅผ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๊ด€์ ์—์„œ ํ’€์–ด๋‚ธ ๊ธ€์ž…๋‹ˆ๋‹ค. ํ…œํ”Œ๋ฆฟ ํŒฉํ† ๋ฆฌ์™€ ๋งค๋‹ˆ์ € ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ๊ธฐ๊ธฐ/์–ธ์–ด/์ƒ‰์ƒ ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ์œ ์—ฐํ•œ ํ™•์žฅ์„ ๊ฐ€๋Šฅ์ผ€ ํ–ˆ๊ณ , ์ด๋ฅผ ํ†ตํ•ด ํ”„๋ก ํŠธ์—”๋“œ์˜ Template Method ํŒจํ„ด๊ณผ์˜ ์œ ์‚ฌ์„ฑ์„ ๋„์ถœํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค.

ํŽ‘ํƒ€์ด๊ทธ๋ ˆ์ดํ„ฐ์ฐจ์ด๋‚˜
โœ๏ธ Study

OCR์—์„œ ํŠน์ˆ˜๊ธฐํ˜ธ๋ฅผ ํŒจํ„ด์œผ๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋œ ์ด์œ 

2025๋…„ 6์›” 1์ผ

OCR์—์„œ ๋ˆ„๋ฝ๋˜๋Š” ํŠน์ˆ˜๊ธฐํ˜ธ ๋ฌธ์ œ๋ฅผ JPEG ํŒจํ„ดํ™” ๊ฐœ๋…์—์„œ ์ฐฉ์•ˆํ•œ ํ›„์ฒ˜๋ฆฌ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•œ ๊ฒฝํ—˜ ๊ณต์œ 

ํŽ‘ํƒ€์ด๊ทธ๋ ˆ์ดํ„ฐ์ฐจ์ด๋‚˜
๐Ÿ’ป Frontend

Ajax ์š”์ฒญ์—์„œ withCredentials ์˜ต์…˜์˜ ์˜๋ฏธ์™€ ์ฃผ์˜ํ•  ์ 

2025๋…„ 4์›” 6์ผ

XMLHttpRequest, fetch, axios ๋“ฑ์œผ๋กœ ์ธ์ฆ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” withCredentials ์˜ต์…˜์€ CORS ์ •์ฑ…, ์ฟ ํ‚ค ์ฒ˜๋ฆฌ์™€ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ํ•ด๋‹น ์˜ต์…˜์˜ ์˜๋ฏธ, ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ฐ„์˜ ์˜ฌ๋ฐ”๋ฅธ ์„ค์ • ๋ฐฉ์‹, ๊ทธ๋ฆฌ๊ณ  ์‹ค๋ฌด์—์„œ ์ฃผ์˜ํ•ด์•ผ ํ•  ๋ณด์•ˆ ์ด์Šˆ๋ฅผ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

React
๐Ÿ’ป Frontend

JWT๋ฅผ ์–ด๋””์— ์ €์žฅํ•  ๊ฒƒ์ธ๊ฐ€? LocalStorage vs ์ฟ ํ‚ค

2025๋…„ 1์›” 26์ผ

JWT๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณด์•ˆ์„ฑ๊ณผ ํŽธ์˜์„ฑ์ด ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” LocalStorage์™€ ์ฟ ํ‚ค์— JWT๋ฅผ ์ €์žฅํ•ด๋ณธ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ๊ณผ ์ฃผ์˜ํ•  ์ ์„ ์ •๋ฆฌํ•˜๊ณ , XSS, CSRF ๋“ฑ ์ฃผ์š” ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ๋Œ€์‘ ๋ฐฉ์•ˆ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

React
๐Ÿ’ป Frontend

์ด๋ฏธ์ง€ ์ตœ์ ํ™” ๊ฐ€์ด๋“œ

2025๋…„ 1์›” 19์ผ

์›น์‚ฌ์ดํŠธ์˜ ์ด๋ฏธ์ง€ ์ตœ์ ํ™”๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜, ์†๋„, SEO์— ๋ชจ๋‘ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์ด๋ฏธ์ง€ ํ˜•์‹ ์„ ํƒ๋ถ€ํ„ฐ ์••์ถ• ๋„๊ตฌ ํ™œ์šฉ, ๋ฐ˜์‘ํ˜• ์ด๋ฏธ์ง€ ์„ค์ •, Lazy Loading, CDN, ์ ‘๊ทผ์„ฑ ๊ฐœ์„ ๊นŒ์ง€ ์›น ์ด๋ฏธ์ง€ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์‹ค์ „ ํŒ์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

React
๐Ÿ’ป Frontend

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ •๊ทœํ‘œํ˜„์‹ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ธฐ

2025๋…„ 1์›” 12์ผ

์ •๊ทœํ‘œํ˜„์‹์€ ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ํŒจํ„ด์„ ์ฐพ๊ณ  ๋Œ€์ฒดํ•˜๋ฉฐ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ค‘์‹ฌ์œผ๋กœ ์ •๊ทœํ‘œํ˜„์‹์˜ ์ฃผ์š” ๋ฉ”ํƒ€๋ฌธ์ž, ๋ฐ˜๋ณต ํŒจํ„ด, ์ „๋ฐฉ/ํ›„๋ฐฉํƒ์ƒ‰, ํƒ์š•์  ๋งค์นญ๊ณผ ๋น„ํƒ์š•์  ๋งค์นญ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์‹ค์ „ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ํ•ต์‹ฌ ๊ฐœ๋…์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

React
๐Ÿ’ป Frontend

React์—์„œ ํผ ๊ด€๋ฆฌ, ์™œ Formik์ธ๊ฐ€?

2025๋…„ 1์›” 5์ผ

React์—์„œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ํผ์„ ๊ด€๋ฆฌํ•  ๋•Œ ์ƒํƒœ ์ฒ˜๋ฆฌ, ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ, ์ œ์ถœ ๋กœ์ง ๋“ฑ์ด ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Formik ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š”์ง€, ์ฝ”๋“œ ์˜ˆ์ œ์™€ ๋‹ค๋ฅธ ํผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด ์„ค๋ช…ํ•˜๊ณ , Formik์„ ์„ ํƒํ•  ๋•Œ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์š” ์žฅ์ ์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

React
โœจ Project
COMATCHING(ver3): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

COMATCHING(ver3): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

2024๋…„ 12์›” 29์ผ

์ฝ”๋งค์นญ(ver3): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

COMATCHING
๐Ÿ’ป Frontend

Vite๋ฅผ ์‚ฌ์šฉํ•ด React ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

2024๋…„ 10์›” 25์ผ

CRA ๋ง๊ณ  Vite๋กœ React ์„ค์ •ํ•˜๊ธฐ

React
๐Ÿ’ป Frontend

UseEffect๊ฐ€ ๋‘๋ฒˆ ์‹คํ–‰๋˜๋Š” ์ด์œ 

2024๋…„ 10์›” 11์ผ

UseEffect๊ฐ€ ๋‘๋ฒˆ ์‹คํ–‰๋˜๋Š” ์ด์œ 

ReactCOMATCHING
๐Ÿ’ป Frontend

React์—์„œ ์Šคํฌ๋กค ์œ„์น˜ ์œ ์ง€ํ•˜๊ธฐ (Scroll Restoration)

2024๋…„ 9์›” 27์ผ

React์—์„œ ์Šคํฌ๋กค ์œ„์น˜ ์œ ์ง€ํ•˜๊ธฐ

ReactShare-It
๐Ÿ’ป Frontend

Recoil๋กœ ๊ฐ„ํŽธํ•œ ์ƒํƒœ ๊ด€๋ฆฌํ•˜๊ธฐ

2024๋…„ 9์›” 13์ผ

Recoil๋กœ ๊ฐ„ํŽธํ•œ ์ƒํƒœ ๊ด€๋ฆฌํ•˜๊ธฐ

ReactCOMATCHING
๐Ÿ’ป Frontend

๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ ํŒ์—… ์ฐฝ ์œ„์น˜ ์ •ํ™•ํ•˜๊ฒŒ ์กฐ์ ˆํ•˜๊ธฐ

2024๋…„ 8์›” 30์ผ

๋ธŒ๋ผ์šฐ์ €์˜ ๋‹จ์ผ ๋˜๋Š” ๋“€์–ผ ๋ชจ๋‹ˆํ„ฐ ํ™˜๊ฒฝ์—์„œ window.open()์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒ์—… ์ฐฝ์„ ํ™”๋ฉด ์ค‘์•™์— ์ •ํ™•ํ•˜๊ฒŒ ์œ„์น˜์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

Reactportfolio
โœ๏ธ Study

npm, pnpm, npx, yarn ์ •

2024๋…„ 8์›” 16์ผ

npm, pnpm, npx, yarn ์ •๋ฆฌ

Study
โœ๏ธ Study

git ๋ช…๋ น์–ด ์ •๋ฆฌ

2024๋…„ 8์›” 9์ผ

git ๋ช…๋ น์–ด ์ •๋ฆฌ

Git
๐Ÿ’ป Frontend

์™œ React์ธ๊ฐ€?

2024๋…„ 8์›” 7์ผ

์™œ React์ธ๊ฐ€

ReactCOMATCHING
๐Ÿ’ป Frontend

Vanilla-extract: ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ์—์„œ styled-components ๋Œ€์‹  ์„ ํƒํ•œ ์ด์œ 

2024๋…„ 8์›” 2์ผ

Vanilla-extract ์‚ฌ์šฉ ์ด์œ 

Vanilla-extractCOMATCHING
โœจ Project
COMATCHING(ver2): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

COMATCHING(ver2): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

2024๋…„ 7์›” 26์ผ

์ฝ”๋งค์นญ(ver2): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

COMATCHING
โœจ Project
COMATCHING(ver1.5): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

COMATCHING(ver1.5): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

2024๋…„ 7์›” 19์ผ

์ฝ”๋งค์นญ(ver1.5): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

COMATCHING
โœจ Project
COMATCHING(ver1): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

COMATCHING(ver1): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

2024๋…„ 7์›” 12์ผ

์ฝ”๋งค์นญ(ver1): ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

COMATCHING
โœจ Project
COMATCHING: ํƒ„์ƒ ๋ฐฐ๊ฒฝ

COMATCHING: ํƒ„์ƒ ๋ฐฐ๊ฒฝ

2024๋…„ 7์›” 5์ผ

COMATCHING ํƒ„์ƒ ๋ฐฐ๊ฒฝ

COMATCHING
โœจ Project
Share-it: ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

Share-it: ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

2024๋…„ 6์›” 28์ผ

Share-it: ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

Share-It
โœจ Project
Share-it: ํƒ„์ƒ ๋ฐฐ๊ฒฝ

Share-it: ํƒ„์ƒ ๋ฐฐ๊ฒฝ

2024๋…„ 6์›” 21์ผ

Share-it ํ”„๋กœ์ ํŠธ์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ

Share-It
โœ๏ธ ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ

2024๋…„ 6์›” 14์ผ

์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ

์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ
๐Ÿท๏ธ Tags