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

TIL17

TIL :: code-kata-js / (5) ๋ฌธ์ œ ์ˆซ์ž3 ๋งŒํผ 0๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ , ์ˆœํšŒํ•˜๋ฉด์„œ ์ฃผ์–ด์ง„ ํŠน์ •ํ•œ ์ผ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ˆœํšŒํ•˜๋Š” ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ์ˆœํšŒํ•˜๋Š” ์ˆซ์ž์˜ ๋‘๋ฐฐ๊ฐ’๋„ ์ถœ๋ ฅํ•ด์ฃผ์„ธ์š”. ์ž‘์„ฑํ•œ ์ฝ”๋“œ 1 function iterate(max, action) { for (let i = 0; i < max; i++) { action(i); } } function numbers(num) { console.log(num); } function doubleNumbers(num) { console.log(num * 2); } iterate(4, numbers); iterate(4, doubleNumbers); ์ž‘์„ฑํ•œ ์ฝ”๋“œ 1 function iterate(max, action) { for (let i = 0; i < max; i++) {.. 2022. 8. 19.
TIL :: code-kata-js / (4) ๋ฌธ์ œ ์ˆซ์ž์ธ num์„ ์ธ์ž๋กœ ๋„˜๊ฒจ์ฃผ๋ฉด, ๋’ค์ง‘์€ ๋ชจ์–‘์ด num๊ณผ ๋˜‘๊ฐ™์€์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ์„ธ์š”. num: ์ˆซ์ž return: true or false (๋’ค์ง‘์€ ๋ชจ์–‘์ด num์™€ ๋˜‘๊ฐ™์€์ง€ ์—ฌ๋ถ€) ์˜ˆ๋ฅผ ๋“ค์–ด, num = 123 return false => ๋’ค์ง‘์€ ๋ชจ์–‘์ด 321 ์ด๊ธฐ ๋•Œ๋ฌธ num = 1221 return true => ๋’ค์ง‘์€ ๋ชจ์–‘์ด 1221 ์ด๊ธฐ ๋•Œ๋ฌธ num = -121 return false => ๋’ค์ง‘์€ ๋ชจ์–‘์ด 121- ์ด๊ธฐ ๋•Œ๋ฌธ num = 10 return false => ๋’ค์ง‘์€ ๋ชจ์–‘์ด 01 ์ด๊ธฐ ๋•Œ๋ฌธ ํ’€์ด ๋ฌธ์ž๋กœ ๋งŒ๋“ค๊ธฐ ์ˆซ์ž๋ฅผ ๋ฐฐ์—ด๋กœ split ํ•˜๊ณ  ๋ฐฐ์—ด์„ ๋’ค์ง‘์–ด์„œ ํ•ฉ์น˜๊ธฐ num๊ณผ ๊ฐ™์€์ง€ ๋น„๊ตํ•˜๊ธฐ ์ž‘์„ฑํ•œ ์ฝ”๋“œ const sameReverse = num => { return num === num.. 2022. 5. 27.
TIL :: Git & GitHub ๊ณผ์ • ์ •๋ฆฌ ์ž์‹ ์˜ github์— justcode ๋ผ๋Š” repository๋ฅผ ๋งŒ๋“ ๋‹ค. ๋‚ด ์ปดํ“จํ„ฐ์—์„œ practice ํด๋” ๋ฐ‘์— justcode-test ๋ผ๋Š” ํด๋”๋ฅผ ๋งŒ๋“ ๋‹ค. cd Desktop // cd : ํ•ด๋‹น ํด๋” ์ง„์ž… cd practice // cd : ํ•ด๋‹น ํด๋” ์ง„์ž… mkdir justcode-test //mkdir : ๋””๋ ‰ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ justcode-test ํด๋”์—์„œ git์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ดˆ๊ธฐํ™” ํ•œ๋‹ค. cd justcode-test // cd : ํ•ด๋‹น ํด๋” ์ง„์ž… git init // init : git ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ (๊นƒ ์‹œ์ž‘) justcode-test ํด๋”์— test.js ํŒŒ์ผ์„ ์ƒ์„ฑ : vi test.js ํ˜น์€ vscode ์—์„œ test.js ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋„ฃ๊ธฐ vi test.js .. 2022. 5. 26.
TIL :: [React] State, Props, Event ํ•™์Šต๋ชฉํ‘œ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์™€ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ํŠน์ง• ๋ฐ Hooks์˜ ํ•„์š”์„ฑ์— ๋Œ€ํ•ด ์ดํ•ดํ•œ๋‹ค. props์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. state์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. useState ํ›…์„ ์‚ฌ์šฉํ•˜์—ฌ React ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. state๋ฅผ ์ด์šฉํ•ด์„œ UI์˜ ๋ณ€๊ฒฝ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฒคํŠธ๋ฅผ ํ†ตํ•ด state๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. props์˜ ๊ฐœ๋…์„ ์ด์šฉํ•ด ๋ถ€๋ชจ ์š”์†Œ์˜ state๋ฅผ ์ž์‹ ์š”์†Œ์—์„œ ๋ฐ˜์˜์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. props์˜ ๊ฐœ๋…์„ ์ด์šฉํ•ด ์ž์‹์—์„œ ์ผ์–ด๋‚œ ์ด๋ฒคํŠธ๋กœ ๋ถ€๋ชจ์˜ state๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. (State ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ) * Event : ์‚ฌ์šฉ์ž๊ฐ€ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์ด๋ฒคํŠธ๋กœ ์ •์˜ํ•ด๋‘” ๊ฒƒ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํ•  ๋งŒํ•œ ์ด๋ฒคํŠธ๊ฐ€ ์ •์˜๋˜์–ด์žˆ๋‹ค. .. 2022. 5. 26.
TIL :: [React ] ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํ™œ์„ฑํ™” useNavigate๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„ค๋น„๊ฒŒ์ดํŒ…(=๋ผ์šฐํŒ…)์„ ํ•˜๊ณ ์ž ํ•  ๋•Œ! ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ main ์ปดํฌ๋„ŒํŠธ๋กœ ์ด๋™ import { Link, useNavigate } from 'react-router-dom'; function LoginSon () { const navigate = useNavigate(); return( { navigate('/main'); }} > ๋กœ๊ทธ์ธ . . . ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ! ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ , id์™€ password์˜ ์กฐ๊ฑด์— ๋งž์ถฐ ๋„˜์–ด ๊ฐ€๊ฒŒ ํ•˜๋Š” ๊ฒƒ๊ณผ ์•ˆ๋„˜์–ด๊ฐ€๊ฒŒ ํ•˜๋Š” ๊ฒƒ import React, { useState } from 'react'; import { Link, useNavigate } from 'react-router-dom'; functio.. 2022. 5. 26.
TIL :: [React] React Router, Sass ํ•™์Šต๋ชฉํ‘œ SPA๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. react-router-dom๋ฅผ ์ด์šฉํ•ด Router Component๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. react-router-dom์—์„œ Routing์„ ํ•˜๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€์™€ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. Component ์™€ tag ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. css ์ „์ฒ˜๋ฆฌ๊ธฐ์˜ ์—ญํ• ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. sass์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฌธ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ cssํŒŒ์ผ์„ scssํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 1. SPA๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. * spa๋ž€?(์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜) : ๋ฉ€ํ‹ฐํ”Œ ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ ์‹ฑ๊ธ€ ํŽ˜์ด์ง€์ด๋‹ค. 2. react-router-dom๋ฅผ ์ด์šฉํ•ด Router Component๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. * react-router ๋ž€? : ๋ฆฌ์•กํŠธ์˜ ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์„ ์œ„.. 2022. 5. 25.
TIL :: code-kata-js / (2) ๋ฌธ์ œ reverse ํ•จ์ˆ˜์— ์ •์ˆ˜์ธ ์ˆซ์ž๋ฅผ ์ธ์ž๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ ์ˆซ์ž๋ฅผ ๋’ค์ง‘์–ด์„œ returnํ•ด์ฃผ์„ธ์š”. x: ์ˆซ์ž return: ๋’ค์ง‘์–ด์ง„ ์ˆซ์ž๋ฅผ ๋ฐ˜ํ™˜! ์˜ˆ๋“ค ๋“ค์–ด, x: 1234 return: 4321 x: -1234 return: -4321 x: 1230 return: 321 ํ’€์ด ์ˆซ์ž๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ - .toString (์ˆซ์ž๋Š” ๊ฑฐ๊พธ๋กœ๊ฐ€ ์•ˆ๋จ) ๋ฌธ์ž์˜ ์š”์†Œ๋ฅผ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ - .split("") ๋ฐฐ์—ด ๊ฑฐ๊พธ๋กœํ•˜๊ธฐ๊ธฐ - .reverse() -๊ฐ€ ๋งจ๋’ค๋กœ๊ฐ€๋‹ˆ๊น -๋นผ๋‚ด์„œ -๋ฅผ ์•ž์œผ๋กœ ๋ณด๋‚ด๊ธฐ ์ฒ˜์Œ ์ž๋ฆฌ์— 0์ด ์˜ค๋ฉด ์ฒ˜์Œ ์ž๋ฆฌ ์—†์• ๊ธฐ ๋ถ„๋ฆฌ ๋˜์–ด์žˆ๋˜ ๋ฐฐ์—ด์„ ์กฐ์ธํ•ด์ฃผ๊ณ , ์ˆซ์ž๋กœ ๋ณ€ํ™˜ ์ž‘์„ฑํ•œ ์ฝ”๋“œ const reverse = x => { // ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. let string = x.toString().sp.. 2022. 5. 25.
TIL :: code-kata-js / (1) ๋ฌธ์ œ twoSumํ•จ์ˆ˜์— ์ˆซ์ž๋ฐฐ์—ด๊ณผ 'ํŠน์ • ์ˆ˜'๋ฅผ ์ธ์ž๋กœ ๋„˜๊ธฐ๋ฉด, ๋”ํ•ด์„œ 'ํŠน์ • ์ˆ˜'๊ฐ€ ๋‚˜์˜ค๋Š” index๋ฅผ ๋ฐฐ์—ด์— ๋‹ด์•„ returnํ•ด ์ฃผ์„ธ์š”. nums: ์ˆซ์ž ๋ฐฐ์—ด target: ๋‘ ์ˆ˜๋ฅผ ๋”ํ•ด์„œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ํ•ฉ๊ณ„ return: ๋‘ ์ˆ˜์˜ index๋ฅผ ๊ฐ€์ง„ ์ˆซ์ž ๋ฐฐ์—ด ์˜ˆ๋ฅผ ๋“ค์–ด, nums์€ [4, 9, 11, 14] target์€ 13 nums[0] + nums[1] = 4 + 9 = 13 ์ด์ฃ ? ๊ทธ๋Ÿฌ๋ฉด [0, 1]์ด return ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. # ๊ฐ€์ • target์œผ๋กœ ๋ณด๋‚ด๋Š” ํ•ฉ๊ณ„์˜ ์กฐํ•ฉ์€ ๋ฐฐ์—ด ์ „์ฒด ์ค‘์— 2๊ฐœ ๋ฐ–์— ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ’€์ด nums[0] + nums[1] === target nums[0] + nums[2] === target nums[0] + nums[3] === target nums.. 2022. 5. 24.
TIL :: JavaScript / replit. 25~30 โ25. Class โ—‰ Class ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€, ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ์ฒด๋“ค๋กœ ๊ตฌ์„ฑํ•˜๊ณ , ๊ฐ์ฒด๋“ค ๊ฐ„์— ์„œ๋กœ ์ƒํ˜ธ ์ž‘์šฉ ํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋„ค, ์„ค๋ช…์ด ์กฐ๊ธˆ ์–ด๋ ค์šด๋ฐ์š”. JavaScript๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์ค‘์‹ฌ์— ์žˆ๋Š” ์–ธ์–ด๋Š” ์•„๋‹ˆ์ง€๋งŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์žˆ์–ด์„œ Class, ๊ฐ์ฒด, ๊ฐ์ฒด์ง€ํ–ฅ์€ ํ•ญ์ƒ ์ค‘์š”ํ•œ ์ฃผ์ œ์ž…๋‹ˆ๋‹ค. '๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ' ์ด๋ผ๋Š” ๋‹จ์–ด์—์„œ '๊ฐ์ฒด'๋Š” ์•ž์„œ ๋ฐฐ์› ๋˜ { num: 1 } ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋งํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ์ฒด๋Š” ์˜์–ด๋กœ object, ๋ง๊ทธ๋Œ€๋กœ ์‚ฌ๋ฌผ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ํด๋ž˜์Šค๋Š” ๊ฒฐ๊ตญ { num: 1 } ์ฒ˜๋Ÿผ ์ƒ๊ธด ๊ฐ์ฒด(object)๋ฅผ ์ž˜ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ํ‹€์€ ๋งž์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๋•Œ์˜ ๊ฐ์ฒด๋Š” ํŠน์ • ๋กœ์ง์„ ๊ฐ–๊ณ  ์žˆ๋Š” ํ–‰๋™(method)์™€ ๋ณ€.. 2022. 5. 18.
TIL :: DOM + Event ์•„๋ž˜ ์ด๋ ฅ์„œ ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€์„œ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•„๋ž˜ ๊ณผ์ œ๋ฅผ ์ง„ํ–‰ํ•œ ํ›„ ๊ตฌ๊ธ€ ํด๋ž˜์Šค๋ฃธ์— ์ œ์ถœํ•ด์ฃผ์„ธ์š”. https://hyunseob.github.io/resume/ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ console ํŒจ๋„์—์„œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์บก์ณํ•ด์„œ ์ œ์ถœํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค! ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช์–ด ์ฝ”๋“œ๊ฐ€ ์ง€์ €๋ถ„ํ•˜๋‹ค๋ฉด ๊ทธ ์ฝ”๋“œ ๊ทธ๋Œ€๋กœ! ์บก์ณํ•ด์„œ ์˜ฌ๋ ค์ฃผ์„ธ์š”! ํžŒํŠธ1 : element ํŒจ๋„์—์„œ DOM์—์„œ ์ ‘๊ทผํ•˜๊ณ ์ž ํ•˜๋Š” ์š”์†Œ์˜ className์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”. ๊ณผ์ œ 1. ์•„๋ž˜์™€ ๊ฐ™์ด ์ƒ๋‹จ์˜ ์„ค๋ช… ๋ถ€๋ถ„์˜ ๊ธ€์ž๋ฅผ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ์„ธ์š”. ๊ณผ์ œ 2. ๊ธ€์ž์ƒ‰์„ ๋ฐ”๊พผ ๋ถ€๋ถ„์„ ํด๋ฆญํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ alert ์ฐฝ์ด ๋œจ๋„๋ก ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”. ๋‚˜์˜ ํ’€์ด const a = document.getElementsByClassName('big-paragraph')[0]; .. 2022. 5. 17.