์์ ์ ์ธ์ ๊ฐ ๋ฉด์ ์ ๋ณด๋ฉด์ ๋ค์๋ ์ง๋ฌธ ์ค์ ํ๋์ด๋ค. "typescript์์ type๊ณผ interface์ ์ฐจ์ด์ ์ ์์๋์?" ๊ณตํต์ typeํ์
์ ๋ํ ์ด๋ฆ์ ์ง์ด์ฃผ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. type Home { living : string; bed : string;} interfacetype๊ณผ ๋์ผํ๊ฒ ํ์
์ ๋ํ ์ด๋ฆ์ ์ง์ด์ฃผ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. interface Home{ living: string; bed: string;} ๋ ๋ค ํ์
์ ์ง์ ํ๋ ๋ฐฉ๋ฒ ์ค์ ํ๋๋ก ๊ต์ฅํ ์ ์ฌํ๋ค. ๋ ์ค์ ํ๋๋ง ์ ํํด์ ์ฌ์ฉํด๋ ๋์ง๋ง ์ฐจ์ด์ ๋ ์กด์ฌํ๋ค. ์ฐจ์ด์ 1. ํ์ฅ ๋ฐฉ์ ๋น๊ต interface ๋ extends๋ผ๋ ๊ฒ์ ์ฌ์ฉํด์ ํ์ฅํ ์ ์๋ค. ๊ธฐ์กด์ interface์ ์ถ๊ฐํด์ ํ์ฅ๋๋ค. i..
๊ฐ๋ฐ/JavaScript
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์ฌ์ฉํ๋๋ฐ ์ด์ฉ๋๋ ๋ฐฐ์ด๊ณผ ์ด๋ฅผ loop์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด์ forEach()์ map()์ ์ฃผ๋ก ์ฌ์ฉํ๋ค. forEach()Array ์ธ์คํด์ค forEach() ๋ฉ์๋๋ ์ํ ๋ฉ์๋๋ก ๊ฐ ๋ฐฐ์ด ์์์ ๋ํด ์ ๊ณต๋ ์ฝ๋ฐฑ ํจ์๋ฅผ ํ ๋ฒ์ฉ ์คํํ๋ค.๋ฐํ ๊ฐ์ ์ฌ์ฉ๋์ง ์๋๋ค.ํธ์ถ๋๋ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ์ง ์์ง๋ง, ์ฝ๋ฐฑ ํจ์๋ก ์ ๊ณต๋๋ ํจ์๋ ๋ณ๊ฒฝ ํ ์ ์๋ค.๊ทธ๋ฌ๋ ๋ฐฐ์ด์ length๋ ์ฝ๋ฐฑํจ์๋ฅผ ์ฒ์ ํธ์ถํ๊ธฐ ์ ์ ์ ์ฅ๋๋ค๋ ์ ์ ์ ์ํด์ผํจ.๊ทธ๋ฆฌ๊ณ ๋ฃจํ๋ฅผ ์ค์งํ๊ฑฐ๋ ์ค๋จํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค. const array1 = ['a', 'b', 'c'];array1.forEach((element) => console.log(element));// Expected output: "a"..
๋ ๊ฐ์ง ๋ชจ๋ ์ด๋ฒคํธ ๋ฐ์์์ ์ฌ์ฉ๋๋ ๊ฒ์ ๋ง์ด ๋ดค์ ๊ฒ์
๋๋ค. ๋ ๋ค ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ์ค๋จ์ํค๋ ์ฝ๋๋๋๋ค. ํ์ง๋ง ๋ค๋ฅธ ์ ์ด ์๋ต๋๋ค. ๊ทธ๊ฒ์ ๋ฐ๋ก ์ด๋ฒคํธ ์ ๋ฌ๋ฐฉ์์ ๋ฐ๋ผ์ ์ฌ์ฉ๋๋ค๋ ๊ฒ์
๋๋ค. e.preventDefault() ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ณ ์ ์ ์ด๋ฒคํธ ๋์์ ์ค๋จ์ํต๋๋ค. e.stopPropagation() ์ค์ฒฉ๋์ด์๋ ์๋ฆฌ๋จผํธ๋ค ์ค์์ ํ์์์ ์์๋ก ์ด๋ฒคํธ๊ฐ ์ ๋ฌ๋๋ ๊ฒ์ ์ค๋จ์ํต๋๋ค. ์ฆ, ๊ณ ์ ์์ ๋ง์ ์ด๋ฒคํธ๋ง์ ๊ฐ์งํ๋๋กํฉ๋๋ค.
๐ก localStorage vs Cookie ๋ง๋ฃ์๊ฐ ์ค์ ํ๊ธฐ ๋ก๊ทธ์ธํ ๋ jwt web token์ ๋ฐ์์ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅํด ๋๊ณ api ํธ์ถ์ ํ ๋๋ง๋ค ๊บผ๋ด ์ธ ๋๊ฐ ๋ง๋ค. ๋ฐ๋ก ๋ง๋ฃ์๊ฐ์ ์ ํด๋๊ณ ์ฐ์ง๋ ์์๋๋ฐ, ์ด๋ฒ์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ก์ง์ด ์์ ๋๊ณ ํ๋ฉด์ ํ ํฐ ์์ฒด๋ฅผ ์ง์๋ด์ ์๋๋ก๊ทธ์์์ ์์ผ๋ฒ๋ ค์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ๋ค. ๊ทธ๋์ ๋ ๊ณ ๋ฏผ์ ๋น ์ก๋ค. ์๋ localStorage์ ํ ํฐ์ ์ ์ฅํด๋๊ณ ์ฌ์ฉํ๋๋ฐ, localStorage์ ์ ์ฅํ์ง ์๊ณ ์ฟ ํค๋ sessionStorage์ ์ ์ฅํด์ ๋ง๋ฃ ์๊ฐ์ ์ค์ ํด์ผ ํ๋ ๊ฑธ๊น? ๋ผ๋ฉฐ ์ด๋ฆฌ์ ๋ฆฌ ๊ฒ์์ ํด๋ณด์๋ค. ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ๋ง๋ฃ์๊ฐ์ ์ ์ฅํด์ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ๋ ์์๋ค. ๊ทธ๋์ ๋ ๋ค๋ฅธ ๊ณ ๋ฏผ์ ๋น ์ก๋ค. ์ด๋ค ๊ฒ ๋ ์ข์ ๋ฐฉ๋ฒ์ผ๊น? ..
๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ์๋ก ๋ง๋ค ๊ธฐํ๊ฐ ์์ด์ ์ด๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์จ์ผํ๋ ๋ผ๋ฉฐ ๊ณ ๋ฏผํ๋ค๊ฐ ํ์
์คํฌ๋ฆฝํธ๋ ๋ฐฐ์ ํ๊ฒ ๋์๊ณ ๊ทธ ์์์๋ js ์ jsx ๋ ์ค์ ๋ญ๊ฐ ๋ ๋ซ๋? ๋ญ๊ฐ ๋ค๋ฅด์ง? ๋ผ๋ ์๋ฌธ์ด ๋ค์๋ค. ๋งจ๋ ๋๊ฐ ์ฐ๋๊ฑฐ ๊ทธ๋๋ก ์ฐ๊ณ jsx๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ฅ๋ฌธ๋ฒ์ด๋ผ๋ ์ ๋๋ง ์์๋ค. ๊ทธ๋ ๋ค๋ณด๋ ๋ฌธ๋ฒ๋ ํฌ๊ฒ ๋ค๋ฅด์ง ์๊ณ ์ ํํ ์ฐจ์ด์ ์ ์์ง ๋ชป ํ๋ค. jsx javascript ์ ํ์ฅ ๋ฌธ๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ ์์์ HTML ๋ฌธ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค. ์ฃผ๋ก ๋ฆฌ์กํธ ๊ฐ์ ํ๋ก ํธ์๋ ํ๋ ์์ํฌ์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค ์ฌ์ค, ๋
ผ์์ด ์๊ธดํ์ง๋ง js๋ jsx๋ ํฌ๊ฒ ์ฐจ์ด๊ฐ ์๋ค๋ ์ ์์ ์ค์ํ ์ ์ด ์๋๋ผ๋ ์๊ฒฌ๋ ์ง๋ฐฐ์ ์ด๋ค. jsx๋ฅผ ์ฐ๋ฉด ui์ ์ธ ๋ฉด์์ ์ง๊ด์ ์ผ๋ก ์ธ ์ ์๋ค๋ ์ ๋? ์์ํ js๊ฐ ์๋๋ผ๋ ์ ~ ..
์น ๊ฐ๋ฐ์์ API๋ฅผ ํธ์ถํ๊ธฐ ์ํด์ ์ ์ผ ๋จผ์ ๋ ์ค๋ฅด๋ ๊ฒ์ด request, axios, jQuery ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ํ์ง๋ง ์ด์ ๋ธ๋ผ์ฐ์ ๊ฐ fetch() ํจ์๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ๋ค(bundle)ํ์ผ์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๋ ๋ญ๋น๋ฅผ ํ์ง ์์๋ ๋๋ค. ๋ฌผ๋ก ๋๋ ์ฃผ๋ก reactJs, nextJs ๋ก ์์
ํ๊ธฐ ๋๋ฌธ์ axios๋ฅผ ์จ์ ํธ์ถํ๋ค. ๊ทธ๋ฌ๋ค ์ด๋ฒ์ ์ด๋ฏธ์ง url์์ ํ์ผ์ ์ถ์ถํ๊ธฐ ์ํด์ fetch ํจ์๋ฅผ ์จ์ response๋ฅผ ๋ฐ์์ฌ ์ผ์ด ์์๋ค. ๋ฐฉ๋ฒ์ ์ฐพ์์ ์์๋ณด๋ค๊ฐ fetchํจ์๋ฅผ ์ด๋ ๊ฒ ์ธ ์ ์๋ค๋ ๊ฒ๋ ์๊ฒ ๋์๋ค. ๊ฒธ์ฌ๊ฒธ์ฌ- fetch์ ๋ํด ์์๋ณด๊ณ ๊ณต๋ถํ๋ ค๊ณ ํ๋ค. ๐ข Fetch ๋ฅผ ์์! fetch() ํจ์๋ ๋คํธ์ํฌ ์์ฒญํ๊ณ ์๋ต์..
npm install qs Content-Type ์ด๋? api ์ฐ๋ ์์ ์์์ ๋ณด๋ผ ๋, ๊ทธ ์์์ ๋ช
์ํ๊ธฐ ์ํด์ ์ฌ์ฉํฉ๋๋ค. body์ ๋ค์ด๊ฐ ๋ด์ฉ์ header์์ ๋ช
์ํด์ฃผ๋ ๊ฒ์
๋๋ค. ์ด ์ค์์๋ ์ฌ๋ฌ ๊ฐ์ง ํ์
์ผ๋ก ๋๋๋๋ฐ, Textํ์
์ผ๋ก๋ text/css, text/javascript, text/html, text/plain ๋ฑ file์ ์ค์ด๋ณด๋ด๊ธฐ ์ํด์๋ multipart/form-data๊ฐ ์๊ณ Application ํ์
์ผ๋ก๋ application/json, application/x-www-urlencoded๊ฐ ์์ต๋๋ค. REST API๋ฅผ ์ฐ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ฌ ๋ ์ฃผ๋ก application/json, ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋, multipart/form-data๋ฅผ ์ฌ์ฉํ์์ต๋๋ค ์ด๋ฒ์ ..
1์ฐจ์ ๋ฐฐ์ด์์ ์ค๋ณต์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ๋ค์ํ๋ค! set, filter, reduce ๋ฑ ์ํฉ์ ๋ฐ๋ผ์ ๋ค์ํ๊ฒ ์ธ ์ ์๋๋ฐ, ํ๋ก์ ํธ๋ฅผ ํ๋ค๊ฐ ๋ฐฐ์ด ์ค๋ณต ์ ๊ฑฐ ํ ์ผ์ด ์์๋๋ฐ, ์๋ฌด๋ฆฌ ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํด๋ ํด๊ฒฐ์ด ์๋๋๊ฒ์ด๋ค!! ใ
ใ
1์ฐจ์ ๋ฐฐ์ดํ๋ฏ์ด ํ๋ฉด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ, ์ฌ๊ฑธ?!? ์๋ set, filter, indexOf ๋ฑ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ํด๊ฒฐํ ์ ์๋ค. ๋จ์ง 1์ฐจ์ ๋ฐฐ์ด๋ณด๋ค ์ด์ง ์ฝ๋๊ฐ ๋ณต์กํด์ง ๋ฟ์ด๋ค. ๊ณ์ set์ผ๋ก ์๋ํ์๋๋ฐ....ใ
ใ
....๋ด ์๊ฐ ... ใ
..... ์ฐ์ , 2์ฐจ์ ๋ฐฐ์ด์ 1์ฐจ์ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ค์ผํ๋ค. let a = [ [1, 2], [3, 4], [5, 6], [3, 4], ]; function arr(_arr) { return [...new Set(_..
ํ์์ ์ํด์ ๊ตฌ๊ธ๋ง์ ์์ฒญํด์ ์ฐพ์๋ธ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ ๋งต! ใ
ใ
365์ผ์ ์ด๋ก ํ์ฐํด์ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ด๋ค. export const mapTime = timestamp => { const seconds = Math.floor((new Date() - timestamp * 1000) / 1000); // ํ์ฐ๋ ์ด๋ฅผ 365์ผ์ ์ด๋ก ํ์ฐํ ๊ฒ์ผ๋ก ๋๋๋ค~ let interval = Math.floor(seconds / 31536000); if (interval > 1) { return `${interval} years`; } interval = Math.floor(seconds / 2592000); if (interval > 1) { return `${interval} months`; } interva..
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐ์ดํฐ ์์ค๋ฅผ ํฌ๊ฐ 3๊ฐ์ง๋ก ๋๋ ๋ณด์๋ฉด ํ๋ก๊ทธ๋จ ์์ฒด์ ์ ์ ์ด์ ๋ฐ๋ก ๋ฐ์์จ ๊ฒ UI์์ ๋ฃ์ด์จ ์์ค (from DOM) WEB Api๊ฐ์ ์ธ๋ถ์์ fetchํ ์์ค ์ด๋ ๊ฒ ์ด 3๊ฐ์ง์ ์์ค์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์๋ ์ด 4๊ฐ์ง๊ฐ ์๋ค. ์ฌ๊ธฐ์๋ ๋ช ๊ฐ์ง ๊ธฐ์ค์ด ์๋๋ฐ, ๋จ์ํ ๋ฆฌ์คํธ๊ฐ ํ์ํ๊ฑด์ง, ์๋๋ฉด key, value ๊ฐ์ด ํ์ํ๊ฑด์ง ์๊ฐ์ ํด์ ๊ธฐ์ค์ ๋ง์ถ์ด์ ์ฐ๋ฉด ๋๋ค. ์ ์ฅ๋ฐฉ์์ Array, Set, Object, Map ์ด 4๊ฐ์ง์ด๋ค. ์ฌํํ ๋ฆฌ์คํธ๊ฐ ํ์ํ๋ค๋ฉด array์ set์ ์ด์ฉํด์ ์ ์ฅํ๋ฉด ๋๋ค. Array color = [‘red’, ‘gold’, ‘red’]; //{ ‘red’, ‘gold’, ‘red’} ๐ ๋ฐ๋ณต๋๋ ๊ฐ์ด ๋ฆฌ์คํธ์ ํฌํจ์ด ๋ ์๋ ์..