๐ | 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. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ยทยทยท 13 ๋ค์ ๋ฐ์ํ