๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒฑ ๊ฐœ๋ฐœ ๋…ธํŠธ

[๊ฐœ๋ฐœ ๋…ธํŠธ] ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•œ Workbook 3์ข… ๋น„๊ต

by OR15A 2024. 7. 3.
  • ์‹ ์ž…๊ต์œก์šฉ ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜๋ฉด์„œ ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค
  • ๋‚ด๊ฐ€ ์ฐพ์•˜๋˜ ๋ชฉ๋ก ๋ฐ์ดํ„ฐ๋ฅผ ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 3๊ฐ€์ง€

 

 ์—‘์…€ ๋‹ค์šด๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๐Ÿ“— Workbook ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค
    • Apache POI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ๐Ÿ‘๐Ÿป์žฅ์ 
      • ๊ณ ๊ฐ์ด ์›ํ•˜๋Š” ๋ฐ์ฝ”๋ ˆ์ด์…˜ ๋ฐ ํฌ๋งท์„ ์ž์œ ๋กญ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ
      • ๋‹ค์–‘ํ•œ ์—‘์…€ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•จ(์„œ์‹, ์ฐจํŠธ ์ƒ์„ฑ ๋“ฑ)
    • ๐Ÿ‘Ž๐Ÿป๋‹จ์ 
      • ์ƒ๋Œ€์ ์œผ๋กœ ๊ตฌํ˜„์ด ๋ณต์žกํ•จ
      • ํŠนํžˆ XSSFWorkbook์˜ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋งŽ์Œ
  • ๐Ÿ“—  List ๋ฐ์ดํ„ฐ ๋ถ€๋ถ„๋งŒ ๋”ฐ๋กœ ์—‘์…€์šฉ JSP๋กœ ๋ฐ˜ํ™˜
    • ์„œ๋ธ”๋ฆฟ์„ ์ด์šฉํ•˜์—ฌ JSP์—์„œ ์—‘์…€ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ๐Ÿ‘๐Ÿป์žฅ์ 
      • ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ
      • ํ—ค๋”๋ฅผ xls ํƒ€์ž…์œผ๋กœ ์„ค์ •ํ•ด์„œ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•ด์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๋น ๋ฆ„
    • ๐Ÿ‘Ž๐Ÿป๋‹จ์ 
      • ๋ณต์žกํ•œ ์—‘์…€ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ์–ด๋ ค์›€, ํฌ๋งทํŒ…์ด ์ œํ•œ์ ์ž„
      • ์—‘์…€ ๊ฒฐ๊ณผ๋ฌผ์ด ์‹ฌ๋ฏธ์ ์œผ๋กœ ๋ถ€์กฑํ•จ
  • ๐Ÿ“—  Sheet.js๋ฅผ ์ด์šฉ
    • JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ Sheet.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์—‘์…€ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ๐Ÿ‘๐Ÿป์žฅ์ 
      • ์‚ฌ์šฉ์ด ๋งค์šฐ ๊ฐ„ํŽธํ•จ
      • ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์—‘์…€ ํŒŒ์ผ์„ ๋ฐ”๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ
      • ์˜คํ”ˆ์†Œ์Šค ์ด๋ฏ€๋กœ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•จ
    • ๐Ÿ‘Ž๐Ÿป๋‹จ์ 
      • ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ
      • ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ํŒŒ์ผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์— ์ฃผ์˜ํ•ด์•ผํ•จ

 

 

  • ๊ฐ€์žฅ ๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฌ์› ๋˜ ์ˆœ์„œ๋Œ€๋กœ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ•ด๋ณด๊ณ ( Sheet.js → JSP   Workbook ) ํŒ€ ์„ ๋ฐฐ๋‹˜๊ป˜ ์ž๋ฌธ์„ ๊ตฌํ–ˆ๋‹ค
  • ๋‹ค์–‘ํ•œ ์—‘์…€ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ ๋•Œ๋ฌธ์— Workbook ๋ฐฉ๋ฒ•์„ ๊ถŒ์œ ํ•ด์ฃผ์…จ๊ณ  ๋”๋ถˆ์–ด Workbook์˜ 3๊ฐ€์ง€์— ๋Œ€ํ•ด ์•Œ์•„์˜ค๋ผ๋Š” ๊ณผ์ œ๋ฅผ ๋‚ด์ฃผ์…จ๋‹ค.

 

 

