๋ฐ˜์‘ํ˜•

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 285

[Next.js + React] yarn berry ์ œ๊ฑฐ ๋ฐฉ๋ฒ•

Intro์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” yarn berry ์ œ๊ฑฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์€ Next.js + React ๊ตฌ์„ฑ์„ ์ „์ œ๋กœ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.ํ˜น์‹œ yarn berry๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ๋งํฌ์— ๊ฑธ๋ ค์žˆ๋Š” ํฌ์ŠคํŒ… ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค . How to remove yarn berryYarn Berry (Yarn 2+)๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:1. Yarn Berry ์„ค์ • ํŒŒ์ผ ์‚ญ์ œํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ .yarnrc.yml ํŒŒ์ผ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.#.yarnrc.yml filenodeLinker: node-modulesyarnPath: .yarn/releases/yarn-3.6.0.cjs 2. ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ๋ณ€๊ฒฝYarn 1.x๋กœ ๋Œ์•„๊ฐ€๋ ค๋ฉด, yarn์„ ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค..

Framework/Next.js 2024.09.22

[React] MUI Popover, Menu ์†์„ฑ 'anchorEl' ๋ž€ ๋ฌด์—‡์ด๋ฉฐ ์‚ฌ์šฉ ์ด์œ 

Intro์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ์‹œ๊ฐ„์—๋Š” React MUI์—์„œ anchorEl ๋ž€ ๋ฌด์—‡์ด๋ฉฐ ์‚ฌ์šฉ ์ด์œ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  anchorEl ?Material-UI (MUI)์—์„œ ํŒ์˜ค๋ฒ„(Popover)๋‚˜ ๋ฉ”๋‰ด(Menu)์™€ ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ์œผ๋กœ, ํŒ์—…์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์†์„ฑ์€ ํŒ์—…์ด ์—ด๋ฆด ์œ„์น˜์˜ ๊ธฐ์ค€์ด ๋˜๋Š” ์š”์†Œ(Element)๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ์—์„œ์˜ anchorEl ์‚ฌ์šฉ1. PopoverPopover ์ปดํฌ๋„ŒํŠธ๋Š” ๊ธฐ์ค€ ์š”์†Œ์ธ anchorEl์˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ™”๋ฉด์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. The content of the Popover. 2. MenuMenu ์ปดํฌ๋„ŒํŠธ๋Š” ์ฃผ๋กœ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋˜๋Š” ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. anchorEl์„ ํ†ตํ•ด ๋ฉ”๋‰ด๊ฐ€ ๋‚˜ํƒ€๋‚  ์œ„์น˜๋ฅผ ์ง€์ •..

Framework/React 2024.09.04

[React] react-virtuoso TableVirtuoso ๋นˆ๋ฐฐ์—ด์ผ ๋•Œ EmptyPlaceholder ์†์„ฑ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

