Hoonni
ํ›„๋‹ˆ's Blog

์ „์ฒด ๊ธ€

Hi There ! ๐Ÿ–๏ธ I am FrontEnd Developer ๐Ÿ’ป I'm studying AI, Backend, React-Native Now.
React/2022-ไธŠ

Conditional-rendering (์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง)

Conditional-rendering(์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง) Conditional-rendering(์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง)๋ž€? ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ํ•˜๋Š” ๊ฒƒ ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ๊ฐ€ ๋กœ๋”ฉ ์ค‘ ์ผ ๋•Œ, ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„๋•Œ ๋“ฑ๋“ฑ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์กฐ๊ฑด์‹์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ํ•  ๋•Œ ์‚ฌ์šฉ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ œ๊ณตํ•˜๋Š” ์กฐ๊ฑด๋ฌธ์ธ if/else, switch/case ๋“ฑ์ด ์žˆ์Œ ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง ๋ฐฉ๋ฒ• โ‘  if / else ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ• ์ปดํฌ๋„ŒํŠธ props ๊ฐ’์— ๋”ฐ๋ผ ๋ฆฌํ„ดํ•˜๋Š” ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌํ•จ โ‘ก switch / case ์กฐ๊ฑด์ด ๋‹ค์–‘ํ•  ๋•Œ ์‚ฌ์šฉ โ‘ข ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž(&&) ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž &&๋ฅผ ์‚ฌ์šฉ โ”Œ โ“ data๊ฐ€ ์ฐธ์ผ ๋•Œ : && ๋’ค์˜ data.fetchProduct๊ฐ€ ๋ Œ๋”๋ง ๋จ โ”œ โ“‘ dat..

React/2022-ไธŠ

Static, Dynamic Routing (์ •์  ๋ผ์šฐํŒ…, ๋™์  ๋ผ์šฐํŒ…)

Static, Dynamic Routing Routing ์ด๋ž€? ๋ชฉ์ ์ง€๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ ์ค‘ ํ•œ๊ฐ€์ง€ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•ด์ฃผ๋Š” ๊ณผ์ •์„ ์˜๋ฏธ ๋ผ์šฐํ„ฐ ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•˜๋Š” ๊ฒƒ โ”” ๋ผ์šฐํ„ฐ ๊ฐ์ฒด : ํŽ˜์ด์ง€ ์ด๋™๊ณผ ์—ฐ๊ด€๋œ ๊ฐ์ฒด ๋ผ์šฐํŒ…์˜ ์ข…๋ฅ˜์—๋Š” Static Routing(์ •์  ๋ผ์šฐํŒ…)๊ณผ Dynamic Routing(๋™์  ๋ผ์šฐํŒ…)์ด ์žˆ์Œ React์—์„œ router๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ„์™€ ๊ฐ™์ด useRouter๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ ์ด๋Š” react-hooks ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๋œป Router ๊ฐ์ฒด์˜ ์ข…๋ฅ˜ router.push("์ด๋™ํ•  ํŽ˜์ด์ง€") : ์ง€์ • ํŽ˜์ด์ง€๋กœ ์ด๋™ router.replace("์ด๋™ํ•  ํŽ˜์ด์ง€") : ์ง€์ • ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋˜, ํ˜„์žฌ ํŽ˜์ด์ง€ ๊ธฐ๋ก์„ ์ €์žฅํ•˜์ง€์•Š์Œ router.back() : ์ด์ „ ํŽ˜์ด..

React/2022-ไธŠ

try ~ catch

