기본 콘텐츠로 건너뛰기

추천 가젯

리액트 + 비트(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 바인딩 추가: ...

파이썬 shutil 모듈 완전 정복 🧰

Copy file icon

파이썬 shutil 모듈 완전 정복 🧰

shutil 모듈은 고수준의 파일 및 디렉터리 작업을 쉽게 수행할 수 있게 해주는 라이브러리입니다. 백업, 정리, 디스크 사용량 측정 등 다양한 상황에서 유용합니다.

1. 파일 복사 및 이동

import shutil

# 단일 파일 복사
shutil.copy('source.txt', 'dest.txt')

# 권한, 메타데이터 포함 복사
shutil.copy2('source.txt', 'backup/source_backup.txt')

# 파일 이동(또는 이름 변경)
shutil.move('old.txt', 'new_folder/renamed.txt')

2. 디렉터리 복사 및 삭제

import shutil

# 디렉터리 전체 복사
shutil.copytree('src_folder', 'dst_folder')

# 디렉터리 전체 삭제
shutil.rmtree('dst_folder')

3. 디스크 사용량 확인

import shutil

total, used, free = shutil.disk_usage('/')
print(f"전체: {total // (2**30)}GB, 사용: {used // (2**30)}GB, 남음: {free // (2**30)}GB")

4. 아카이브(압축) 생성 및 추출

import shutil

# 압축 생성(zip)
shutil.make_archive('backup', 'zip', 'src_folder')

# 압축 해제
shutil.unpack_archive('backup.zip', 'extract_folder')

요약

  • copy/copy2로 파일 복사, move로 파일 이동 가능
  • copytreermtree로 디렉터리를 폴더 단위로 복사·삭제 가능
  • disk_usage로 디스크 용량을 쉽게 계산할 수 있음
  • make_archive/unpack_archive로 zip/tar 압축 생성 및 해제 지원

댓글

가장 많이 본 글

Icons by Flaticon