์ „์ฒด ๊ธ€ 128

2022๋…„์— ์ด์งํ•œ ์‚ฌ๋žŒ์˜ ์—ฐ๋ง์ •์‚ฐ (์ „ํšŒ์‚ฌ ์›์ฒœ์ง•์ˆ˜ ์˜์ˆ˜์ฆ ๋ฐ›๊ธฐ, ๊ฒฐ์ •์„ธ์•ก, ์ฐจ๊ฐ์ง•์ˆ˜๊ธˆ์•ก ๋งˆ์ด๋„ˆ์Šค)

1๏ธโƒฃ ์—ฐ๋ง์ •์‚ฐ ๊ฐ„์†Œํ™” ์ž๋ฃŒ ๋‹ค์šด๋กœ๋“œ ๋งจ ์™ผ์ชฝ ํด๋ฆญ ์ž‘๋…„ 6์›”์— ์ „ํšŒ์‚ฌ ํ‡ด์‚ฌ, 6์›”์— ํ˜„ํšŒ์‚ฌ ์ž…์‚ฌ๋ผ์„œ (์‰ฌ์—ˆ๋˜ ๊ธฐ๊ฐ„์ด ํ•œ๋‹ฌ์„ ๋„˜์ง€ ์•Š์Œ) 'ํ•œ๋ฒˆ์— ๋‚ด๋ ค๋ฐ›๊ธฐ' ํ•ด์ฃผ๋ฉด ๋œ๋‹ค! ์ด๋ ‡๊ฒŒ pdfํŒŒ์ผ๋กœ ๋‹ค์šด๋œ๋‹ค. 2๏ธโƒฃ ์ „ํšŒ์‚ฌ ์›์ฒœ์ง•์ˆ˜ ์˜์ˆ˜์ฆ https://www.hometax.go.kr/websquare/websquare_cdn.html?w2xPath=/ui/pp/index.xml ๊ตญ์„ธ์ฒญ ํ™ˆํƒ์Šค www.hometax.go.kr ๋งจ ์˜ค๋ฅธ์ชฝ ํด๋ฆญ ์กฐํšŒ/๋ฐœ๊ธ‰์—์„œ ๊ทผ๋กœ์†Œ๋“ ์ง€๊ธ‰๋ช…์„ธ์„œ ์กฐํšŒ ํด๋ฆญ ๋‚ด์—ญ์ด ์—†์Œ... ์ „ํšŒ์‚ฌ์— ์š”์ฒญํ•ด์•ผํ•จ... ์—ฐ๋ฝํ•˜๊ธฐ ์‹ซ์€ ๊ฒฝ์šฐ์—๋Š” ์ „ํšŒ์‚ฌ๋„ ์—ฐ๋ง์ •์‚ฐ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ์ดํ›„์— ๋ช…์„ธ์„œ๊ฐ€ ๋œจ๋Š”๋ฐ, ๊ทธ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ์ข…ํ•ฉ์†Œ๋“์„ธ ์‹ ๊ณ ํ•˜๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค... ๊ทธ๊ฑด ์ „ํšŒ์‚ฌ์— ์—ฐ๋ฝํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๊ท€์ฐฎ์€ ์ผ...

Etc 2023.01.26

[20230107 TIL] AG-GRID ํ–‰์‚ญ์ œ(remove) ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ + ๋ฐ์ดํ„ฐ์…‹๋„ ๋ฐ˜์˜์‹œํ‚ค๊ธฐ

https://yejinrla.tistory.com/68 [ React ] AG-GRID applyTransaction ํ–‰์ถ”๊ฐ€(add), ํ–‰์‚ญ์ œ(remove), ํ–‰์ˆ˜์ •(update) ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ AG-GRID๋ฅผ ์ด์šฉํ•ด์„œ ๊ทธ๋ฆฌ๋“œ ํ–‰์ถ”๊ฐ€, ํ–‰์‚ญ์ œ, ํ–‰์ˆ˜์ • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ๊ฒ€์ƒ‰์„ ํ•ด๋ณด๋‹ˆ๊นŒ ์ƒ๊ฐ๋ณด๋‹ค ์ž˜ ๋‚˜์™€์žˆ์ง€ ์•Š์•„์„œ ํฌ์ŠคํŒ…ํ•ด๋ณธ๋‹ค. import { GridApi } from 'ag-grid-community' ์ผ๋‹จ GridApi๋ฅผ import ํ•ด yejinrla.tistory.com ์˜ˆ์ „์— ์ด ๊ธ€์„ ์˜ฌ๋ฆฐ์ ์ด ์žˆ์—ˆ๋‹ค. ๋งจ ๋งˆ์ง€๋ง‰ ์ค„์— ๋ณด๋ฉด ๋ฐ์ดํ„ฐ์…‹์€ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์จ์žˆ๋‹ค. ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋‹น์—ฐํ•˜๊ธด ํ•˜๋‹ค. ๋ฐ์ดํ„ฐ์…‹์€ useState๋กœ ๋”ฐ๋กœ ์„ ์–ธ๋˜๊ณ  ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์œผ๋‹ˆ... const selectedData: ..

[20230117 TIL] AG-GRID ์›ํ•˜๋Š” ๊ทธ๋ฆฌ๋“œ ํ–‰ ์„ ํƒ๋˜๊ฒŒ ํ•˜๊ธฐ (setSelected)