try ~ catch try ~ catch๋ž€... ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋ฉด ์Šคํฌ๋ฆฝํŠธ๋Š” ์ฆ‰์‹œ ์ค‘๋‹จ๋˜๊ณ , ์ฝ˜์†”์— ์—๋Ÿฌ๊ฐ€ ์ถœ๋ ฅ๋˜์ง€๋งŒ, try ~ catch ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ฆ‰์‹œ ์ค‘๋‹จ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ , ์—๋Ÿฌ๋ฅผ ์žก์•„์„œ(catch) ๋” ํ•ฉ๋‹นํ•œ ๋ฌด์–ธ๊ฐ€๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ try ~ catch ๋™์ž‘ ๋จผ์ €, try { } ์•ˆ์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋จ ์—๋Ÿฌ๊ฐ€ ์—†๋‹ค๋ฉด, try ์•ˆ์˜ ๋งˆ์ง€๋ง‰ ์ค„๊นŒ์ง€ ์‹คํ–‰๋˜๊ณ , catch ๋ธ”๋ก์€ ๊ฑด๋„ˆ๋œ€ ์—๋Ÿฌ๊ฐ€ ์žˆ๋‹ค๋ฉด, try ์•ˆ ์ฝ”๋“œ์˜ ์‹คํ–‰์ด ์ค‘๋‹จ๋˜๊ณ , catch(error) ๋ธ”๋ก์œผ๋กœ ์ œ์–ด ํ๋ฆ„์ด ๋„˜์–ด๊ฐ ๋”ฐ๋ผ์„œ, try { } ๋ธ”๋ก ์•ˆ์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ด๋„, catch์—์„œ ์—๋Ÿฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์Šคํฌ๋ฆฝํŠธ๋Š” ์ค‘๋‹จ๋˜์ง€ ์•Š์Œ โ€ป ๋ณ€์ˆ˜ error(์–ด๋–ค ์ด๋ฆ„์ด๋“  ์‚ฌ์šฉ ๊ฐ€๋Šฅ)๋Š” ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ฌ๋Š”์ง€์— ๋Œ€ํ•œ ์„ค..

React/2022-ไธŠ

Async / Await

Async / Await Async / Await ๋ž€? Promise๋ฅผ ํ†ตํ•ด์„œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ, Promise์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ES7์—์„œ async / await ํ‚ค์›Œ๋“œ๊ฐ€ ์ถ”๊ฐ€๋จ async / await ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ๋งˆ์น˜ ๋™๊ธฐ ์ฝ”๋“œ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ callback์ด๋‚˜ promise์™€ ๊ฐ™์ด ๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ• async๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„์˜ ์ œ์ผ ์•ž์—, await์€ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆด ํ•จ์ˆ˜ ์•ž์— ์ž‘์„ฑํ•จ async๋Š” ํ•จ์ˆ˜์—์„œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ promise ๋™์ž‘์„ ํ•จ await์€ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์ ์ ˆํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋„๋ก ๋™์ž‘์„ ํ•จ โ€ป promise๋Š” ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด๋กœ, promise๊ฐ€ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ ๋‹ค๋ฅธ ์ฝ”๋“œ๊ฐ€ ๋น„๋™๊ธฐ..

React/2022-ไธŠ

Rest-API vs GraphQL-API

Rest-API vs GraphQL-API Rest API๋ž€ API(Application Programming Interface)๋ž€ โ”” ๋ฐ์ดํ„ฐ์™€ ๊ธฐ๋Šฅ์˜ ์ง‘ํ•ฉ์„ ์ œ๊ณตํ•˜์—ฌ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ์ด‰์ง„ํ•˜๋ฉฐ, ์„œ๋กœ ์ •๋ณด๋ฅผ ๊ตํ™˜ ๊ฐ€๋Šฅ ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ REST API์˜ ์ •์˜ โ”” REST ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋น„์Šค API๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ โ”” ์ตœ๊ทผ OpenAPI, Micro Service ๋“ฑ์„ ์ œ๊ณตํ•˜๋Š” ์—…์ฒด ๋Œ€๋ถ€๋ถ„์€ REST API๋ฅผ ์ œ๊ณตํ•จ REST API์˜ ํŠน์ง• ์‚ฌ๋‚ด ์‹œ์Šคํ…œ๋“ค๋„ REST ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ์Šคํ…œ์„ ๋ถ„์‚ฐํ•ด ํ™•์žฅ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์—ฌ ์œ ์ง€๋ณด์ˆ˜ ๋ฐ ์šด์šฉ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ REST๋Š” HTTP ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฏ€๋กœ, HTTP๋ฅผ ์ง€์›ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด๋กœ ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ REST API๋ฅผ ์ œ์ž‘ํ•˜๋ฉด ๋ธํŒŒ..

React/2022-ไธŠ

Template Literals

Template Literals Template Literals๋ž€? ES6์—์„œ ์ƒˆ๋กœ ๋„์ž…๋œ ๋ฌธ์ž์—ด ํ‘œ๊ธฐ๋ฒ• ๋ฐฑํ‹ฑ(backtick) ` ์„ ์‚ฌ์šฉ โ”— ๋ฐฑํ‹ฑ์€ ํ‚ค๋ณด๋“œ์—์„œ ์ˆซ์ž 1 ์™ผ์ชฝ, tabํ‚ค ์œ„์— ์œ„์น˜ํ–ˆ์Œ / ' (์ž‘์€ ๋”ฐ์˜ดํ‘œ)์™€ ํ—ท๊ฐˆ๋ฆฌ์ง€ ๋ง๊ฒƒ! ์—ฌ๋Ÿฌ ์ค„์— ๊ฑธ์ณ ๋ฌธ์ž์—ด ์ž‘์„ฑ ๊ฐ€๋Šฅ โ”” ์ค„๋ฐ”๊ฟˆ์„ ๊ทธ๋Œ€๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ ํŠน์ˆ˜ ๊ธฐํ˜ธ $๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜ ๋˜๋Š” ์‹ ํฌํ•จ ๊ฐ€๋Šฅ ๊ธฐ์กด ์‚ฌ์šฉ ๋ฐฉ๋ฒ• let a = 10; console.log("a์˜ ๊ฐ’์€ " + a + "์ž…๋‹ˆ๋‹ค"); โ”” ์œ„์™€ ๊ฐ™์ด + ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ์ด์–ด ๋ถ™์—ฌ ์‚ฌ์šฉ Template Literals ์‚ฌ์šฉ ๋ฐฉ๋ฒ• let a = 10; console.log(`a์˜ ๊ฐ’์€ ${a}์ž…๋‹ˆ๋‹ค); โ”” ์œ„์™€ ๊ฐ™์ด ๋ฐฑํ‹ฑ( ` )์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ๋‹ค๋ฅด๊ฒŒ +๋ฅผ ์ด์šฉํ•˜์ง€..

React/2022-ไธŠ

Git

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

React/2022-ไธŠ

Import & Export

Import Import์˜ ๋œป์€ ? → Import์˜ ์‚ฌ์ „์  ์˜๋ฏธ : โ‘  ์ˆ˜์ž…ํ•˜๋‹ค โ‘ก (๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ) ๋ถˆ๋Ÿฌ์˜ค๋‹ค React์—์„œ์˜ import ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ํ˜•ํƒœ ์˜๋ฏธ import ์ด๋ฆ„ from "์œ„์น˜" default ์žˆ์ด export ํ•ด ์คฌ์„ ๋•Œ ์‚ฌ์šฉ import { ์ด๋ฆ„ } from "์œ„์น˜" default ์—†์ด export ํ•ด ์คฌ์„ ๋•Œ ์‚ฌ์šฉ import * from "์œ„์น˜" ์œ„์น˜์— ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ–๊ณ  ์˜ฌ ๋•Œ ์‚ฌ์šฉ import * as ์ด๋ฆ„ from "์œ„์น˜" as ๋ฌธ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฆ„์„ ์ž„์˜๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ import { default as ์ด๋ฆ„ } from "์œ„์น˜" as ๋ฌธ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฆ„์„ ์ž„์˜๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ Export Export์˜ ๋œป์€ ? → Export์˜ ์‚ฌ์ „์  ์˜๋ฏธ : โ‘  ์ˆ˜์ถœ(..