Programming/JavaScript 12

npm vs yarn

https://www.daleseo.com/js-package-manager/ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €: npm vs. Yarn Engineering Blog by Dale Seo www.daleseo.com https://joshua1988.github.io/vue-camp/package-manager/npm-vs-yarn.html#yarn NPM vs Yarn | Cracking Vue.js npm๊ณผ yarn npm๊ณผ yarn์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ธ ๋…ธ๋“œ(Node.js)์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค. ์ „ ์„ธ๊ณ„์˜ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋งŒ๋“  ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€๋ฅผ npm ์˜จ๋ผ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (opens new window)์— ์˜ฌ joshua1988.github.io ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €(package manager..

[ JavaScript ] ๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ: substr() ๐Ÿ†š substring()

https://www.daleseo.com/js-substr-substring/ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ: substr()๊ณผ substring() ํ•จ์ˆ˜ Engineering Blog by Dale Seo www.daleseo.com ๋งจ๋‚  ๋‘˜์ด ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋‚˜.. ์ œ๋Œ€๋กœ ์ตํ˜€๋ณด๊ณ ์ž ์œ„ ๋ธ”๋กœ๊ทธ๋ฅผ ๋ณด๊ณ  ๋‚ด๊ฐ€ ๊ณ„์† ๋ณด๊ณ  ์ฐธ๊ณ ํ•  ๋‚ด์šฉ๋“ค์„ ์˜ฎ๊ฒจ๋ณด์•˜๋‹ค. substr() ํ•จ์ˆ˜ ๋จผ์ € ์‚ดํŽด๋ณผ substr() ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์˜ ์ผ๋ถ€๋ฅผ ์ผ์ • ๊ธธ์ด๋งŒํผ ์ถ”์ถœํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋กœ ์‹œ์ž‘ ์ธ๋ฑ์Šค๋ฅผ ๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ ์ž˜๋ผ๋‚ผ ๊ธธ์ด๋ฅผ ๋„˜๊ธฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค. "๋ฌธ์ž์—ด".substr(startIndex, length); "ABCDEFG".substr(2, 3); // "CDE" "ABCDEFG".substr(2);..

[ JavaScript ] ์ •๊ทœ์‹์— ๋งž์ง€ ์•Š์œผ๋ฉด ๋นˆ ๊ฐ’์œผ๋กœ ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™” ํ•˜๋ ค๋Š” ๋ฐ 0์œผ๋กœ ๋ณด์ด๋Š” ํ˜„์ƒ (edit box)

