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

Development61

[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.
[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.
์›นํŒฉ(Webpack) webpack ๐Ÿ’ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ชจ๋“ˆ์„ ์ง€์›ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ (ES5), ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์ƒˆ๋กœ์šด ํ‘œ์ค€์ธ ECMAScript6(ES6)๊ฐ€ ์ƒ๊ธฐ๋ฉด์„œ ๋ชจ๋“ˆ์„ ์ง€์›. CommonJS๋ณด๋‹ค ๋ฌธ๋ฒ•์ด ๋” ๊ฐ„๊ฒฐํ•ด์ง ๊ตฌ์กฐ๊ฐ€ staticํ•˜๊ฒŒ ๋ถ„์„ ๊ฐ€๋Šฅํ•˜๊ณ  ์ตœ์ ํ™”๋„ ๋จ. CommonJS๋ณด๋‹ค ์ˆœํ™˜ ์˜์กด์„ฑ ์ง€์›์ด ์ž˜๋จ ๊ทธ๋Ÿฌ๋‚˜ ๋ธŒ๋ผ์šฐ์ €๋Š” ์—ฌ์ „ํžˆ ํŒŒ์ผ ๋‹จ์œ„ ๋ชจ๋“ˆ์„ ์ž˜ ๋ชจ๋ฆ„. ES6๋Š” ์ผ๋ถ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ์ง€์›. ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด๋Ÿฐ ๋ชจ๋“ˆํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Œ. ํ•˜๋‚˜์˜ ์†Œ์Šค๋กœ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ณด์—ฌ์ฃผ๋Š”๊ฒŒ ์›น์˜ ํŠน์žฅ์  ๋ชจ๋“ˆ์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋ฌถ์–ด ๋„คํŠธ์›Œํฌ ๋น„์šฉ์„ ์ตœ์†Œํ™” ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•จ ์ด ๊ณผ์ •์ด ๋ฐ”๋กœ bundling ์›นํŽ™์˜ 4๊ฐ€์ง€ ๊ฐœ๋… ์—”ํŠธ๋ฆฌ // webpack.config.js module.exports = .. 2023. 6. 15.
npm ERR! Cannot read properties of null (reading 'edgesOut') Styled-Components ์„ค์น˜์‹œ ์˜ค๋ฅ˜ ๋ฌธ์ œ ์ƒํ™ฉ styled-components ์„ค์น˜ ๋ฐฉ๋ฒ• - ๊ณต์‹Docs npm install styled-components react ํ”„๋กœ์ ํŠธ์— styled-components๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ณต์‹ ๋ฌธ์„œ์— ์–ธ๊ธ‰๋œ ์„ค์น˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ–ˆ๋Š”๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์™”๋‹ค. npm ERR! Cannot read properties of null (reading 'edgesOut') ๋ฌธ์ œ ์›์ธ latest version of styled-components is v6 but there is some issue while doing npm i styled-components styled-components version6 ์ดํ›„๋กœ ๋‹ค์Œ ๋ช…๋ น์–ด์‹œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ. ๋ฌธ์ œ ํ•ด๊ฒฐ //.. 2023. 5. 14.
[React] font ์ ์šฉ ๋ฐฉ๋ฒ• 1. ํ•„์š”ํ•œ ํฐํŠธ ๋‹ค์šด๋กœ๋“œ Pretendard ๋‚˜์˜ ๊ฒฝ์šฐ font ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด woff2 format์„ ์„ ํƒํ•จ 2. React ํ”„๋กœ์ ํŠธ์— ํฐํŠธ ๋ณต์‚ฌ 3. ํฐํŠธ ์ ์šฉ @font-face { font-family: "PretendardVariable"; src: local("PretendardVariable"),url("/src/assets/fonts/PretendardVariable.woff2") format("woff2"); } Reference React ํฐํŠธ ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ• 2023. 1. 28.
[axios] axios 2 axios? ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ Promise ๊ธฐ๋ฐ˜์˜ ํด๋ผ์ด์–ธํŠธ ์›๋ž˜๋Š” โ€œXHRโ€์ด๋ผ๋Š” ๋ธŒ๋ผ์šฐ์ € ๋‚ด์žฅ ๊ฐ์ฒด๋ฅผ ํ™œ์šฉํ•ด AJAX ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ, ์ด๋ณด๋‹ค ํŽธ๋ฆฌํ•œ AJAX ์š”์ฒญ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋„์›€์„ ์คŒ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ํ•จ๊ป˜ ํŒจํ‚ค์ง€๋กœ ์‚ฌ์šฉ์ด ๊ฐ„ํŽธํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณต ์„ค์น˜ # npm ์‚ฌ์šฉํ•˜๊ธฐ: $ npm install axios # yarn ์‚ฌ์šฉํ•˜๊ธฐ: $ yarn add axios ์‚ฌ์šฉ axios.get('') //Promise return .then(..) .catch(..) //Axios ์‚ฌ์šฉํ•˜๊ธฐ const URL = '>' async function test(){ const response = await axios.get(URL) const data = response.data console.log(d.. 2023. 1. 27.
[Electron] electron ์•„์ด์ฝ˜ ๋„ฃ๊ธฐ //๋””๋ ‰ํ† ๋ฆฌ์— ์•„์ด์ฝ˜ ํŒŒ์ผ์„ ๋„ฃ์€ ๋’ค ์„ค์ • //electron.js - ๋ฉ”์ธํ”„๋กœ์„ธ์„œ ํŒŒ์ผ const {app, BrowserWindow,ipcMain} = require('electron') const path = require('path') // const fs = require("fs"); function createWindow () { const mainWindow = new BrowserWindow({ width: 528, height: 791, resizable:false, //size ๊ณ ์ • useContentSize :true, //๊ฐ€์šด๋ฐ ์„ค์ • center:true, //์•ฑ ์‹คํ–‰์‹œ ์œˆ๋„์šฐ๋ฅผ ํ™”๋ฉด ์ •์ค‘์•™์— ์œ„์น˜ **icon:path.join(__dirname,'[๋กœ๊ณ  path]'), //์ผ๋ ‰ํŠธ๋ก .. 2023. 1. 25.
[React] console.log(useRef) useRefํ•จ์ˆ˜๋Š” current์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ ์ธ์ž๋กœ ๋„˜์–ด์˜จ ์ดˆ๊ธฐ๊ฐ’์„ current์†์„ฑ์— ํ• ๋‹น ์ด current ์†์„ฑ์€ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด๋„ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ์ฒ˜๋Ÿผ React ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค์‹œ ๋žœ๋”๋ง ์•ˆ๋จ React ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค์‹œ ๋žœ๋”๋ง๋  ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ด current ์†์„ฑ์˜ ๊ฐ’์ด ์œ ์‹ค๋˜์ง€ ์•Š์Œ Reference React Hooks: useRef ์‚ฌ์šฉ๋ฒ• Hooks API Reference - React 2023. 1. 25.
[React] ref, useRef ref? JS๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ํŠน์ • DOM์„ ์„ ํƒํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์—์„œ getElementById, querySelector ๊ฐ™์€ DOM Selector ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ DOM์„ ์„ ํƒ ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ DOM์„ ์ง์ ‘ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ธฐ๋ฉด ref๋ฅผ ํ™œ์šฉ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ **ref**๋ฅผ ์‚ฌ์šฉ ํ•  ๋•Œ์—๋Š” **useRef** ๋ผ๋Š” Hook ํ•จ์ˆ˜ ์‚ฌ์šฉ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ **React.createRef ๋ผ๋Š” ํ•จ์ˆ˜ ์‚ฌ์šฉ** ํฌ์ปค์Šค๋ฅผ ์žก์œผ๋ ค๋ฉด nameInput.current.focus() ํ˜•ํƒœ๋กœ ์ž‘์„ฑ const nameInput = useReft(); const onClick = () => { nameInput.current.focus(); } return( ํด๋ฆญ ) use.. 2023. 1. 24.