React

[TIL/React] 2023/09/15

์˜ค๋Š˜์˜ myTask ๐ŸŸกauth data๋ฅผ ํ™œ์šฉํ•˜์—ฌ AppBar์˜ UI๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ๋กœ ํ–ˆ์œผ๋‚˜, '๋กœ๊ทธ์•„์›ƒ'์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. pedro ํ˜•๋‹˜์ด firebase์—์„œ signOut ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์žˆ์Œ์„ ํ™•์ธํ–ˆ๋‹ค. signOut ํ•จ์ˆ˜์— auth๋ฅผ

2023๋…„ 9์›” 15์ผ1min read

์˜ค๋Š˜์˜ myTask ๐ŸŸก

auth data๋ฅผ ํ™œ์šฉํ•˜์—ฌ AppBar์˜ UI๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ๋กœ ํ–ˆ์œผ๋‚˜, '๋กœ๊ทธ์•„์›ƒ'์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

pedro ํ˜•๋‹˜์ด firebase์—์„œ signOut ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์žˆ์Œ์„ ํ™•์ธํ–ˆ๋‹ค. signOut ํ•จ์ˆ˜์— auth๋ฅผ ํˆฌ์ž…ํ•˜๊ณ  ์žˆ๋‹ค. authSlice์— ๊ฐ„๋‹จํžˆ ์ ์šฉํ•ด ๋ณด์ž.

๊ฐ„๋‹จํ•œ ๋กœ๊ทธ์•„์›ƒ thunk ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ทธ์— ๋งž๊ฒŒ addCase๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ์ผ๋‹จ์€ ์•„๋ฌด ๊ณณ์—๋‚˜ ๋กœ๊ทธ์•„์›ƒ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์–ด์„œ test๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

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

ํ…Œ์ŠคํŠธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด, state๊ฐ€ ์˜ˆ์ƒํ•œ๋Œ€๋กœ ๋ณ€ํ•œ๋‹ค. ๋ฌผ๋ก  ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์—๋„ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.

isAuthenticated๋ฅผ false๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ์—, ์œ„ useEffect๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

More to read

REST API

ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ ์‚ฌ์ด

HTTP ์ƒํƒœ ์ฝ”๋“œ๋Š” ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๋ฐฑ์—”๋“œ๋กœ ๋ณด๋ƒˆ๋˜ ์š”์ฒญ์˜ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์˜๋ฏธํ•˜๋Š” ์ผ์ข…์˜ ์•ฝ์†์ด๋ฉฐ, API๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ƒํƒœ ์ฝ”๋“œ์™€ ๊ด€๋ จํ•˜์—ฌ, ๋ฐฑ์—”๋“œ๋Š” ์ž˜ ๋ชจ๋ฅด๋Š” ํ”„๋ก ํŠธ์—”๋“œ์˜ ์Šฌํ”ˆ ์‚ฌ์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค.์•„๋ž˜๋Š” ์š”์ฒญ์ด ์‹คํŒจํ–ˆ์Œ์—๋„, ๋ฐฑ์—”๋“œ์—์„œ ์ƒํƒœ ์ฝ”๋“œ

JWT

ํ† ํฐ ๊ด€๋ฆฌ ๋ฐฉ์‹ ํ†บ์•„๋ณด๊ธฐ

0. ๋“ค์–ด๊ฐ€๋ฉฐ ๐ŸŽฏ ์„œ๋น„์Šค์— ์ ‘๊ทผํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์„ ์‚ฌ์šฉ์ž ์ธ์ฆ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฃผ์–ด์ง„ ๊ถŒํ•œ์„ ํ™•์ธํ•˜๋Š” ์ž‘์—…์€ ์ธ๊ฐ€๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ธ๊ฐ€๋Š” ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ธ์ฆ์—๋Š” ๋งŽ์€ ๋ฐฉ์‹์ด ์žˆ์ง€๋งŒ, ์˜ค๋Š˜์€ ์„ธ์…˜ ์ธ์ฆ ๋ฐฉ

A2A

A2A / MCP ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜

0. ๋“ค์–ด๊ฐ€๋ฉฐ โœ๏ธ Google for Developers์—, ๋ ˆ์Šคํ† ๋ž‘ ๊ณต๊ธ‰๋ง ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ์—ฎ์€ 6๋Œ€ ํ”„๋กœํ† ์ฝœ(MCP, A2A, UCP, AP2, A2UI, AG-UI)์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๊ฐ€ ๊ฒŒ์‹œ๋œ ์ดํ›„, MCP์™€ A2A๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•ด ๋ณด๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