Apache POI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—‘์…€ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ฃผ์š” ์›Œํฌ๋ถ ํด๋ž˜์Šค
  • ๐Ÿ“Š HSSFWorkbook
    • Excel 97-2007 (.xls) ํ˜•์‹์˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•จ
    • ๐Ÿ‘๐Ÿป์žฅ์ 
      • ๊ฐ€๋ฒผ์šด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ, ๋น„๊ต์  ๋น ๋ฅธ ์ฒ˜๋ฆฌ์†๋„
    • ๐Ÿ‘Ž๐Ÿป๋‹จ์ 
      • ์ตœ๋Œ€ 65,536ํ–‰๊ณผ 256์—ด๋กœ ์ œํ•จ
      • ์ตœ์‹  Excel ํ˜•์‹(.xlsx) ์ง€์› ๋ถˆ๊ฐ€๋Šฅ
  • ๐Ÿ“Š  XSSFWorkbook
    • Excel 2007 ์ด์ƒ (.xlsx) ํ˜•์‹์˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•จ
    • ์ž๋ฐ”๊ธฐ์ค€ Read,Write ๊ฐ€๋Šฅ
    • ๐Ÿ‘๐Ÿป์žฅ์ 
      • ์ตœ์‹  Excel ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋ฉฐ, ํ–‰๊ณผ ์—ด์˜ ์ œํ•œ์ด ์—†๊ฑฐ๋‚˜ ๋งค์šฐ ๊ธˆ
    • ๐Ÿ‘Ž๐Ÿป๋‹จ์ 
      • ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด HSSFWorkbook๋ณด๋‹ค ๋†’์œผ๋ฉฐ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ๋น„ํšจ์œจ์ 
  • ๐Ÿ“Š  SXSSFWorkbook โœ…
    • SXSSF๋Š” ๋Œ€์šฉ๋Ÿ‰ Excel ํŒŒ์ผ(.xlsx)์„ ์ƒ์„ฑํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๋Š” ๋ฐ ์‚ฌ์šฉํ•จ
    • ์ž๋ฐ”๊ธฐ์ค€ Write ๊ฐ€๋Šฅ
    • ๐Ÿ‘๐Ÿป์žฅ์ 
      • ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํฌ๊ฒŒ ์ค„์ด๋ฉฐ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ๋งค์šฐ ํšจ์œจ์ 
    • ๐Ÿ‘Ž๐Ÿป๋‹จ์ 
      • ์ด๋ฏธ ์“ด ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์‹œ ์ฝ์„ ์ˆ˜ ์—†๊ณ , ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Œ
  •  

 

 

XSSFWorkbook๊ณผ SXSSFWorkbook ๋น„๊ต 
  ๐Ÿ“Š  XSSFWorkbook ๐Ÿ“Š  SXSSFWorkbook
์ƒ์„ฑ ๋ฐฉ์‹ ํŒŒ์ผ ์ƒ์„ฑ ์ „๊นŒ์ง€ ๋ชจ๋“  row๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆผ ์ง€์ •ํ•œ row ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ณ ,
์ดˆ๊ณผ์‹œ ์ด์ „ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์— ์ž„์‹œํŒŒ์ผ๋กœ ์ €์žฅํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋น„์›€
์ž๋ฐ” ์ฝ”๋“œ์—์„œ Read, Write ๊ฐ€๋Šฅ Write ๊ฐ€๋Šฅ
(์ด์ „ ๋ฐ์ดํ„ฐ๋Š” ๋””์Šคํฌ๋กœ ์ด๋™ํ•˜๋ฏ€๋กœ Read ๋ถˆ๊ฐ€๋Šฅ)
OOM
(Out of Memory)
OOM ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์–ด์„œ ์œ„ํ—˜ํ•จ OOM์— ์•ˆ์ „ํ•จ
์ฃผ์˜์  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ „ ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ๋Ÿ‰ ํ‰๊ฐ€๊ฐ€ ์„ ํ–‰๋˜์–ด์•ผ ํ•จ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ค€๋น„ํ•ด์•ผ ํ•จ
์—‘์…€ ๊ธฐ๋Šฅ ์—‘์…€ ๋ฐ์ดํ„ฐ ์–‘์ด ์ ๊ณ , ๋ณต์žกํ•œ ์„œ์‹์ด๋‚˜ ์ฐจํŠธ ๊ฐ™์€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•จ ์—‘์…€์˜ ์ฐจํŠธ ๊ฐ™์€ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•จ
์„ฑ๋Šฅ ์ž‘์€ ๋ฐ์ดํ„ฐ์…‹์— ์ ํ•ฉ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์— ์ ํ•ฉ
์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ณด๊ณ ์„œ, ๋ถ„์„ ์ž๋ฃŒ ๋“ฑ ๋Œ€๊ทœ๋ชจ ๋กœ๊ทธ ํŒŒ์ผ, ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
์ตœ์ข… ์ฑ„ํƒ๋ฐฉ๋ฒ•   โœ