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

TIL -์ผ๊ฐ„ํ•™์Šต๊ธฐ๋ก31

๋น„๋™๊ธฐ ํ๋ฆ„ ์ดํ•ดํ•˜๊ธฐ ๋™๊ธฐ์ ์ด๋ž€(synchronous)? ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ทธ๋ฆผ์œผ๋กœ ์„ค๋ช… ํ•˜์ž๋ฉด... |A์‹œ์ž‘-----------------A์ข…๋ฃŒ| |B์‹œ์ž‘---------------B์ข…๋ฃŒ| A์—…๋ฌด๋ฅผ ๋งˆ์น ๋•Œ๊นŒ์ง€ B์—…๋ฌด๋ฅผ ๋ง‰์•„๋‘๋Š”๊ฒƒ์„ Blocking์ด๋ผ๊ณ ํ•˜๊ณ , ๋๋‚˜๋Š” ์‹œ์ ๊ณผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์ด ๊ฐ™๊ธฐ๋•Œ๋ฌธ์— ๋™๊ธฐ์ ์ด๋ผ๊ณ  ๋งํ•œ๋‹ค. ๋น„๋™๊ธฐ์ ์ด๋ž€(asynchronous)? |A์‹œ์ž‘-----------------A์ข…๋ฃŒ| |B์‹œ์ž‘---------B์ข…๋ฃŒ| ๋Œ€ํ‘œ์  ๋น„๋™๊ธฐ ํ•จ์ˆ˜์ธ setTimeout ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ ์ด๋ ‡๊ฒŒ ์‹คํ–‰๋œ๋‹ค. https://poiemaweb.com/img/event-loop.gif A,B๊ฐ€ ๋ณ‘๋ ฌ๋กœ ์ง„ํ–‰๋œ๋‹ค. ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ ๋˜์ง€์•Š๋Š”๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๋‹จ์ˆœํžˆ ์ž‘์—…์ด ์š”์ฒญ๋˜๋ฉด Call Stack์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ๋œ ์ž‘์—…์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰.. 2022. 2. 13.
Stateairline-client ๊ณผ์ œ [React] ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ์ดํ•ด์™€ ๋น„๋™๊ธฐ ์š”์ฒญ ์ฒ˜๋ฆฌ ์ดํ‹€์— ๊ฑธ์ณ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„, state์ƒํƒœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ์™€ useEffect AJAX์š”์ฒญ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ–ˆ๋‹ค. ๋ฆฌ์•กํŠธ์˜ ์ปดํฌ๋„ŒํŠธ๋Š” 1๊ฐ€์ง€์˜ ์ผ๋งŒ ํ•˜๊ณ  ๋‹จ๋ฐฉํ–ฅ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ฐ€์ง„๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋””์— ๋‹ด์•„์ค˜์•ผํ• ์ง€ ์ •ํ•ด์ค˜์•ผํ•œ๋‹ค.(๋ฐ์ดํ„ฐ์ •์˜) ๋ถ€๋ชจ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์ž์‹์—๊ฒŒ props(์ฝ๊ธฐ์ ์šฉ)๋กœ ๋‚ด๋ ค์ค€๋‹ค(์ธ์ž ํ˜น์€ ์†์„ฑ์ฒ˜๋Ÿผ ๋‚ด๋ ค์คŒ) ์ž์‹์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ ค๋ฐ›์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์—์„œ ์™”๋Š”์ง€๋Š” ์•Œ์ง€๋ชปํ•œ๋‹ค. [์ƒํƒœ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ] ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์ด top-down ๋ฐฉ์‹์ด์ง€๋งŒ, ์ž์‹์ปดํฌ๊ฐ€ ๋ถ€๋ชจ์ปดํฌ์˜ ์ƒํƒœ๋ฅผ ๋ฐ”๊ฟ”์•ผํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” (์˜ˆ. ์ž์‹์ปดํฌ์— ์ „์†ก๋ฒ„ํŠผ์ด ์žˆ์–ด ํด๋ฆญ์‹œ ๋ถ€๋ชจ์˜ ๋ฐ์ดํ„ฐ ๋ชฉ๋ก์ด ์—…๋ฐ์ดํŠธ ๋˜์–ด์•ผ ํ•˜๋Š”๊ฒฝ์šฐ) ๋ถ€๋ชจ์ปดํฌ๋‚ด์— ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋‘๊ณ  ์ž์‹์ปดํฌ์— ์ด ์ƒํƒœ .. 2022. 2. 9.
Weather API & data component ์˜ค๋Š˜์ž todolist ์ž‘์—… 1. ์™€์ด์–ด ํ”„๋ ˆ์ž„ + ์ปดํฌ๋„ŒํŠธ ๋‚˜๋ˆ„๊ธฐ. 2.Data , Weather Component ๋งŒ๋“ค๊ธฐ. 1. ์™€์ด์–ด ํ”„๋ ˆ์ž„ + ์ปดํฌ๋„ŒํŠธ ๋‚˜๋ˆ„๊ธฐ. ์ „์ฒด ํŽ˜์ด์ง€๋Š” App์— ๋„์šฐ๊ณ , ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋“ค์€ ๊ฐ์ž ํ• ์ผ์„ ์ž‘๊ฒŒ ๋‚˜๋ˆ„์–ด ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค. App์— ํ‘œ์‹œ๋  ์ปดํฌ๋„ŒํŠธ ์™ธ์—๋Š” Listํด๋”์— ๋”ฐ๋กœ ๋‹ด์•„๋‘์—ˆ๋‹ค. ์–ด๋–ป๊ฒŒ state์™€ props๋ฅผ ๋‚ด๋ ค์ฃผ์–ด์•ผ ํ• ์ง€ ํ—ท๊ฐˆ๋ฆด๊ฒƒ ๊ฐ™์•„์„œ ๋ถ€๋ชจ์ž์‹๊ฐ„์˜ ํŠธ๋ฆฌ๊ตฌ์กฐ๋„ ํ‘œํ˜„ํ•ด๋ดค๋‹ค. ๋งค์ผ ๋ฐ˜๋ณตํ•  ์ผ์ •์„ ๋„์šธ DayLoop์™€ ๋‹น์ผ ์ผ์ •ํ›„์—” ๋ฆฌ์…‹ ๋  TodoList๋Š” AddList๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ผ์ •์„ ์ถ”๊ฐ€ํ• ๋•Œ ํ† ๊ธ€๋ฒ„ํŠผ์„ ์ด์šฉํ•ด ๋งž๋Š” ์ปดํฌ๋„ŒํŠธProp์œผ๋กœ ๋‚ด๋ ค ์ค„ ์˜ˆ์ •. remove๋Š” ์–ด๋””์— ํฌํ•จํ•ด์•ผํ• ์ง€ ์ž˜๋ชจ๋ฅด๊ฒ ์–ด์„œ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ๋ผ์›Œ๋„ฃ์„๊ฑฐ ๊ฐ™์€๋ฐ ์•„๋งˆ addlist์— ๋“ค์–ด.. 2022. 2. 5.
[React ์ž์Šต์„œ] Tic Tac Toe.. ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ ํ•˜๊ธฐ์— ์•ž์„œ ๋ฆฌ์•กํŠธ๋ฅผ ๋„ˆ๋ฌด ๋ชจ๋ฅด๋Š”๊ฑฐ ๊ฐ™์•„, ๊ณต์‹๋ฌธ์„œ ์ž์Šต์„œ์˜ ํ‹ฑํƒํ† ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ ์žˆ๋‹ค. function Square(props) { return ( {props.value} ); } class Board extends React.Component { constructor(props){ super(props); this.state = { squares: Array(9).fill(null), xIsNext : true, }; } handleClick(i) { const squares = this.state.squares.slice(); if(calculateWinner(squares) || squares[i]){ return; } squares[i] = this.state.xIsNext ? '.. 2022. 2. 3.
[TodoList]create react app ์„ค์น˜ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์…‹ํŒ…์„ ๋„์™€์ฃผ๋Š” ํˆด ์ธ create react app ์„ ์ด์šฉํ•˜์—ฌ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•œ๋‹ค ํ„ฐ๋ฏธ๋„์— `npx create-react-app todo` ๋ฅผ ๋„ฃ์—ˆ๋Š”๋ฐ ๋ญ”๊ฐ€ ์—๋Ÿฌ๊ฐ€๋œธ. ์ฝ์–ด๋ณด๋‹ˆ ๋ฒ„์ „์˜ ๋ฌธ์ œ์ธ๊ฒƒ๊ฐ™๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด์™€ ์ฐธ๊ณ ํ•  ์‚ฌ์ดํŠธ ์ฃผ์†Œ๋ฅผ ์•Œ๋ ค์ฃผ์–ด์„œ ๊ฒ€์ƒ‰ํ•ด๋ด„. ๋ฆฌ์•กํŠธ ๊ณต์‹๋ฌธ์„œ์— ๊ฐ€๋ณด๋‹ˆ ์ด์ „์— create react app์„ ์ „์—ญ์ ์œผ๋กœ ์„ค์น˜ํ•˜์˜€์„ ๊ฒฝ์šฐ ์‚ญ์ œํ›„ ์žฌ์„ค์น˜ํ•˜์—ฌ ํ•ญ์ƒ npx ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์„ ๊ถŒ์žฅํ•จ. ๊ทธ๋ž˜์„œ... ์œ„์˜๋ช…๋ น์–ด๋กœ ์‚ญ์ œ ํ•ด๋ณด๋ คํ–ˆ๋Š”๋ฐ ๋ญ”๊ฐ€...๋ฌด์„œ์›Œ์„œ npm ๋ฒ„์ „ ํ™•์ธํ›„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š”๋ฒ•์„ ๊ฒ€์ƒ‰ ํ•ด์„œ -g๋ฅผ ๋„ฃ์€ (-g๋Š” global๋กœ ์ „์—ญ ์„ค์น˜?? ๋ฅผ๋งํ•˜๋Š”๊ฒƒ ๊ฐ™๋‹ค npm ๋ช…๋ น์–ด ์ธ๋“ฏ) cra๋ฅผ ๋‹ค์‹œ ์„ค์น˜ ํ•ด๋ดค์ง€๋งŒ ์ด๋ฒ„์ „์€ ์•ˆ์“ฐ์ด๋Š” ๋ฒ„์ „์ธ๊ฒƒ๊ฐ™๋‹ค. ์–ผ๋ฅธ .. 2022. 1. 30.
๋ฆฌ์•กํŠธ๋กœ Todo list๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ์“ฐ๊ณ ์‹ถ์€๋ฐ ๋งˆ์Œ์— ๋“œ๋Š”๊ฒŒ ์—†์–ด์„œ ๋งŒ๋“ค์–ด๋ณด๊ธฐ๋กœํ•จ ๊ณต๋ถ€์— ๋„์›€๋ ์ˆ˜์žˆ๋„๋ก ๋ฆฌ์•กํŠธ ๋‚ ์”จapi ๋น„๋™๊ธฐ(์–ด๋””์„œ ๋“ค์–ด๊ฐ€์•ผํ• ์ง„ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ..) ๋ถ€์บ ์—์„œ ๋ฐฐ์šฐ๋Š”๊ฒƒ๋“ค์„ ๋˜๋„๋ก ๋งŽ์ด ์‚ฌ์šฉํ•ด๋ณผ์˜ˆ์ • 2022. 1. 30.
Call back ํ•จ์ˆ˜๋กœ Method ๋งŒ๋“ค๊ธฐ ํ•™์Šต๋ชฉํ‘œ forEach() ,indexOf(), map(), slice(), reduce(), filter()์™€ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ๋งŒ๋“ค๊ณ  ๋งŒ๋“  ํ•จ์ˆ˜๋ฅผ ์ฝœ๋ฐฑํ•˜์—ฌ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž!๐Ÿ˜Ž (๋น„๋™๊ธฐ์—์„œ ์ฝœ๋ฐฑ์„ ์›ํ™œํžˆ ์“ฐ๊ธฐ์œ„ํ•œ ์„ ํ–‰ํ•™์Šต) ๋งŒ๋“ ๊ฒƒ ์˜ˆ์ œ.slice() _.slice = function (arr, start, end) { let _start = start || 0, _end = end; // ์ž…๋ ฅ๋ฐ›์€ ์ธ๋ฑ์Šค๊ฐ€ ์Œ์ˆ˜์ผ ๊ฒฝ์šฐ, ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๋งค์นญ // (ex. -1 => arr.length - 1, -2 => arr.length - 2) // ์ž…๋ ฅ๋ฐ›์€ ์ธ๋ฑ์Šค๋Š” 0 ์ด์ƒ์ด์–ด์•ผ ํ•œ๋‹ค. if (start < 0) _start = Math.max(0, arr.length + start); .. 2022. 1. 24.
22.01.23 ๋‚ด๊ฐ€ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‰ฝ๊ฒŒ ์“ฐ๋Š” ๋‚ ์ด ์˜ฌ๊นŒ? ์–ด๋ ค์›Œ์„œ ๋„ˆ๋ฌด ํ•˜๊ธฐ ์‹ซ๋‹ค + ์ค‘์š”ํ•œ๊ฑฐ๋ผ ์ž๊พธ ๋ฏธ๋ฃจ๊ณ ์‹ถ๋‹ค ๊ทธ๋ž˜๋„ ๊พธ์ค€ํžˆ ํ•ด๋ณด๊ณ  ํฌ๊ธฐํ•˜์ง€๋ง์ž ํ™”์ดํŒ…๐Ÿ˜ฃ 2022. 1. 24.
Class์™€ Instance ํ•™์Šต๋ชฉํ‘œ ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค๋ผ๋Š” ์šฉ์–ด๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. new ํ‚ค์›Œ๋“œ์˜ ์‚ฌ์šฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. class ํ‚ค์›Œ๋“œ์˜ ์‚ฌ์šฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜„์‹ค ์„ธ๊ณ„์˜ ๋ชจ๋ธ์„ ๋ฐ”ํƒ•์œผ๋กœ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ์™€ ์†์„ฑ์„ ๋””์ž์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŠน์ง•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์บก์Šํ™” ์ƒ์† ์ถ”์ƒํ™” ๋‹คํ˜•์„ฑ JavaScript์—์„œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. Prototype์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ƒ์†(Inheritance)์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ  ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ์†๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„ ํ˜„์‹ค ์„ธ๊ณ„์˜ ๋ชจ๋ธ์„ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ํด๋ž˜์Šค ์ƒ์†์˜ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. Prototype chain์„ ์ดํ•ดํ•˜๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. (__proto__) ๋ฉด์ ‘์— ์ž์ฃผ๋“ฑ์žฅํ•˜๋Š” ๊ฐœ๋…์ด๋ผ๊ณ  ํ•˜๋‹ˆ ์ž˜.. 2022. 1. 22.