기본 콘텐츠로 건너뛰기

추천 가젯

리액트 + 비트(Vite)로 모바일 청첩장 만들기 — 2편

모바일 청첩장 시리즈 2편 · R2 갤러리 & Firebase 방명록 Cloudflare R2 · Functions Firebase Firestore 클라우드플레어 R2로 갤러리 저장하고, Firebase로 방명록 달기 안녕하세요, 병민입니다 🙌 1편에서 전체 흐름을 잡았고, 이번엔 사진 업로드/보관 과 방명록 을 연결합니다. 서버는 따로 없고 Cloudflare Pages 를 쓰고 있으니, Pages Functions (= 워커)로 R2에 사전서명 URL을 만들어주고, 프론트에서 그 URL로 바로 업로드하는 구조예요. 방명록은 Firebase DB로 간단·안전하게! 전체 그림 프론트(React) → /api/r2/upload 로 업로드용 URL 요청 → R2에 파일 PUT 프론트(React) → /api/r2/list 로 목록 요청 → 갤러리 렌더 프론트(React) → Firebase SDK로 방명록 작성/조회 1) R2 버킷 & Pages Functions 준비 Cloudflare 대시보드 > R2 > Create bucket (예: wedding-gallery ) 버킷 > Settings > CORS 에서 사이트 도메인 허용(예: https://*.pages.dev , 커스텀 도메인) Pages 프로젝트 > Settings > Functions 에서 R2 바인딩 추가: ...

파이썬 tarfile 모듈 완전 정복 🎯 — TAR 압축/해제 자동화

파이썬 tarfile 모듈 완전 정복 🎯 — TAR 압축/해제 자동화 tarfile 아이콘

파이썬 tarfile 모듈 완전 정복 🎯

tarfile 모듈은 파이썬 표준 라이브러리로, TAR, TAR.GZ, TAR.BZ2 같은 압축 파일을 쉽게 다룰 수 있습니다. 리눅스·서버 환경에서 로그 백업이나 대용량 데이터 아카이브에 특히 유용합니다.

1) TAR 파일 생성

import tarfile

# 파일 여러 개 묶기
with tarfile.open("archive.tar", "w") as tar:
    tar.add("file1.txt")
    tar.add("file2.txt")

print("archive.tar 생성 완료!")

2) TAR 파일 해제

import tarfile

with tarfile.open("archive.tar", "r") as tar:
    tar.extractall("output_folder")
print("압축 해제 완료!")

3) 내부 파일 목록 확인

with tarfile.open("archive.tar", "r") as tar:
    print(tar.getnames())  # ['file1.txt', 'file2.txt']

4) gzip, bz2 압축 지정

import tarfile

# gzip 압축
with tarfile.open("archive.tar.gz", "w:gz") as tar:
    tar.add("file1.txt")

# bz2 압축
with tarfile.open("archive.tar.bz2", "w:bz2") as tar:
    tar.add("file2.txt")

5) 활용 팁 & 주의사항

  • w: tar만, w:gz: gzip 압축, w:bz2: bz2 압축
  • 압축 해제는 r, r:gz, r:bz2 로 읽기 모드를 맞추면 됩니다.
  • 보안상 extractall() 사용 시 경로 조작(Path Traversal) 문제를 주의하세요.
  • 압축률이 중요하면 bz2, 속도가 중요하면 gzip을 권장합니다.

요약

  • tarfile 모듈로 TAR, TAR.GZ, TAR.BZ2 처리 가능
  • with 구문으로 안전하게 열고 닫기
  • 백업, 로그 보관, 대용량 데이터 처리에 유용
  • 압축 형식에 따라 모드(w:gz, w:bz2) 지정

FAQ

Q1. zip과 tar의 차이는 뭔가요?
A. zip은 파일 개별 압축+묶음, tar는 먼저 묶고 압축은 별도로 지정(gz/bz2)합니다. tar가 리눅스/유닉스에서 표준입니다.

Q2. 압축하지 않고 묶기만 가능한가요?
A. 네, w 모드로 열면 압축 없이 tar 아카이브를 만듭니다.

댓글

가장 많이 본 글

Icons by Flaticon