1. ์ด ๋๊ตฌ๋ ๋ฌด์์ ํ๋์
์ด ๋ฌด๋ฃ ์จ๋ผ์ธ ์์ถ ํด์ ยท์์ถ ๋๊ตฌ๋ ZIPยทGZIP ํ์ผ์ ๋ธ๋ผ์ฐ์ ์์ ์์ถ ํด์ ํ๊ฑฐ๋ ์์ถํฉ๋๋ค. ์ ๋ก๋ยท์๋ฒ ์์ด ZIP ์์ถ ํด์ , ์์ถ ํ๊ธฐ, ZIP์ผ๋ก ์์ถ, gzip์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ถ ํด์ : .zip ๋๋ .gz๋ฅผ ์ด์ด ๋ด์ฉ์ ๋์ดยท๋ค์ด๋ก๋. ์์ถ: ์ฌ๋ฌ ํ์ผ์ ZIP์ผ๋ก ๋ฌถ๊ฑฐ๋ ํ ํ์ผ์ .gz๋ก ์์ถ. ๋ชจ๋ ์ฒ๋ฆฌ๋ ๋ก์ปฌ์์ ์ด๋ฃจ์ด์ ธ ๋ฐ์ดํฐ๊ฐ ๋น๊ณต๊ฐ๋ก ์ ์ง๋ฉ๋๋ค. ๋ค์ด๋ก๋ ์์ถ ํ๊ธฐ, ZIP ์์นด์ด๋ธ ๋ง๋ค๊ธฐ, ๋จ์ผ ํ์ผ .gz ์์ถ์ ์ ํฉํฉ๋๋ค.
2. ์ฌ์ฉ ๋ฐฉ๋ฒ
๋น ๋ฅธ ์์: ์์ถ ํด์ โ.zip ๋๋ .gz๋ฅผ ๋๋กญํ๊ฑฐ๋ ์ด๊ณ ๋ชฉ๋ก์ ๋ณธ ๋ค, ํ์ผ ํ๋๋ฅผ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ์ ์ฒด ๋ค์ด๋ก๋. ์์ถโํ์ผ์ ์ถ๊ฐํ๊ณ ํ์ ์ ์์๋ฅผ ๋ฐ๊พผ ๋ค ์์ถ ํ ๋ค์ด๋ก๋.
์์ถ ํด์ ๋ชจ๋
- ์์ถ ํด์ ๋ฅผ ์ ํํ๊ณ .zip ๋๋ .gz ํ์ผ์ ๋๋กญํ๊ฑฐ๋ ์ด๊ธฐ.
- ํญ๋ชฉ(ํ์ผยทํด๋) ๋ชฉ๋ก ํ์ธ.
- ๋ค์ด๋ก๋๋ก ํ์ผ ํ๋๋ง ์ถ์ถํ๊ฑฐ๋ ์ ์ฒด ๋ค์ด๋ก๋๋ก ๋ชจ๋ ZIP์ผ๋ก ๋ฐ๊ธฐ.
- ํ์ผ ๋ณ๊ฒฝ โ ๋ค๋ฅธ ์์นด์ด๋ธ๋ฅผ ์ ํํด ์์ถ ํด์ .
์์ถ ๋ชจ๋
- ์์ถ์ ์ ํํ๊ณ ํ์ผ์ ํ๋ ์ด์ ์ถ๊ฐ.
- ์ฌ๋ฌ ํ์ผ โ .zip์ผ๋ก ๋ฌถ๊ธฐ. ๋จ์ผ ํ์ผ โ .gz๋ก ์์ถ.
- ์/์๋/์ญ์ ์ปจํธ๋กค๋ก ์์ ๋ณ๊ฒฝ ๋๋ ์ ๊ฑฐ.
- ์์ถ ํ ๋ค์ด๋ก๋๋ฅผ ๋๋ฌ ์์นด์ด๋ธ ์ ์ฅ.
3. ์๋ ๋ฐฉ์
ZIP ์ฒ๋ฆฌ๋ JSZip, GZIP์ fflate๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์คํ๋ฉ๋๋ค. File API๋ก ์ ๋ ฅ์ ์ฝ๊ณ , Blob/URL.createObjectURL๋ก ๋ค์ด๋ก๋๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. zip-slip ๋ฐฉ์ง๋ฅผ ์ํด ๊ฒฝ๋ก๋ฅผ ์ ์ ํฉ๋๋ค. ์ ํ: ์์นด์ด๋ธ 100MB, ์์ถ ์ 100๊ฐ ํ์ผ. ๋ชจ๋ ์ฒ๋ฆฌ๋ ๋ธ๋ผ์ฐ์ ์์ ํด๋ผ์ด์ธํธ ์ธก์ผ๋ก ์ด๋ฃจ์ด์ง๋ฉฐ ์๋ฒ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ก๋์ง ์์ต๋๋ค.
4. ์ฌ์ฉ ์ฌ๋ก ๋ฐ ์์
- ์์ถ ํ๊ธฐ โ ๋ฐ์คํฌํฑ ํ๋ก๊ทธ๋จ ์์ด ๋ค์ด๋ก๋ํ .zipยท.gz ์์ถ ํด์ .
- ZIP ๋ง๋ค๊ธฐ โ ์ฌ๋ฌ ํ์ผ์ ํ๋์ .zip์ผ๋ก ๋ฌถ์ด ๊ณต์ .
- Gzip โ ๋จ์ผ ํ์ผ์ .gz๋ก ์์ถํด ๋ณด๊ดยท์ ์ก.
- ๋น๊ณต๊ฐ โ ๋ฏผ๊ฐํ ์์นด์ด๋ธ๋ ๊ธฐ๊ธฐ์๋ง ์ ์ง๋ฉ๋๋ค.
5. ์ ํ ์ฌํญ ๋ฐ ์๋ ค์ง ์ ์ฝ
- ZIPยทGZIP๋ง ์ง์ (.tar, .7z, .rar ๋ฏธ์ง์).
- ์์ถ ํด์ ์ ์์นด์ด๋ธ ํฌ๊ธฐ 100MB ์ ํ.
- ZIP ์์ถ ์ ์ต๋ 100๊ฐ ํ์ผ.
- ๋งค์ฐ ํฐ ์์นด์ด๋ธ๋ ๋ธ๋ผ์ฐ์ ํญ์ด ๋๋ ค์ง ์ ์์ต๋๋ค.