๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?

๐€๐ฅ๐ฅ ๐๐จ๐ฌ๐ญ292

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ https://school.programmers.co.kr/learn/courses/30/lessons/12973?language=python3 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋ฌธ์ œ์„ค๋ช… ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๋Š”, ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๊ฐ€์ง€๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋ฌธ์ž์—ด์—์„œ ๊ฐ™์€ ์•ŒํŒŒ๋ฒณ์ด 2๊ฐœ ๋ถ™์–ด ์žˆ๋Š” ์ง์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ, ๊ทธ ๋‘˜์„ ์ œ๊ฑฐํ•œ ๋’ค, ์•ž๋’ค๋กœ ๋ฌธ์ž์—ด์„ ์ด์–ด ๋ถ™์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ๋‹ค๋ฉด ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด S๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ง์ง€์–ด ์ œ๊ฑฐ.. 2023. 6. 28.
[Electron] electron์•ฑ ํ™”๋ฉด์ด ๋žœ๋”๋ง์ด ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๋ฌธ์ œ์  2023.06.17 - [Development/Electron] - [Electron] SyntaxError: Cannot use import statement outside a module ์œ„์˜ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐ ํ›„ electron์•ฑ์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, electron ์•ฑ์€ ์ผœ์ง€์ง€๋งŒ ํ™”๋ฉด์ด ๋žœ๋”๋ง ๋˜์ง€ ์•Š๋Š” ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒ. ํ•ด๊ฒฐ๊ณผ์ • Failed to compile. Module not found: Error: Can't resolve './App' in 'D:\\2023\\march\\realPractice\\login\\src' Did you mean 'App.js'? BREAKING CHANGE: The request './App' failed to resolve only because it was r.. 2023. 6. 18.
[Electron] SyntaxError: Cannot use import statement outside a module ์˜ค๋ฅ˜ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋“ค์ด ๋œจ๋ฉด์„œ(๊ฒฝ๊ณ ์ฐฝ) electron ์•ฑ์ด ์‹คํ–‰๋˜์ง€ ์•Š์Œ. (node:29788) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension. (Use `electron --trace-warnings ...` to show where the warning was created) App threw an error during load D:\\2023\\march\\realPractice\\login\\public\\electron.js:1 import * as operator from './script/operator.js' ^^^^^^ SyntaxError: Canno.. 2023. 6. 17.
[Redux] Redux ๊ธฐ์ดˆ - ์ƒํ™œ์ฝ”๋”ฉ action์„ ํ†ตํ•ด action์„ dispatch์— ์ „๋‹ฌํ•˜๊ณ  reducer๊ฐ€ state๊ฐ’์„ ๊ฐฑ์‹ ํ•˜๊ณ  dispatch๊ฐ€ subscribeํ•˜๊ณ ์žˆ๋Š” ํ•จ์ˆ˜๋“ค์„ ํ˜ธ์ถœํ•ด state๊ฐ’์„ ์ฐธ์กฐํ•˜์—ฌ UI๋ฅผ ๋ฐ”๊ฟ”์คŒ state type State = any ์ €์žฅ์†Œ(store)์— ์˜ํ•ด ๊ด€๋ฆฌ๋จ getState()์— ์˜ํ•ด ๋ฐ˜ํ™˜๋˜๋Š” ํ•˜๋‚˜์˜ ์ƒํƒœ๊ฐ’ action type Action = Object ์–ด๋–ค ์ž‘์—…์„ ํ• ์ง€ ์„ค๋ช…ํ•ด์ฃผ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ˆœ์ˆ˜ ๊ฐ์ฒด store์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ• UI ์ด๋ฒคํŠธ์—์„œ ์™”๋“ , ๋„คํŠธ์›Œํฌ ์ฝœ๋ฐฑ์—์„œ ์™”๋“ , ์›น์†Œ์ผ“๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์†Œ์Šค์—์„œ ์™”๋“  ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ์•ก์…˜์œผ๋กœ์จ ๋ณด๋‚ด์ง reducer type Reducer = (state: S, action: A) => S ๋ˆ„์ ๊ฐ’๊ณผ ๊ฐ’์„ ๋ฐ›์•„ ์ƒˆ๋กœ์šด ๋ˆ„์ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” .. 2023. 6. 16.
[Node.js] Node.js Modules | childProcess, spawn, stdout, stderr, fs, path, yargs, properties-reader, Buffer Node.js modules ๐Ÿ—จ๏ธ ChildProcess โœ… ChildProcess ๊ฐœ๋… Node.js ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ทธ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“ˆ Node.js์—์„œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ œ๊ณต exec(), spawn(),fork() ๋“ฑ์˜ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณต exec() ํ•จ์ˆ˜๋Š” ์…ธ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํ•ด๋‹น ๊ฒฐ๊ณผ๋ฅผ ๋ฒ„ํผ๋ง spawn() ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ํ”„๋กœ์„ธ์Šค์™€์˜ ํ‘œ์ค€ ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์„ ์ œ๊ณต fork() spawn() ํ•จ์ˆ˜์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์™€ ์ž์‹ ํ”„๋กœ์„ธ์Šค ๊ฐ„์— ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” IPC ์ฑ„๋„์„ ์ž๋™์œผ๋กœ ์„ค์ • ChildProcess ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด Node.js ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ์Œ Node.js ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์™ธ๋ถ€.. 2023. 6. 16.
[Electron] ipcRenderer.invoke & ipcMin.handle IpcRenderer.invoke ๐Ÿ’ก Electron์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ ์ค‘ ํ•˜๋‚˜. ipcRenderer ๊ฐ์ฒด๋Š” ๋ Œ๋”๋Ÿฌ ํ”„๋กœ์„ธ์Šค์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ฃผ๋กœ ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค์™€์˜ ๋น„๋™๊ธฐ์ ์ธ ํ†ต์‹ ์„ ์œ„ํ•ด ์‚ฌ์šฉ. ipcRenderer.invoke๋Š” ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค์— ๋น„๋™๊ธฐ์ ์ธ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ. ์ด ๋ฉ”์„œ๋“œ๋Š” Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค์—์„œ ์ฒ˜๋ฆฌ๋˜๊ณ  ์™„๋ฃŒ๋œ ํ›„์— Promise ๊ฒฐ๊ณผ๊ฐ€ ๋ Œ๋”๋Ÿฌ ํ”„๋กœ์„ธ์Šค์— ์ „๋‹ฌ. ipcRenderer.invoke ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค์—์„œ ํ•ด๋‹น ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ipcMain.handle์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ ์˜ˆ์ œ // ๋ Œ๋”๋Ÿฌ ํ”„๋กœ์„ธ์Šค์—์„œ์˜ ์˜ˆ์ œ ์ฝ”๋“œ const { ipcRenderer } = require('electron'); a.. 2023. 6. 15.
[Electron] dialog.showOpenDialog() dialog.showOpenDialogSync() ๐Ÿ’ก Electron ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณต๋˜๋Š” ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŒŒ์ผ ์„ ํƒ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ํŒŒ์ผ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Œ ์ฃผ๋กœ ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค์—์„œ ์‚ฌ์šฉ ์‚ฌ์šฉ ์˜ˆ์‹œ const { dialog } = require('electron'); // ํŒŒ์ผ ์„ ํƒ ๋Œ€ํ™” ์ƒ์ž ์˜ต์…˜ ์„ค์ • const options = { title: 'Open File', // ๋Œ€ํ™” ์ƒ์ž ์ œ๋ชฉ defaultPath: '/path/to/default', // ๊ธฐ๋ณธ ๊ฒฝ๋กœ buttonLabel: 'Open', // ํ™•์ธ ๋ฒ„ํŠผ ๋ ˆ์ด๋ธ” filters: [ { name: 'Text Files', extensions: ['txt'] }, // ํŒŒ์ผ ํ•„ํ„ฐ { name: 'All Files', extensions.. 2023. 6. 15.
[GIT] ํŠน์ • commit์„ ๊ธฐ์ค€์œผ๋กœ ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ [GIT] ํŠน์ • commit์„ ๊ธฐ์ค€์œผ๋กœ ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ git checkout -b [new ๋ธŒ๋žœ์น˜๋ช…] [Head๋ธŒ๋žœ์น˜] git cherry-pick [commitํ•ด์‹œ๊ฐ’] git push origin [new ๋ธŒ๋žœ์น˜๋ช…] 2023. 6. 15.
[API] GraphQL ๊ด€๋ จ dependency | Apollo Client, graphql-request graphQL ๊ด€๋ จ ์˜์กด์„ฑ ์ถ”๊ฐ€ 1. Apollo Client Introduction to Apollo Client Apollo Client is a comprehensive state management library for JavaScript that enables you to manage both local and remote data with GraphQL. Use it to fetch, cache, and modify application data, all while automatically updating your UI. Apollo Client helps www.apollographql.com Hooks ์—†์ด Apollo Client ์‚ฌ์šฉํ•˜๊ธฐ yarn: yarn add apollo-boost.. 2023. 6. 15.
๋ฐ”๋ฒจ(Babel) ๋ฐ”๋ฒจ(Babel) ๐Ÿ’ก ๋ฐ”๋ฒจ(Babel)์€ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ(transpiler)๋กœ, ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๊ตฌ ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๋Š” ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ”์ค๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ES6๋‚˜ ES7(์ตœ์‹ ํ‘œ์ค€) ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ธฐ๋•Œ๋ฌธ์— ES5๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ณผ์ •์ด ํ•„์š” ์ด ๊ณผ์ •์„ ํ•ด์ฃผ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฐ”๋ฒจ babel์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ชจ๋“  ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋ฅผ ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ์ž‘์—…์ด ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์— ์ง„ํ–‰๋˜์–ด์•ผํ•จ ์ด ์—ญํ• ์€ babel-polyfill์ด ๋‹ด๋‹น ๋ฐ”๋ฒจ์˜ ์ฃผ์š” ์—ญํ•  ํŠธ๋ Œ์Šค ํŒŒ์ผ๋Ÿฌ ๋ฐ”๋ฒจ์€ ์ฝ”๋“œ๋ฅผ ์žฌ์ž‘์„ฑํ•ด์ฃผ๋Š” ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ์กด ์ฝ”๋“œ๊ฐ€ ๊ตฌ ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๋Š” ์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝ ๋ณ€๊ฒฝ๋œ ์ฝ”๋“œ๋Š” ์›น์‚ฌ์ดํŠธ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ ์›นํŒฉ(webpack)๊ณผ .. 2023. 6. 15.