Intro์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” TableVirtuoso ์‚ฌ์šฉ ์ค‘ ๋ฐ์ดํ„ฐ๊ฐ€ ๋นˆ ๋ฐฐ์—ด์ผ ๋•Œ EmptyPlaceholder ์†์„ฑ์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  Exampleํ˜„์žฌ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. ์ด ์ƒํƒœ์—์„œ dataList๊ฐ€ null์ด๊ฑฐ๋‚˜ ๋นˆ๋ฐฐ์—ด์ผ ๋•Œ ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ๋น„์–ด์žˆ๋‹ค๋Š” ํŠน์ • ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. const VirtuosoTableComponents = (totalColSpan: number): TableComponents => ({ Scroller: React.forwardRef((props, ref) => ( )), Table: (props) => ( ), TableHead: React.forwardRef((props, ref) => ( ..

Framework/React 2024.09.03

[React] react-virtuoso dynamic height ๋™์  ๋†’์ด ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• (+ mui)

Intro์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” react-virtuoso ์—์„œ ๋™์  ๋†’์ด๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์ €๋Š” third-party mui tabler๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.  My casereact-virtuoso mui table ์‚ฌ์šฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. height ๋ฅผ ์„ค์ •ํ•ด์ค„ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ ์ •๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. export default function ReactVirtualizedTable() { return ( );} ์ œ ์ผ€์ด์Šค์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ rows ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๊ณ , ๊ทธ ๋ฐ์ดํ„ฐ๋“ค์€ ๊ฐ๊ฐ ๋†’์ด๊ฐ€ ๋‹ฌ๋ผ์„œ height๋ฅผ ๋™์ ์œผ๋กœ ์„ค์ •ํ•ด์ค˜์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ์š”?  How to solve the problemimport Re..

Framework/React 2024.09.02

[React] react-virtuoso๋ฅผ ์‚ฌ์šฉํ•œ mui react Table ๋ Œ๋”๋ง ์ตœ์ ํ™” ์„ฑ๋Šฅ๊ฐœ์„  ๋ฐฉ๋ฒ•

Intro์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” react-virtuoso ๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ, react virtuoso ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ react table ๋ Œ๋”๋ง ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Issuemui react table์„ ์‚ฌ์šฉํ•˜๋˜ ๋„์ค‘ ๋ฐ์ดํ„ฐ ์–‘์ด ๋งŽ์•„์ง€๋ฉด์„œ ํ…Œ์ด๋ธ”์ด ๊ทธ๋ ค์ง€๋Š” ์†๋„๊ฐ€ ๋Š๋ ค์ ธ ์„œ๋น„์Šค ์ด์šฉ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๋”ฐ๋ผ์„œ react table์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ์„  ๋ฐฉ์•ˆ์„ ์ฐพ์•„์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.  ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„œ์น˜ํ•˜๋˜ ๋„์ค‘ TanStack ์™€, mui ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— Virtualized table ๋ถ€๋ถ„์— ์†Œ๊ฐœ๋˜์–ด ์žˆ๋Š” react-virtuoso ๋‘๊ฐœ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฐœ๊ฒฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. star์˜ ์ˆ˜ ์ž์ฒด๋Š” TanStack์ด ๋” ๋†’์•˜์ง€๋งŒ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์ด ๋” ์‰ฝ๊ณ , ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ์šฉ์ดํ•˜..

Framework/React 2024.09.01

[AWS] RDS ๋ž€?

Intro์•ˆ๋…•ํ•˜์„ธ์š”. AWS ๊ด€๋ จ ์šฉ์–ด ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์€ ์ƒํ™œ์ฝ”๋”ฉ์˜ AWS ์•„๋งˆ์กด ์›น ์„œ๋น„์Šค(Amazon Web Services) ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.  RDS-1์•„๋งˆ์กด RDS๋Š” Amazon Relational Database Service์˜ ์ค„์ž„๋ง์ž…๋‹ˆ๋‹ค. ์ฆ‰ ์ปดํ“จํ„ฐ์— DB๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋Œ€์‹  ์šด์˜ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

Devops/AWS 2024.08.06

[AWS] S3๋ฅผ ์„œ๋ฒ„๋กœ ํ™œ์šฉํ•˜๊ธฐ, CloundFront ์ด์šฉํ•ด์„œ ์ „ ์„ธ๊ณ„ ๋ฐฐํฌํ•˜๊ธฐ

Intro์•ˆ๋…•ํ•˜์„ธ์š”. AWS ๊ด€๋ จ ์šฉ์–ด ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์€ ์ƒํ™œ์ฝ”๋”ฉ์˜ AWS ์•„๋งˆ์กด ์›น ์„œ๋น„์Šค(Amazon Web Services) ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.  S3๋ฅผ ์„œ๋ฒ„๋กœ ํ™œ์šฉํ•˜๊ธฐCloudFront๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋” ์ด์ƒ ์šฐ๋ฆฌ์˜ ์›น ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์ง์ ‘ ๋งŒ๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ CloudFront๋กœ ์ ‘์†ํ•˜๊ฒŒ ๋˜๋ฉด CloudFront๊ฐ€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ผ์„œ ์›น ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์›น ์„œ๋ฒ„๊ฐ€ ์ž์‹ ์˜ ์ •๋ณด๋ฅผ CloudFront์— ์ „์†กํ•˜๊ณ , CloudFront๋Š” ์›น ์„œ๋ฒ„์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ์‚ฌ์šฉ์ž๊ฐ€ CloudFront๋ฅผ ์ ‘์†ํ–ˆ์„ ๋•Œ ์›น ์„œ๋ฒ„์˜ ์ •๋ณด๋ฅผ CloudFront๊ฐ€ ์ €์žฅํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ ๋‹ค์Œ์˜ ์š”์ฒญ์€ CloudFront๊ฐ€ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.  ์›น ์„œ๋ฒ„๋Š” ..

Devops/AWS 2024.07.24

[AWS] AWS ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•, S3๋กœ ํ•˜๋Š” ํŒŒ์ผ ๊ด€๋ฆฌ

Intro์•ˆ๋…•ํ•˜์„ธ์š”. AWS ๊ด€๋ จ ์šฉ์–ด ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์€ ์ƒํ™œ์ฝ”๋”ฉ์˜ AWS ์•„๋งˆ์กด ์›น ์„œ๋น„์Šค(Amazon Web Services) ์ฑ…์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.  AWS ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…: ์ธํ„ฐ๋„ท ๋„ˆ๋จธ์— ์žˆ๋Š” ๋‚จ์˜ ์ปดํ“จํ„ฐ๋ฅผ ๊ตฌ๋ฆ„ (cloud)์— ๋น„์œ ํ•ด์„œ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์ด๋ผ๋Š” ์ด๋ฆ„์ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„, ์Šคํ† ๋ฆฌ์ง€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋„คํŠธ์›Œํ‚น ๋“ฑ์˜ ์ปดํ“จํŒ… ์„œ๋น„์Šค๋ฅผ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์˜จ๋””๋งจ๋“œ๋กœ ์ œ๊ณตํ•˜๊ณ , ์‚ฌ์šฉํ•œ ๋งŒํผ๋งŒ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŒ…(hosting): ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ๋ฅผ ๋นŒ๋ ค์ค˜์„œ ์„œ๋ฒ„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.ํ˜ธ์ŠคํŠธ(host): ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ ํ•œ ๋Œ€๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. EC2(Elastic Compute Cloud): AWS์—์„œ ๋…๋ฆฝ๋œ ์ปด..

Devops/AWS 2024.07.22

[React] react-apexcharts y์ถ• (yaxis) ๋‹จ์œ„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

Intro์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” react-apexcharts ์˜ y์ถ• ๋‹จ์œ„๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  How to solve the problem๊ธฐ์กด chart options ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ €์˜ ๊ฒฝ์šฐ y์ถ•์ด ํ™”ํ ๋‹จ์œ„์˜€๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ์ž๋ฆฟ์ˆ˜ ํ‘œ์‹œ๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. const options: any = { chart: { height: 250, type: 'bar', stacked: false, toolbar: false, animations: { enabled: true, easing: 'easeinout', speed: 500, }..

Framework/React 2024.07.21

[Linux] systemctl ๋ช…๋ น์–ด ์‚ฌ์šฉ ๋ฐฉ๋ฒ• & ํ”„๋กœ์„ธ์Šค ์ƒํƒœ ํ™•์ธ

Intro์•ˆ๋…•ํ•˜์„ธ์š”. ์ €๋Š” AWS EC2 ์ธ์Šคํ„ด์Šค์— ์„ค์น˜๋œ ๋ฆฌ๋ˆ…์Šค์˜ ์„œ๋น„์Šค ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด์•ผ ํ–ˆ๋Š”๋ฐ์š”, ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” systemctl ๋ช…๋ น์–ด ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ์„ธ์Šค ์ƒํƒœ ํ™•์ธ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Systemctl?systemctl๋Š” ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์—์„œ systemd ์‹œ์Šคํ…œ ๋ฐ ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž๋ฅผ ์ œ์–ดํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. systemd๋Š” ๋ฆฌ๋ˆ…์Šค์˜ ์ดˆ๊ธฐํ™” ์‹œ์Šคํ…œ์œผ๋กœ ๋ถ€ํŒ… ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์‹œ์Šคํ…œ ์„œ๋น„์Šค ์‹œ์ž‘ ๋ฐ ์ค‘์ง€ ์ƒํƒœ ์กฐํšŒ ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.How to command#1 ์„œ๋น„์Šค(ํ”„๋กœ์„ธ์Šค) ์‹œ์ž‘ ๋ฐ ์ค‘์ง€systemctl start [์„œ๋น„์Šค๋ช…]: ํŠน์ • ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.systemctl stop [์„œ๋น„์Šค๋ช…]: ํŠน์ • ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.systemctl restart [์„œ๋น„์Šค๋ช…]: ..

๋ฐ˜์‘ํ˜•