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

๐Ÿ”‘Code/React6

React | REST API๋ฅผ ์ด์šฉํ•œ Kakao ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ 2์ฐจ ํ”„๋กœ์ ํŠธ '๋ฎค์ฆˆ'์—์„œ๋Š” ๋น ๋ฅด๊ณ  ๊ฐ„ํŽธํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋ ค๋Š” ๋ชฉ์ ๋„ ์žˆ์—ˆ๊ณ  ๋‹ค๋ฅธ ์›น์—์„œ ๋งŽ์ด ์“ฐ์ด๋Š” ์™ธ๋ถ€ API๋ฅผ ์จ๋ณด๊ณ  ์‹ถ๊ธฐ๋„ ํ•ด์„œ ์นด์นด์˜ค ์†Œ์…œ ๋กœ๊ทธ์ธ API๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ์„ ํƒํ•ด์„œ ์ง„ํ–‰ํ–ˆ๋‹ค. ์นด์นด์˜ค API ๋กœ๊ทธ์ธ Flow 1. ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์ฐฝ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด์—ฌ์ค€๋‹ค. 2. ํด๋ผ์ด์–ธํŠธ๋Š” ๋กœ๊ทธ์ธ 3. ๋™์˜ํ•ญ๋ชฉ ์ฒดํฌํ•˜๊ณ  ์นด์นด์˜ค API ์„œ๋ฒ„์— ๋กœ๊ทธ์ธ ์ •๋ณด๋ฅผ ๋„˜๊ธด๋‹ค. 4. ์นด์นด์˜ค API ์„œ๋ฒ„๋Š” ์ „๋‹ฌ ๋ฐ›์€ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ  ์„œ๋น„์Šค ์„œ๋ฒ„์˜ Redirect URI๋กœ ์ธ๊ฐ€์ฝ”๋“œ๋ฅผ ๋ฐœ๊ธ‰ํ•ด์ค€๋‹ค. 5. ์ธ๊ฐ€์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์นด์นด์˜ค API ์„œ๋ฒ„๊ฐ€ ๋กœ๊ทธ์ธ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•œ๋‹ค. ์šฐ๋ฆฌ ํŒ€์€ ์–ด๋””๊นŒ์ง€ ํ”„๋ก ํŠธ๊ฐ€ ํ•˜๊ณ  ๋ฐฑ์—”๋“œ๊ฐ€ ์–ด๋””์„œ๋ถ€ํ„ฐ ๋งก์•„ ํ• ์ง€ ์ •ํ–ˆ๋‹ค. ๐Ÿ“Œ ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ํ† ํฐ์„ ์นด์นด์˜ค ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์ง€๋งŒ, ํ† ํฐ์„ .. 2023. 5. 14.
React | useEffect() ๋ฅผ ์จ๋ณด์ž ๋ฆฌ์•กํŠธ์˜ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” side effect๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ ์ž ํ–ˆ์„ ๋•Œ ์•„๋ž˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ํ•จ์ˆ˜๋ฅผ return๋ฌธ ์œ„์— ๋งŒ๋“ค์–ด ํ˜ธ์ถœํ•˜๋ฉด ์–ด๋–จ๊นŒ? ๋ Œ๋”๋ง ์ˆœ์„œ๋Š” sideEffect๊ฐ€ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋ฆฌํ„ดํ•  ๊ฐ’์ด ๋‚˜์˜จ๋‹ค. const Component = () => { const sideEffect = () => { ์‚ฌ์ด๋“œ๋ฆฌํŒฉํŠธ ์‹คํ–‰ ๋‚ด์šฉ; }; sideEffect(); return ( ๋ฆฌํ„ดํ•  ๊ฐ’ ); } ์—ฌ๊ธฐ์—” ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ์ƒ๊ธด๋‹ค.1.side effect ๊ฐ€ ๋ Œ๋”๋ง์„ Blocking ํ•œ๋‹ค. ์ฝ”๋“œ๋Š” ์œ„์—์„œ ์•„๋ž˜๋ฐฉํ–ฅ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. sideEffect๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ํ•จ์ˆ˜๋ผ๋ฉด side effect๊ฐ€ ๋๋‚˜๊ธฐ ์ „๊นŒ์ง€ ๋ธŒ๋ผ์šฐ์ € ์ƒ์—์„œ๋Š” UI๊ฐ€ ๋ Œ๋”๋ง ๋˜์ง€ ๋ชปํ•˜๊ณ  ๋ฉˆ์ถ”๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํ™”๋ฉด์— UI๊ฐ€.. 2023. 3. 28.
React | UseEffect() ๋ฅผ ์“ฐ๋Š” ์ด์œ  state, props ๋ฅผ ํ™œ์šฉํ•ด ์›ํ•˜๋Š” UI ํ™”๋ฉด์„ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์›ํ•˜๋Š” ํ™”๋ฉด์„ ์™„์ „ํžˆ ๊ตฌํ˜„ํ•˜๊ธฐ์— ๋ถ€์กฑํ•จ์ด ์žˆ๋‹ค. ๐Ÿ“ŒuseEffect ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š” ?ํ™”๋ฉด์— ๋ณด์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜ค๊ธฐ๋„ ํ•ด์•ผ ํ•˜๊ณ , state๊ฐ€ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ฑฐ๋‚˜ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ํ•ด์ œํ•˜๋Š” ๋“ฑ ๋™์ž‘์„ ํ•ด์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. useEffect๋ฅผ ์“ฐ๋ฉด ์›ํ•˜๋Š” ํƒ€์ด๋ฐ์— Side Effect๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ“Œ๊ทธ๋Ÿผ Side Effect๋Š” ๋ญ˜๊นŒ?๋ถ€์ž‘์šฉ์ด๋ผ๋Š” ๋œป์„ ๊ฐ–๊ณ  ์žˆ์ง€๋งŒ ์ข€ ๋” ํ’€์–ด ๋งํ•˜๋ฉด ๋ถ€์ˆ˜์ ์ธ ํšจ๊ณผ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ์—์„œ ์ฃผ์š”ํ•œ ํšจ๊ณผ์— ๋”ฐ๋ผ์„œ ๋ฐœ์ƒํ•˜๋Š” ์ถ”๊ฐ€์ ์ธ ํšจ๊ณผ๋ผ๊ณ  ํ•œ๋‹ค. ํ•จ์ˆ˜์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š”๋ฐ Input ์„ ๋ฐ›์•„ Output ์„ ์‚ฐ์ถœํ•˜๋Š” ๊ฒƒ ์ด์™ธ์˜ ๋ชจ๋“  ๋™์ž‘์„ ๋งํ•œ๋‹ค. ์ˆœ์ˆ˜ ํ•จ์ˆ˜ :.. 2023. 3. 28.
React | ๋Œ“๊ธ€ ์ˆจ๊ธฐ๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„ React์˜ State์™€ props ํŒŒํŠธ๊ฐ€ ๋„ˆ๋ฌด ์–ด๋ ค์›Œ์„œ ์ฃผ์–ด์ง„ ๊ณผ์ œ ํ•˜๋‚˜ํ•˜๋‚˜ ํ•ด๋‚˜๊ฐ€๋Š”๋ฐ ์• ๋จน์—ˆ๋‹ค. ์—ฐ์Šต์„ ์œ„ํ•ด ์ด๋ฒˆ์ฃผ์— ๋ฐ›์€ ๊ณผ์ œ ์ค‘ ๊ฐ€์žฅ ์–ด๋ ต๋‹ค๊ณ  ๋А๊ปด์กŒ๋˜ ๋Œ“๊ธ€ ์ˆจ๊ธฐ๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„์— ๋Œ€ํ•ด ๋‹ค์‹œ ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ“Œ์ตœ์ข… ํ™”๋ฉด ๋Œ“๊ธ€ ์ˆจ๊ธฐ๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์™„์„ฑ ํ™”๋ฉด 1.์ฒ˜์Œ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „ ์ฝ”๋“œ ๋””ํดํŠธ ํ™”๋ฉด์— ๋Œ€ํ•œ ์ฝ”๋“œ๋Š” ์ด๋ ‡๋‹ค. ์ด์ œ ์—ฌ๊ธฐ์„œ state๋ฅผ ์ฃผ๊ณ  ์ˆจ๊ธฐ๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. import React, {useState} from "react"; import "./Review.scss" const Review = () => { return ( jiyeoun ๊ณจํ”„๊ณต, white ์ƒ‰์ƒ ๊ตฌ๋งค ๋ฐฐ์†ก๋„ ๋น ๋ฅด๊ณ  ์ •๋ง ์ข‹์•„์š”. ์ฃผ๋ฌธํ•œ์ง€ ํ•˜๋ฃจ๋งŒ์— ๋ฐฐ์†ก์ด ๋„์ฐฉํ•ด์„œ ๋„ˆ๋ฌด ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์—๋„ ํ•„์š”ํ•˜๋ฉด ๋˜ ์—ฌ๊ธฐ์„œ ์‹œํ‚ฌ ๊ฒƒ ๊ฐ™.. 2023. 3. 26.