기본 콘텐츠로 건너뛰기

추천 가젯

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

파이썬 csv 모듈 완전 정복 📄

CSV file icon

파이썬 csv 모듈 완전 정복 📄

csv 모듈은 콤마로 구분된 데이터 파일을 쉽게 읽고 쓸 수 있도록 도와주는 유용한 표준 라이브러리입니다. 예제와 함께 사용법을 정리했습니다.

1. 간단한 CSV 파일 읽기

import csv

with open('data.csv', newline='', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)  # ['이름', '나이', '나라']

2. CSV 파일 쓰기

import csv

data = [
    ['이름', '점수', '비고'],
    ['철수', '85', '합격'],
    ['영희', '92', '우수']
]

with open('result.csv', 'w', newline='', encoding='utf-8') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerows(data)

3. `DictReader`로 키-값 형태 읽기

import csv

with open('data.csv', newline='', encoding='utf-8') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(f"{row['이름']}({row['나라']}) - {row['나이']}세")

4. `DictWriter`로 키-값 형태 쓰기

import csv

fields = ['이름', '나이', '국가']
rows = [
    {'이름': '홍길동', '나이': '29', '국가': '한국'},
    {'이름': 'Chulsoo', '나이': '31', '국가': 'Korea'}
]

with open('people.csv', 'w', newline='', encoding='utf-8') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=fields)
    writer.writeheader()
    writer.writerows(rows)

요약

  • csv.readercsv.writer로 간단한 행 기반 CSV 처리.
  • DictReaderDictWriter로 키-값 형태의 CSV 읽기·쓰기 지원.
  • UTF‑8 인코딩을 명시해 한글 파일도 안전하게 출력·입력할 수 있습니다.

댓글

가장 많이 본 글

Icons by Flaticon