ํšŸ์ˆ˜๊ฐ€ 1~100 ๋ฒ”์œ„์— ๋“ค์–ด๊ฐ€์ง€ ์•Š์œผ๋ฉด ๋นˆ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. if (!new RegExp(/^(?:[1-9]|[1-9][0-9]|100)$/).test(params.newValue)) { dispatch({ type: SNACKBAR_OPEN, message: '1~100 ์‚ฌ์ด ์ˆซ์ž๋งŒ ์ž…๋ ฅ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.', alertSeverity: 'warning' }); return params.oldValue; } return params.newValue; ๊ทธ๋ฆฌ๋“œ์—์„œ๋Š” valueParser์„ ์ด์šฉํ•ด์„œ ์ด๋ ‡๊ฒŒ ์ฝ”๋”ฉํ•˜๋ฉด ์ „๊ฐ’์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค. edit box๋Š” ๊ทธ๋Ÿฐ ๊ธฐ๋Šฅ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฏ€๋กœ.. ๊ทธ๋ƒฅ ๋นˆ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ๋ ค๊ณ  ํ•œ๋‹ค. if (!new RegExp(/^(?:[1-9]|[1-9][0-9]|100)$/).te..

TypeError: find is not a function ์˜ค๋ฅ˜ (object)

const checkedList = {0: true, 1: true, 2: true}; console.log(checkedList.find((e)=>e===true)); // => ํ•ด๋‹น ์—๋Ÿฌ ๋ฐœ์ƒ typeof checkedList๋ฅผ ์ฐ์–ด๋ณด๋‹ˆ object. Object.values(checkedList).find((el) => el === true) ๊ทธ๋ž˜์„œ Object.values๋กœ value๋ฅผ ๊บผ๋‚ด์ฃผ๊ณ , findํ–ˆ๋”๋‹ˆ ํ•ด๊ฒฐ ๋˜์—ˆ๋‹ค.

[20230103 TIL] [JavaScript] hh:mm:ss ์ •๊ทœ์‹

์ •๊ทœ์‹ ํ…Œ์ŠคํŠธ ์‚ฌ์ดํŠธ : https://regexr.com/ RegExr: Learn, Build, & Test RegEx RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp). regexr.com https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test RegExp.prototype.test() - JavaScript | MDN test() ๋ฉ”์„œ๋“œ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ •๊ทœ ํ‘œํ˜„์‹์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํŒ๋ณ„ํ•˜๊ณ , ๊ทธ ์—ฌ๋ถ€๋ฅผ true ๋˜๋Š” false๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. developer.mozilla.org ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•  ..

[ 20230102 TIL ] [ JavaScript ] AG-GRID ํŠน์ • ํ–‰ ์ƒ‰๊น” ๋ณ€๊ฒฝํ•˜๊ธฐ (getRowStyle)

์šฐ๋ฆฌ๋‚˜๋ผ ์ถ•์ œ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž. ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ์ถ•์ œ ํ–‰์„ ๋…ธ๋ž€์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•ด์ฃผ๊ณ ์ž ํ•œ๋‹ค. getRowStyle : rowStyles ์ถ”๊ฐ€ํ•˜๊ณ , rowStyles์— ๊ตฌํ˜„ํ•ด์ค€๋‹ค. activeParadeList์— ์ง„ํ–‰์ค‘์ธ ์ถ•์ œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋“ค์–ด์žˆ๊ณ , ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ํ–‰์— ๋Œ€ํ•ด์„œ background : 'yellow' ํ•ด์ค€๋‹ค. const rowStyles = (params: any) => { if (activeParadeList.find((el) => el.paradeName === params.data.cdNm)) { return { background: 'yellow' }; } return { background: '' }; }; const gridCodeTypeProps = { ..

[ JavaScript ] Object์— ์›ํ•˜๋Š” ์†์„ฑ, ๊ฐ’ ์ถ”๊ฐ€ํ•˜๊ธฐ

const arrList2: any[] = []; for (let i = 0; i < arrList?.length; i += 1) { for (let j = 0; j < list.length; j += 1) { if (arrList[i].cdNm === list[j].cdNm) { const temp = list[j]; temp.type = arrList[i].type; arrList2.push(temp); } } } ์ž‘์—…์ค‘์ธ ์ฝ”๋“œ๋ฅผ ์กฐ๊ธˆ ๋ณ€ํ™˜ํ•ด์™”๋‹ค. arrList์™€ list์˜ cdNm์„ ๋น„๊ตํ•˜๋ฉฐ ๊ฐ™์€ cdNm์ผ๋•Œ์˜ list ๊ฐ’์„ ๋ฝ‘๊ณ , arrList์˜ type์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ๊ธฐ์กด์— list object์—๋Š” type์ด๋ผ๋Š” ์†์„ฑ์ด ์—†๋Š”๋ฐ, ์ €๋ ‡๊ฒŒ temp.type = arrList[i].type ํ•ด์ฃผ๋ฉด ์•Œ..

[ apexcharts ] Mixed chart (area, column) gradient ๋”ฐ๋กœ ์„ค์ •ํ•˜๊ธฐ

https://mui.com/store/items/minimal-dashboard-free/ Minimal Free โ€“ Client & Admin Dashboard - MUI Store Free React Admin Dashboard made with MUI Core components and React. Minimal Free Minimal 6 Demo pages 50+ demo pages - โœ“ Multi-language - โœ“ Dark/Light Mode ? mui.com ์ด ์ƒ˜ํ”Œ์˜ chart ์ฒ˜๋Ÿผ column, area chart๊ฐ€ ์„ž์—ฌ ์žˆ๋Š” ๊ฒฝ์šฐ, area chart gradient ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•..! fill: { type: ['gradient', 'solid'], gradient: { sha..

[20220302 TIL] [Xplatform] ์ฝค๋ณด๋ฐ•์Šค์— ์ƒ‰ ๋„ฃ๊ธฐ, ํ…Œ๋‘๋ฆฌ ์„ค์ •

์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ์ฝค๋ณด๋ฐ•์Šค๋ฅผ ๊ฐ•์กฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒ‰์„ ๋„ฃ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ฝค๋ณด๋ฐ•์Šค๋ฅผ ํด๋ฆญํ•˜์—ฌ Properties๋ฅผ ์—ด์–ด์ค๋‹ˆ๋‹ค. ์Šคํฌ๋กค์„ ๋‚ด๋ฆฌ๋‹ค๋ณด๋ฉด Style์ด๋ผ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์„œ๋„ background๋ฅผ ๋ด์ค๋‹ˆ๋‹ค. color์„ ๋ฐ”๊ฟ”์ค๋‹ˆ๋‹ค. aqua์ƒ‰์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ดŒ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.. ๊ทผ๋ฐ ์ž์„ธํžˆ ๋ณด๋ฉด ์™ผ์ชฝ์˜ ์—๋””ํŠธ๋ฐ•์Šค๋ž‘ ํ…Œ๋‘๋ฆฌ๊ฐ€ ์ข€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํ™”๋ฉด ๋„์›Œ๋ณด๋ฉด ๋” ์ด์งˆ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค. border์—์„œ width๋ฅผ 1๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋ฏธ๋ฌ˜ํ•˜๊ฒŒ ํ…Œ๋‘๋ฆฌ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค !