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

js47

[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.
JS_๊ธฐ์ˆ  (2)_ IIFE(์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ ํ‘œํ˜„) JS์—์„œ ์‚ฌ์šฉํ•˜๋Š” IIFE์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. ์˜ค๋Š˜๋‚ ์—๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ๊ณผ๊ฑฐ์— ์‚ฌ์šฉํ–ˆ๋˜ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•Œ์•„๋ณด์ž! 1. IIFE๋ž€? ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ ํ‘œํ˜„(Immediately Invoked Function Expression, IIFE)์€ ์ •์˜๋˜์ž๋งˆ์ž ์ฆ‰์‹œ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ๊ตฌ์กฐ (function() { ... }) (); Self-Executing Anonymous Function ์œผ๋กœ ๋ถˆ๋ฆฌ๋Š” ๋””์ž์ธ ํŒจํ„ด์ด๋ผ๊ณ  ํ•œ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ๋‘ ๊ฐœ์˜ ๊ด„ํ˜ธ์— ์ฃผ๋ชฉ์„ ํ•ด์•ผํ•œ๋‹ค. ๋จผ์ €, ์ต๋ช…ํ•จ์ˆ˜๋ฅผ ๋‘˜๋Ÿฌ์‹ผ ๊ด„ํ˜ธ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด์„œ ์ „์—ญ Scope์˜ ๋ถˆํ•„์š”ํ•œ ๋ณ€์ˆ˜๋“ค์— ์˜ํ•œ ์˜ค์—ผ ๋ฐฉ์ง€์™€ IIFE ๋‚ด๋ถ€ ์•ˆ์œผ๋กœ ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋“ค์ด ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ๋‹ค์Œ์œผ๋กœ๋Š” ํ›„๋ฏธ์— ์œ„์น˜ํ•˜๋Š” ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜.. 2023. 3. 16.
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ• (22)_ ๋งค๊ฐœ๋ณ€์ˆ˜ (๊ธฐ๋ณธ๊ฐ’, arguments, ๋‚˜๋จธ์ง€ ๋ณ€์ˆ˜, ์ด์ƒ์ ์ธ ํ•จ์ˆ˜?) JS ๋‹ค๋ฃจ๋Š” ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด์ž. 1. ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐœ์ˆ˜๋ณด๋‹ค ๋งŽ์ด ๊ฐ’์„ ์ „๋‹ฌํ•œ ๊ฒฝ์šฐ ์˜ˆ์‹œ 1) ๋‘ ๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›๋Š” ํ•จ์ˆ˜์ด๋‹ค. function sum(a, b){ return a + b; } console.log( sum(1, 2), sum(1, 2, 3), sum(1, 2, 3, 4) ); >>> 3 3 3 ์œ„์˜ ๊ฒฐ๊ณผ์ฒ˜๋Ÿผ JS์—์„œ๋Š” ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋‹ค๋ฅด๊ฒŒ ํ•จ์ˆ˜ ์ •์˜ ์‹œ ์„ค์ •ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๋ณด๋‹ค ๋งŽ์ด ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒฝ์šฐ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ’์„ ๋ฐ›์€ ํ›„ ๋‚˜๋จธ์ง€๋Š” ๋ฌด์‹œํ•˜๋ฉฐ ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š๊ณ  ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 2. ๊ธฐ๋ณธ๊ฐ’ ๊ธฐ๋ณธ๊ฐ’(default parameter)์€ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๊ฐ’์ด ๋“ค์–ด์˜ค์ง€ ์•Š์•„๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. function sum(a = 0, b = 0){ return a + .. 2023. 3. 12.
JS_๊ธฐ์ˆ  (1)_ ์ปค๋ง(currying) JS์— ์กด์žฌํ•˜๋Š” ์ปค๋ง์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. 1. ์ปค๋ง์ด๋ž€? ์ปค๋ง์€ ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ๊ธ‰๊ธฐ์ˆ ๋กœ, JS ๋ฟ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ํ•„์š”ํ•œ ์ธ์ž๋ณด๋‹ค ์ ์€ ์ˆ˜์˜ ์ธ์ž๋ฅผ ๋ฐ›์œผ๋ฉด, ๋‚˜๋จธ์ง€ ์ธ์ž๋ฅผ ์ธ์ž๋กœ ๋ฐ›๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ฆ‰, ํ•œ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ธ์ž๊ฐ€ ์•„์ง ๋œ ์ค€๋น„ ๋˜์—ˆ์„ ๊ฒฝ์šฐ ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ์ธ์ž๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ปค๋ง์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์‹œ 1) ์•„๋ž˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•œ ๊ฒฝ์šฐ์ด๋‹ค. function mulTwoTerm (a, b, c, d) { return (a + b) * (c + d); } const mulTwoTerm2 = (a, b, c, d) => (a + b) * (c + d); console.log( mulTwoTerm(1, 2, 3, 4.. 2023. 3. 11.
๋ฐ˜์‘ํ˜•