기본 콘텐츠로 건너뛰기

추천 가젯

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

파이썬 제너레이터(generator)와 yield 완전 정복

파이썬 제너레이터(generator)와 yield 완전 정복 ⚙️

제너레이터(generator)는 메모리를 절약하면서 큰 데이터를 다룰 때 필수적인 기술입니다. yield 키워드를 통해 값을 하나씩 반환하며, 필요할 때마다 계산을 이어갈 수 있어요!

Python generator icon

✅ 제너레이터 기본 사용법

yield를 사용하면 값을 하나씩 반환하고, 함수 상태를 기억합니다.

# 제너레이터 기본 예제
def simple_gen():
    yield 1
    yield 2
    yield 3

gen = simple_gen()
print(next(gen))  # 1
print(next(gen))  # 2
print(next(gen))  # 3

✅ 무한 수열 생성하기

제너레이터는 메모리를 많이 쓰지 않고 무한 데이터도 처리할 수 있습니다.

# 제너레이터로 무한 수열 만들기
def infinite_counter(start=0):
    while True:
        yield start
        start += 1

counter = infinite_counter()
for _ in range(5):
    print(next(counter))

✅ 제너레이터를 활용한 조건 필터링

조건에 맞는 데이터만 걸러내는 필터링 제너레이터를 만들 수 있어요.

# 제너레이터를 활용한 필터링
def even_numbers(nums):
    for num in nums:
        if num % 2 == 0:
            yield num

numbers = [1, 2, 3, 4, 5, 6]
evens = even_numbers(numbers)
print(list(evens))  # [2, 4, 6]

제너레이터를 자유자재로 활용하면 대용량 데이터 처리나 스트림 처리에서도 파이썬 코드를 훨씬 더 효율적이고 가볍게 만들 수 있습니다!

필요할 때만 계산하는 지혜. 제너레이터를 마스터하면 당신의 코드가 한층 더 프로페셔널해진다. 🚀

Icons by Flaticon

댓글

가장 많이 본 글

Icons by Flaticon