* ๊ตฌ์กฐ ํ™”๋ฉด์— 2๊ฐœ์˜ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์กด์žฌ. ์™ผ์ชฝ ๊ทธ๋ฆฌ๋“œ ํ–‰์„ ํด๋ฆญํ•˜๋ฉด ์ƒ์„ธ ์ •๋ณด๊ฐ€ ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆฌ๋“œ์— ๋œธ. * ๋งŒ๋“ค๊ณ ์ž ํ–ˆ๋˜ ๊ธฐ๋Šฅ ์™ผ์ชฝ ๊ทธ๋ฆฌ๋“œ ํ–‰์„ ํด๋ฆญํ•œ ํ›„ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์ˆ˜์ •์ค‘์— ์™ผ์ชฝ ๊ทธ๋ฆฌ๋“œ ๋‹ค๋ฅธ ํ–‰์„ ํด๋ฆญํ•  ๋•Œ '์ž‘์„ฑ์ค‘์ž…๋‹ˆ๋‹ค. ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์กฐํšŒ ์ง„ํ–‰ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?' alert ์ฐฝ์ด ๋œฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ณ , ํ™•์ธ์„ ๋ˆ„๋ฅด๋ฉด ์กฐํšŒ๋ฅผ ์ง„ํ–‰ / ์ทจ์†Œ๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ˜„์ƒํƒœ๋ฅผ ์œ ์ง€์‹œํ‚ค๋ ค๊ณ  ํ–ˆ๋‹ค.(return) * ๋ฌธ์ œ ๋ฐœ์ƒ return์„ ์‹œ์ผœ๋„, ๋‹ค๋ฅธ ํ–‰์„ ํด๋ฆญํ–ˆ๋˜๊ฒŒ ๊ณ„์† ๋‚จ์•„์žˆ์—ˆ๋‹ค. ์™ผ์ชฝ ๊ทธ๋ฆฌ๋“œ์—์„œ ํด๋ฆญ๋œ ํ–‰๊ณผ ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆฌ๋“œ์˜ ์ƒ์„ธ์ •๋ณด๊ฐ€ ์„œ๋กœ ๋งž์ง€ ์•Š๊ฒŒ ๋œ ๊ฒƒ. * ํ•ด๊ฒฐ ๋ฐฉ์•ˆ ๊ฐ•์ œ๋กœ ๋‹ค์‹œ ๊ธฐ์กด ํ–‰์„ ํด๋ฆญํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ด๋•Œ setSelected ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. forEachNode๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋‹ค ๋ณด๋Š”๋ฐ (map๊ฐ™์€ ..

[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 = { ..

[ TypeScript ] AG-GRID ํŠน์ • ์…€ ์ž…๋ ฅ์‹œ ์ž…๋ ฅ ๋ฌธ์ž ์ œํ•œ (valueParser, new RegExp ์ •๊ทœ์‹)

ํŠน์ • ์‹œ๊ฐ„์ด๋ผ๋Š” ํ–‰์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ์ž…๋ ฅ ๋ฌธ์ž๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค. { headerName: '์‹œ๊ฐ„', field: 'time', editable: true, valueParser: (params: ValueParserParams) => { if (new RegExp(/[^0-9+:]/).test(params.newValue)) { dispatch({ type: SNACKBAR_OPEN, message: 'hh:mm:ss ํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.', alertSeverity: 'info' }); return params.oldValue; } return params.newValue; } }, ์ˆซ์ž์™€ : ๋ฌธ์ž๊ฐ€ ์•„๋‹ˆ๋ฉด 'hh:mm:ss ํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.' ๋ผ๋Š” ๋ฉ”์„ธ์ง€๊ฐ€ ๋œจ๋Š” ์ฝ”๋“œ์ด๋‹ค.

[ PostgreSQL ] ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด update, ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด insert ( pk์—†๋Š” db upsert)

https://yejinrla.tistory.com/99 [ PostgreSQL ] ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด update, ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด insert (upsert) https://mine-it-record.tistory.com/342 [PostgreSQL] ๋ฐ์ดํ„ฐ ์žˆ์œผ๋ฉด UPDATE ์—†์œผ๋ฉด INSERT (INSERT INTO ~ ON CONFLICT DO UPDATE) PostgreSQL์—์„œ ์‚ฌ์šฉํ•˜๋Š” upsert๊ตฌ๋ฌธ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์˜ค๋ผํด์—์„œ๋Š” merge into, mysql์—์„œ๋Š” on duplic yejinrla.tistory.com ์ €๋ฒˆ์— ์œ„์™€ ๊ฐ™์€ upsert ์ฟผ๋ฆฌ๋ฅผ ์ผ์—ˆ๋‹ค. ์ € ์ฟผ๋ฆฌ์˜ ๋ฌธ์ œ์ ์€ db์— pk๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ... WITH UPSERT AS ( UPDATE pim_rule_ex_cc_..

DBMS/PostgreSQL 2022.11.10

[ 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 ํ•ด์ฃผ๋ฉด ์•Œ..

[ PostgreSQL ] ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด update, ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด insert (upsert)

https://mine-it-record.tistory.com/342 [PostgreSQL] ๋ฐ์ดํ„ฐ ์žˆ์œผ๋ฉด UPDATE ์—†์œผ๋ฉด INSERT (INSERT INTO ~ ON CONFLICT DO UPDATE) PostgreSQL์—์„œ ์‚ฌ์šฉํ•˜๋Š” upsert๊ตฌ๋ฌธ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์˜ค๋ผํด์—์„œ๋Š” merge into, mysql์—์„œ๋Š” on duplicate on key update๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ด์™€ ๋น„์Šทํ•˜๊ฒŒ PostgreSQL์—์„œ๋Š” insert into ~ on conflict do update ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค. mine-it-record.tistory.com insert into user ( user_id ,user_name ,phone_number ) values ( #{userId} ,#{userName} ,#{..

DBMS/PostgreSQL 2022.11.02