TIL 33: [React] ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ์ดํ•ด์™€ ๋น„๋™๊ธฐ ์š”์ฒญ ์ฒ˜๋ฆฌ
TIL/JavaScript 2021. 9. 6. 23:30

Section 1์—์„œ ๊ฐ€์žฅ ์–ด๋ ต๋‹ค๊ณ  ๋А๊ปด์กŒ๋˜ React ๋ถ€๋ถ„์„ ๋‹ค์‹œ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์™€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์™”๋‹ค ๊ฐ”๋‹ค ๋งŽ์ด ํ•ด์„œ ์ข€ ์ •์‹ ์—†์—ˆ๊ธด ํ–ˆ์ง€๋งŒ ์ข€๋งŒ ๋ฐฐ์› ๋˜ ๋‚ด์šฉ ๋” ์ •๋ฆฌํ•˜๋ฉด ์ดํ•ด ์ž˜ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์š”!๐Ÿ˜Š ๋‚ด์ผ๊นŒ์ง€ React๋ฅผ ์ด์šฉํ•œ ํ•ญ๊ณต๊ถŒ ์˜ˆ์•ฝ ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ์š”. ์•„์ง REST API๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ๋ชปํ’€์—ˆ์ง€๋งŒ ๋‚ด์ผ๊นŒ์ง€ ํ’€ ์ˆ˜ ์žˆ๋„๋ก ๋งˆ์ € ์—ด์‹ฌํžˆ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹น Lifting State Up React์—์„œ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์€ ํ•˜ํ–ฅ์‹์ธ๋ฐ์š”. ๋”ฐ๋ผ์„œ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ์˜ ์ƒํƒœ๊ฐ€ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— ์˜ํ•ด ๋ณ€ํ™”ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋Š”๋ฐ์š”. ์ด ๊ฒฝ์šฐ React์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์ธ ํ•˜ํ–ฅ์‹์— ์œ„๋ฐฐ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐ..

TIL 30: [JS/Node] ๋น„๋™๊ธฐ - fetch API
TIL/JavaScript 2021. 9. 1. 18:27

Node.js ๋ชจ๋“ˆ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์— ์ด์–ด ์˜ค๋Š˜์€ URL์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€ ๋น„๋™๊ธฐ์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด์ œ๋ณด๋‹ค๋Š” ๋” ์ต์ˆ™ํ•ด์ ธ์„œ ์ข€ ๋” ์ˆ˜์›”ํ•˜๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด์ œ์˜ '๋‚˜'๋ณด๋‹ค ๋” ๋‚˜์€ ์˜ค๋Š˜์˜ '๋‚˜'๊ฐ€ ๋˜๊ธฐ ์„ฑ.๊ณต.๐Ÿ˜Š fetch API ๋น„๋™๊ธฐ ์š”์ฒญ์˜ ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๋กœ URL๋กœ ์š”์ฒญํ•˜๋Š” ๊ฑธ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” API๋กœ JSON ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ ํ›„ Promise๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. Promise ํ˜•์‹์œผ๋กœ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— .then ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌํ„ธ ์‚ฌ์ดํŠธ์—์„œ ์ตœ์‹ ๋‰ด์Šค, ๋‚ ์”จ, ์ฃผ๊ฐ€ ๋“ฑ ๋™์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์•ผ ํ•˜๋Š” ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Sprint Review Async/ Await ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•  ๋•Œ ์ผ์ผ์ด ๋ณ€์ˆ˜ ์„ ์–ธ ํ• ๋‹นํ•˜์ง€๋ง๊ณ  ๋ฐฐ์—ด ์ด์šฉํ•ด์„œ..

TIL 29: [JS/Node] ๋น„๋™๊ธฐ - ํƒ€์ด๋จธ/ํŒŒ์ผ์—ด๊ธฐ
TIL/JavaScript 2021. 9. 1. 00:09

์˜ค๋Š˜์€ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋น„๋™๊ธฐ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ์™„์ „ํžˆ ์ฒ˜์Œ ๋ฐฐ์šด ๋ถ€๋ถ„์ด๋ผ ์•„์ง ๋งŽ์ด ๋‚ฏ์„ค์ง€๋งŒ ์ž์ฃผ ๋ณด๋ฉด์„œ ์ต์ˆ™ํ•ด์ง€๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ๋น„๋™๊ธฐ ์ •์˜ ๋ฐ ์‚ฌ๋ก€ ๋™๊ธฐ์™€ ๋‹ฌ๋ฆฌ ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ์š”์ฒญ๊ณผ ๋™์‹œ์— ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์š”์ฒญ ์ดํ›„ ๋‹ค๋ฅธ ๋ถ€๋ถ„๋“ค์ด ๊ณ„์†ํ•ด์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์‚ฌ๋ก€: DOM Elemenet์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ, ํƒ€์ด๋จธ, ์„œ๋ฒ„์— ์ž์› ์š”์ฒญ ๋ฐ ์‘๋‹ต Callback Async(๋น„๋™๊ธฐ)์—์„œ ์‹คํ–‰๋˜๋Š” ์ˆœ์„œ๋ฅผ ํ†ต์ œํ•˜๊ณ  ์‹ถ์„ ๋•Œ Callback ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Error Handling์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฃผ๋กœ (err, data) ์ˆœ์„œ๋กœ ๋ฐ›๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Callback ํ•จ์ˆ˜๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋Š” Callback Hell์ด ..

TIL 28: [JS/Node] ๋น„๋™๊ธฐ - Underbar
TIL/JavaScript 2021. 8. 30. 23:14

์˜ค๋Š˜์€ ๊ณ ์ฐจํ•จ์ˆ˜ ๊ธฐ๋Šฅ์„ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋Š” ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. Nightmare ๋ฌธ์ œ๋ฅผ ์•„์ง ๋ชปํ’€์–ด์„œ ๋ธ”๋กœ๊น… ์ดํ›„์— ๋งˆ์ € ๋” ํ’€์–ด๋ณด๋ ค๊ตฌ์š”! ๋ณธ๊ฒฉ์ ์ธ ๋น„๋™๊ธฐ์™€ ๊ด€๋ จํ•œ ๋‚ด์šฉ์€ ๋‚ด์ผ ๋‚˜์™€์„œ ๋‚ด์ผ ๋งˆ์ € ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ๋ฆฌ๋ทฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ๊ณ ์ฐจํ•จ์ˆ˜๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜(Callback Function)๋ฅผ ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝœ๋ฐฑํ•จ์ˆ˜๋ž€ ๊ณ ์ฐจํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ๋˜๋Š” ํ•จ์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 2. ๊ณ ์ฐจํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌ๋ฐ›์€ callerํ•จ์ˆ˜๋Š”, ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ด ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ(invoke) ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. caller๋Š” ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ ์‹คํ–‰ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์˜ˆ ํ˜ธ์ถœํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๊ณ , ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” ํŠน์ • ์ž‘์—…..

TIL 25: StringifyJSON / Tree UI
TIL/JavaScript 2021. 8. 25. 22:43

์˜ค๋Š˜์€ ์–ด์ œ ๋ฐฐ์šด ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ Sprint์— ํ™œ์šฉํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ์ฝ”ํ”Œ๋ฆฟ ๋ฌธ์ œ ํ‘ธ๋Š” ๊ฒƒ๋ณด๋‹ค ์žฌ๊ท€ํ•จ์ˆ˜์˜ ํ™œ์šฉ์„ฑ์„ ์ž˜ ์•Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด์ œ ์ฝ”ํ”Œ๋ฆฟ ํ’€๋ฉด์„œ ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”๊ฑด์ง€ ์ž˜ ์•Œ๊ฒŒ๋˜์—ˆ์ง€๋งŒ "์™œ" ์ด๋ฏธ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋‚ด๊ฐ€ ์ง์ ‘ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์จ์„œ ๋‹ค์‹œ ์ฝ”๋“œ๋ฅผ ์งœ์•ผํ•˜๋Š”๊ฐ€์— ๋Œ€ํ•ด ์˜๋ฌธ์„ ๊ณ„์† ๊ฐ€์กŒ์—ˆ์–ด์š”. ํ•˜์ง€๋งŒ ์˜ค๋Š˜ Tree UI๋ฅผ ํ’€๋ฉด์„œ ์•„ ์ด๋Ÿฐ ๊ณณ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒ ๊ตฌ๋‚˜! ๋ผ๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹น :) JSON (JavaScript Object Notation) JSON์€ JavaScript Object Notation์˜ ์ค„์ž„๋ง๋กœ, ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์—์„œ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด ํ˜•ํƒœ์˜ ํฌ๋งท์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  JSON ํฌ๋งท์€ JS๋ฅผ ํฌํ•จํ•œ ๋งŽ์€ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ”์šฉ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. JSON์œผ๋กœ ..

TIL23: [JS/Node] ๊ฐ์ฒด ์ง€ํ–ฅ JavaScript
TIL/JavaScript 2021. 8. 23. 16:55

๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด(Object Oriented Programming)๋ž€? ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์™€ ๋Œ€๋น„ ๋˜๋Š” ๊ฒƒ์ด ์ ˆ์ฐจ์  ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ ˆ์ฐจ์  ์–ธ์–ด๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๋ช…๋ น์„ ์กฐํ•ฉํ•œ ์–ธ์–ด๋กœ ์ดˆ๊ธฐ์— ์ด๋Ÿฐ ํ˜•์‹์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์‚ฌ์šฉ๋์Šต๋‹ˆ๋‹ค. ์ด์™€ ๋‹ฌ๋ฆฌ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ๋ช…๋ น์„ ์กฐํ•ฉํ•˜์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ช…๋ น์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ฒญ์‚ฌ์ง„์ž…๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•œ ์‚ฌ๋ก€๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ ์ „์— ๋จผ์ € ๊ฐ์ฒด์— ๋Œ€ํ•ด ๋ณต์Šตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ฒด.๋ฉ”์†Œ๋“œ()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. let counter = { value: 0, increase: function() { thi..