기본 콘텐츠로 건너뛰기

추천 가젯

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

파이썬 time 모듈로 코드 실행 시간 측정하기

파이썬 time 모듈로 코드 실행 시간 측정하기 ⏱️

성능 최적화나 알고리즘 비교를 할 때, 실행 시간을 측정하는 것은 매우 중요합니다. 파이썬에서는 time 모듈의 time() 함수를 사용해 간단하게 측정할 수 있어요.

시간 측정 아이콘

✅ 코드 실행 시간 측정

실행 전후 시간을 기록하고, 그 차이를 출력하면 됩니다.

import time

start = time.time()

# 실행할 코드
for _ in range(1000000):
    pass

end = time.time()
print(f"실행 시간: {end - start:.4f}초")

✅ 성능 비교 예제: 리스트 생성 방식

리스트 컴프리헨션과 append 방식의 성능 차이를 측정해봅니다.

# 리스트 생성 속도 비교
import time

start = time.time()
a = [i for i in range(1000000)]
end = time.time()
print("리스트 컴프리헨션:", end - start)

start = time.time()
b = []
for i in range(1000000):
    b.append(i)
end = time.time()
print("for문 append:", end - start)

time.time()은 초 단위의 부동소수(float) 값을 반환하므로 간단한 시간 측정에는 충분히 정밀합니다. 더 복잡한 측정이 필요하면 time.perf_counter()도 고려해볼 수 있어요.

성능은 측정에서 시작됩니다. 눈으로 확인할 수 있어야, 최적화도 가능합니다. 작은 시간을 아끼는 습관이 더 나은 코드를 만듭니다. 🚀

Icons by Flaticon

댓글

가장 많이 본 글

Icons by Flaticon