기본 콘텐츠로 건너뛰기

추천 가젯

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

파이썬 locals()와 globals() 함수 완전 정리

파이썬 locals()와 globals() 함수 완전 정리 🌐

locals()globals() 함수는 파이썬의 네임스페이스를 딕셔너리 형태로 반환해주는 매우 유용한 함수입니다. 디버깅, 메타프로그래밍, 동적 변수 추적 등에 자주 활용됩니다.

Python namespace icon

✅ globals() — 전역 네임스페이스 확인

# globals(): 전역 네임스페이스 확인
x = 100
print(globals()['x'])  # 100

✅ locals() — 함수 내부 로컬 네임스페이스 확인

# locals(): 함수 내 로컬 네임스페이스 확인
def sample():
    a = 10
    b = 20
    print(locals())

sample()

✅ locals()를 이용한 디버깅 도구 만들기

# locals()를 이용한 디버깅 도구 예시
def debug_variables():
    name = "Alice"
    age = 30
    for key, val in locals().items():
        print(f"{key} = {val}")

debug_variables()

✅ globals()를 활용한 동적 변수 설정

# globals()를 이용해 전역 변수 동적 설정
globals()['dynamic_var'] = "Hello World"
print(dynamic_var)  # Hello World

locals()globals()를 적절히 활용하면 디버깅, 동적 실행, 설정 로딩 등의 작업을 보다 유연하게 처리할 수 있습니다.

파이썬 네임스페이스를 이해하면 코드 흐름과 디버깅의 수준이 달라진다. 🚀

Icons by Flaticon

댓글

가장 많이 본 글

Icons by Flaticon