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

๐ŸŒŒ | WEB DEV115

[React] 0. React๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  & ์ดˆ๊ธฐ ์„ธํŒ… ํ˜„์žฌ ์›น ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์‹œ์žฅ์—์„œ ์›ํ•˜๋Š” React์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž! 1. React๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์žฅ์  1_ ๋ฆฌ์•กํŠธ๋Š” SPA(Single Page Application)๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๋ชจ๋ฐ”์ผ ์–ดํ”Œ์ฒ˜๋Ÿผ ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•˜์ง€ ์•Š๊ณ  ํŽ˜์ด์ง€ ์ „ํ™˜ ๋“ฑ์ด ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๊ตฌํ˜„์ด ๋˜๋„๋ก ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ก  Vanilla JS๋กœ๋„ SPA๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ React๋ฅผ ์ด์šฉํ•˜๋Š” ์ชฝ์ด ํ›จ์”ฌ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์žฅ์  2_ Html์˜ ์žฌ์‚ฌ์šฉ์ด ํŽธ๋ฆฌํ•ด์ง„๋‹ค. html์„ ํ•จ์ˆ˜, array, object ๋“ฑ์— ๋‹ด์•„์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์‚ฌ์šฉ์ด ํŽธ๋ฆฌํ•˜๋‹ค. ์žฅ์  3_React Native๋ฅผ ์ด์šฉํ•ด ๋ชจ๋ฐ”์ผ ์–ดํ”Œ ๊ตฌํ˜„๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋Ÿฌํ•œ ์žฅ์ ๋“ค ๋ฟ์•„๋‹ˆ๋ผ ์‹œ์žฅ์ด ๊ฐ€์žฅ ์š”๊ตฌํ•˜๋Š” ๊ธฐ์ˆ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์›น ๊ฐœ๋ฐœ์ž๋กœ์„œ.. 2023. 5. 5.
[WEB] ํ† ํฐ (Token) 1. ์ธ์ฆ(Authentication)๊ณผ ์ธ๊ฐ€(Authorization) ์ธ์ฆ๊ณผ ์ธ๊ฐ€๋Š” ์–ธ๋œป ๋น„์Šทํ•˜์ง€๋งŒ ๋ช…ํ™•ํžˆ ๋‹ค๋ฅธ ๋‹จ์–ด์ด๋‹ค. ์ธ์ฆ์€ '๋กœ๊ทธ์ธ' ๊ทธ ์ž์ฒด์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์ฆ‰, ์‚ฌ์ดํŠธ์— ํŠน์ • ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž์ž„์„ ๊ณ ์œ  ID, pw ๋“ฑ์„ ํ†ตํ•ด์„œ ์ธ์ฆ์„ ๋ฐ›๋Š” ๊ฒƒ์ด๋‹ค. ์ธ๊ฐ€๋Š” ๋กœ๊ทธ์ธ์ด '์œ ์ง€๋˜๋Š” ์ƒํƒœ์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ'์ด๋‹ค. ์ธ์ฆ์„ ๋ฐ›์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ดํŠธ ๋‚ด์—์„œ '์ž์‹ ์˜ ๊ณ„์ •์œผ๋กœ๋งŒ' ํ•  ์ˆ˜ ์žˆ๋Š” ํ™œ๋™์„ ํ•  ๋•Œ ์‚ฌ์ดํŠธ์—์„œ ํ—ˆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ž๊ธฐ ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋ คํ•  ๋•Œ ์–ด์„ผํ‹ฑ์ผ€์ด์Žค!! ์‘ ์–ด์„œ์™€๋ผ์ด์ œ์ด์…˜~ -์–„์ฝ”์Œค 2. JWT(JSON Web Token) 1) ์„œ๋ฒ„์—์„œ ์•Œ์•„์•ผํ•˜๋Š” ๊ฒƒ์€? JWT๋Š” ์ธ๊ฐ€์— ๊ด€๋ จ๋œ ๊ธฐ์ˆ ์ด๋‹ค. ์–ด๋–ค ์‚ฌ์ดํŠธ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์šฉํ•  ๋•Œ์—๋Š” 'ํ•ด๋‹น ์œ ์ €๊ฐ€ ๋กœ๊ทธ์ธํ•œ ์ƒํƒœ์ธ์ง€ ์•„๋‹Œ์ง€.. 2023. 5. 4.
[Electron] 1. Electron์— React ํƒ‘์žฌํ•˜๊ธฐ! 2023.05.01 - [๐ŸŒŒ | WEB DEV/Electron] - [Electron] 0. Electron์ด๋ž€? & ์ดˆ๊ธฐ์„ค์ • Electron์€ JS๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ์ด๊ธฐ ๋•Œ๋ฌธ์— React ์—ญ์‹œ ํ•จ๊ป˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ €๋ฒˆ ํฌ์ŠคํŠธ์—์„œ ์ง„ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ์— React๋ฅผ ํƒ‘์žฌํ•ด๋ณด์ž! 1. React ํŒจํ‚ค์ง€ ์ถ”๊ฐ€ํ•˜๊ธฐ npm install --save react react-dom ์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋œ ๊ฒฝ์šฐ package.json์—๋Š” ์ด์ฒ˜๋Ÿผ ์ถ”๊ฐ€๊ฐ€ ๋œ๋‹ค. "dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0", } 2. ์†Œ์ŠคํŒŒ์ผ ๋งŒ๋“ค๊ธฐ main_react๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ jsํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์˜€๋‹ค. (์ด๋ฆ„์€ ์ž„์˜ ์ž‘์„ฑ) main_react.js import Reac.. 2023. 5. 2.
[Electron] 0. Electron์ด๋ž€? & ์ดˆ๊ธฐ์„ค์ • JS ๊ธฐ๋ฐ˜์œผ๋กœ ํฌ๋กœ์Šคํ”Œ๋žซํผ ๋ฐ์Šคํฌํ†ฑ ์•ฑ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ธ Electron์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž! 1. ์†Œ๊ฐœ Electron์€ JS, HTML, CSS๋ฅผ ํ™œ์šฉํ•ด์„œ ํฌ๋กœ์Šคํ”Œ๋žฉํผ ๋ฐ์Šคํฌํ†ฑ ์•ฑ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. 2013๋…„ Atom Editor๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‹œ์ž‘๋œ Atom Shell์—์„œ ์‹œ์ž‘ํ•˜์˜€๊ณ  2015๋…„ ๊ทธ ๋ช…์นญ์ด ํ˜„์žฌ์˜ Electron์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค. Electron์˜ ์•„ํ‚คํ…์ณ๋Š” ๋ฐฑ์—”๋“œ์˜ ๊ฒฝ์šฐ Node.js, ํ”„๋ก ํŠธ์—”๋“œ์˜ ๊ฒฝ์šฐ Chromium ์ด๋ผ๋Š” ๊ตฌ๊ธ€ Chrome ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋”ฐ๋ผ์„œ Web ๊ธฐ๋ฐ˜์˜ ๊ธฐ์ˆ ์€ Chromium์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  OS ๊ธฐ๋ฐ˜ ๊ธฐ๋Šฅ์€ Node.js์—์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๋Š” Atom Editor, V.. 2023. 5. 1.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (26)_ ์ ‘๊ทผ์ž ํ”„๋กœํผํ‹ฐ์™€ privateํ•„๋“œ JS์˜ ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ ์ค‘ ์ ‘๊ทผ์ž ํ”„๋กœํผํ‹ฐ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž! 1. ์ ‘๊ทผ์ž ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ์ž ํ”„๋กœํผํ‹ฐ๋Š” ์Šค์Šค๋กœ ๊ฐ’์„ ๊ฐ–์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์„ ์ฝ๊ฑฐ๋‚˜(get) ์ €์žฅํ•  ๋•Œ(set) ์‚ฌ์šฉํ•œ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋„ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๊ณ  getterํ•จ์ˆ˜, setterํ•จ์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค! getter - ๋ฐ˜๋“œ์‹œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค. - ํŠน์ • ํ”„๋กœํผํ‹ฐ๋ฅผ ์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ€๊ณตํ•˜์—ฌ ๋‚ด๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. setter - ํŠน์ • ํ”„๋กœํผํ‹ฐ์— ๊ฐ’์ด ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹์„ ์กฐ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ œ์•ฝ์‚ฌํ•ญ์„ ์ ์šฉํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. - ํ•˜๋‚˜์˜ ์ธ์ž๋ฅผ ๋ฐ›๋Š”๋‹ค. ์‚ฌ์šฉ๋ฐฉ๋ฒ• ๋ฐฉ๋ฒ• 1) ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹ ์˜ˆ์‹œ 1) ๋ฌผ์ฒด์˜ ๊ธธ์ด ๋‹จ์œ„ (์ธ์น˜์™€ ์„ผํ‹ฐ๋ฏธํ„ฐ) const obj1 = { inch : 1, get cm() { return this.inch * 2.54; }, .. 2023. 4. 10.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (25)_ ํด๋ž˜์Šค 2023.03.31 - [๐ŸŒŒ | WEB DEV/Vanilla JS] - JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (24)_ ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์ €๋ฒˆ์— ๋‹ค๋ฃจ์—ˆ๋˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์ด์–ด์„œ ์ด๋ฒˆ์—๋Š” ํด๋ž˜์Šค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž! 1. ํด๋ž˜์Šค // ํด๋ž˜์Šค class Player { constructor(name, job){ this.name = name; this.job = job } info () { return `์†Œํ™˜์‚ฌ๋ช… : ${this.name} | ์ง์—…๊ตฐ : ${this.job}`; } } const player1 = new Player('Kassid', '์ „์‚ฌ'); const player2 = new Player('Nyang', '๋งˆ๋ฒ•์‚ฌ'); console.log(player1, player1.info()); console.log(playe.. 2023. 4. 2.
JS_๊ธฐ์ˆ  (3)_ Hoisting(ํ˜ธ์ด์ŠคํŒ…) ๋ฟŒ์ˆ˜๊ธฐ JS์˜ ํ˜ธ์ด์ŠคํŒ…์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณด์•˜๋‹ค! 1. ํ˜ธ์ด์ŠคํŒ…์ด๋ž€? ( 1 ) ํ˜ธ์ด์ŠคํŒ…(Hoisting)์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ JavaScript์—์„œ ํ˜ธ์ด์ŠคํŒ…(hoisting)์ด๋ž€, ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์„ ์–ธ ์ „์— ๋ฏธ๋ฆฌ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. - MDN (https://developer.mozilla.org/ko/docs/Glossary/Hoisting) MDN ๋ฌธ์„œ์—์„œ๋Š” ์œ„์™€ ๊ฐ™์ด ๋ฒˆ์—ญ์„ ํ•˜์˜€๋‹ค. ์ฆ‰, JS์˜ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ฝ๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜, ์ƒ์ˆ˜, ํ•จ์ˆ˜ ๋“ฑ์„ ๋ชจ๋‘ ๋ฏธ๋ฆฌ ํ• ๋‹น์„ ํ•˜๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค. ๊ธ€์˜ ๋ณธ๊ฒฉ์ ์ธ ์‹œ์ž‘์— ์•ž์„œ ๋ชจ๋“  ์‹๋ณ„์ž(๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค ๋“ฑ)๋Š” ํ˜ธ์ด์ŠคํŒ…์ด ๋œ๋‹ค! ( 2 ) var์˜ ํŠน์ง• JS์—์„œ ๋ณ€์ˆ˜, ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 1.var .. 2023. 3. 31.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (24)_ ์ƒ์„ฑ์ž ํ•จ์ˆ˜ 1. ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ํ•จ์ˆ˜๋Š” ์žฌ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ๋ฌถ๋Š” ๊ฒƒ ์™ธ์—๋„ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. โ€ป function์œผ๋กœ ์„ ์–ธ๋œ ํ•จ์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ ๊ธฐ๋Šฅ์„ ๊ฐ–๋Š”๋‹ค. ์˜ˆ์‹œ) ๊ฐ์ฒด ์ƒ์„ฑ const student1 = { name : 'Sam', idNum : 20, say () { return `์•ˆ๋…•ํ•˜์„ธ์š”. ${idNum}๋ฒˆ ${name}์ž…๋‹ˆ๋‹ค.`; } }; const student2 = { name : 'Tom', idNum : 25, say () { return `์•ˆ๋…•ํ•˜์„ธ์š”. ${idNum}๋ฒˆ ${name}์ž…๋‹ˆ๋‹ค.`; } }; ์œ„์™€ ๊ฐ™์ด ๋น„์Šทํ•œ ํ˜•ํƒœ์˜ ๊ฐ์ฒด๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค์–ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์ƒ์„ฑ Ru.. 2023. 3. 31.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (23)_ ๊ฐ์ฒด + 2022.02.10 - [๐ŸŒŒ | WEB DEV/Vanilla JS] - JS_๊ธฐ๋ณธ๋ฌธ๋ฒ• (3)_๊ฐ์ฒด ๊ธฐ์กด์— ๋‹ค๋ฃจ์—ˆ๋˜ JS์˜ ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ ๋” ์•Œ์•„๋ณด์ž! 1. ๊ฐ์ฒด ์ƒ์„ฑ & ์ ‘๊ทผ ์˜ˆ์ „ ํฌ์ŠคํŠธ์—์„œ ๋‹ค๋ฃจ์—ˆ๋˜ ๋Œ€๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•์€ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 1) ์‹๋ณ„์ž ๋ช…๋ช… ๊ทœ์น™์—์„œ ๋ฒ—์–ด๋‚œ ํ‚ค ์ด๋ฆ„์— ์ ‘๊ทผ const obj = { 'ab-1' : 100, 'c d' : 'Hello' }; console.log( obj['ab-1'], obj['c d'] ); >>> 100 >>> 'Hello' ์œ„์ฒ˜๋Ÿผ ๋ช…๋ช… ๊ทœ์น™์„ ์–ด๊ธด ๊ฒฝ์šฐ์—๋„ ' '(๋”ฐ์˜ดํ‘œ)๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‚ค ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ์ด๋ฅผ ๋Œ€๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. 2) ํ‘œํ˜„์‹์— ์ด์šฉ ์—ฐ์‚ฐ์„ ํ•˜์—ฌ ํ‚ค๊ฐ’์œผ๋กœ ์„ค์ •์„ ํ•  ๊ฒฝ์šฐ์—๋„ ๋Œ€๊ด„ํ˜ธ๋ฅผ ์ด์šฉํ•œ๋‹ค. let id.. 2023. 3. 26.
๋ฐ˜์‘ํ˜•