Laravel-excel: ๋Œ€๊ธฐ์ค‘์ธ ๋‚ด๋ณด๋‚ด๊ธฐ์— ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2020๋…„ 07์›” 02์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Maatwebsite/Laravel-Excel

์ „์ œ ์กฐ๊ฑด

๋ฒ„์ „

  • PHP ๋ฒ„์ „ :7.1.3
  • ๋ผ ๋ผ๋ฒจ ๋ฒ„์ „ :5.8
  • ํŒจํ‚ค์ง€ ๋ฒ„์ „ :3.1

๊ธฐ์ˆ 

์ €๋Š”์ด ํŒจํ‚ค์ง€๋ฅผ 1 ๋…„ ๋„˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์™€ ์„ฑ๋Šฅ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์—ญ์‚ฌ์ ์ธ ๋ฐ์ดํ„ฐ. ๊ทธ๋ž˜์„œ ๋ฌธ์„œ๋ฅผ ์ฝ๊ณ  ๋Œ€๊ธฐ ์„น์…˜์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์™„๋ฒฝํ•œ ์†”๋ฃจ์…˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๊ธฐ์ค‘์ธ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฒญํฌ๋ณ„๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ž‘์—…์ด ๋ฐœ์†ก๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๋ฐœ์†ก ๋œ ๊ฐ ์ž‘์—… (AppendQueryToSheet)์€ ๋งˆ์ง€๋ง‰ ์ž‘์—…๋ณด๋‹ค ์™„๋ฃŒํ•˜๋Š” ๋ฐ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ตœ์ข… ์ž‘์—… (CloseSheet)์„ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์งˆ๋ฌธ์€ : ยฟ ์ด๊ฒƒ์ด ๋Œ€๊ธฐ ๋‚ด๋ณด๋‚ด๊ธฐ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๊นŒ? ยฟ ๋˜๋Š” ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์ถ”๊ฐ€ ์ •๋ณด

Redis์™€ Horizon์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ช…์˜ ์ž‘์—…์ž์™€ ํ•จ๊ป˜ ํ•ด๋ดค์ง€๋งŒ ์ž‘์—…์ด ๋๋‚  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์ผ์ž๋ฆฌ๊ฐ€ ํŒŒ๊ฒฌ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ์€ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๋“ฑ๋ก ๋œ ์‹œ๊ฐ„์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก์ด ์ด๋ฏธ์ง€๋ฅผ ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

Selection_007

question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ชจ๋“  ์ฟผ๋ฆฌ๋Š” PhpSpreadsheet๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์Šคํ”„๋ ˆ๋“œ ์‹œํŠธ ํŒŒ์ผ์„ ๋‹ค์‹œ ์—ด์–ด์•ผํ•˜๋ฏ€๋กœ ์‹ค์ œ๋กœ ์ถ”๊ฐ€ ํ•  ๋•Œ๋งˆ๋‹ค ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ํ–ฅ์ƒ์‹œํ‚ฌ 3.2์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณ„ํšํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  7 ๋Œ“๊ธ€

๋ชจ๋“  ์ฟผ๋ฆฌ๋Š” PhpSpreadsheet๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์Šคํ”„๋ ˆ๋“œ ์‹œํŠธ ํŒŒ์ผ์„ ๋‹ค์‹œ ์—ด์–ด์•ผํ•˜๋ฏ€๋กœ ์‹ค์ œ๋กœ ์ถ”๊ฐ€ ํ•  ๋•Œ๋งˆ๋‹ค ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ํ–ฅ์ƒ์‹œํ‚ฌ 3.2์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณ„ํšํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ํฌ๊ธฐ๋„ ๋ฐฉ๋Œ€ํ•˜์ง€ ์•Š๊ณ  5-10MB์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. CPU ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๊ธ‰์ฆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํŒŒ์ด์ฌ๊ณผ ํŒ๋‹ค๋กœ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ  ๊ทธ๊ฒƒ์€ ๋งŽ์ด ํ–ฅ์ƒ๋˜์—ˆ๊ณ  ๋‚˜๋Š” ๋งŽ์ด ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Laravel Excel์€ ํ›Œ๋ฅญํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด์ง€๋งŒ์ด ์ž‘์—…์—๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋„๊ตฌ๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ okmkey45 ๊ณต์ •ํ•˜๊ฒŒ

๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์—์„œ ํ›จ์”ฌ ๋” ๋น ๋ฅธ PHPSpreadsheet์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋Œ€์•ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ->queue ๋˜๋Š” ShouldQueue ?

@aakarim ๊ทธ๊ฒƒ์€ ์‹ค์ œ๋กœ ๋‚ด๊ฐ€ ๊ณ ๋ คํ•œ ๊ฒƒ์ด์ง€๋งŒ ํ˜„์žฌ ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•  ์‹œ๊ฐ„์ด๋‚˜ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ณ  ์˜ตํŠธ ์ธ์„ ์œ ์ง€ํ•˜๋Š” ํ•œ PR์„ ์œ„ํ•ด ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋งˆ๊ฐ์ผ์ด ์ง€๋‚˜๋ฉด ๋ฐฐ์‰ฌ๊ฐ€์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. @patrickbrouwers๋ฅผ ์„ ํ˜ธ / ์ถ”์ฒœํ•˜๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? https://github.com/box/spout ์€ ์‹œ์ž‘ํ•˜๊ธฐ์— ์ข‹์€ ๊ณณ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@aakarim ์˜ˆ ์ƒ์ž / ์ฃผ๋‘ฅ์ด. csv ๋งŒ ์›ํ•  ๊ฒฝ์šฐ league / csv๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋Œ€๋Ÿ‰ ๋Œ€๋Ÿ‰ ๊ฐ€์ ธ ์˜ค๊ธฐ / ๋‚ด๋ณด๋‚ด๊ธฐ์— ๊ฐ€์žฅ ๋น ๋ฅธ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