기본 콘텐츠로 건너뛰기

추천 가젯

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

파이썬 id() 함수와 객체 메모리 주소 이해하기

파이썬 id() 함수와 객체 메모리 주소 이해하기 🧠

id() 함수는 파이썬에서 객체가 메모리상에 어떤 위치에 존재하는지를 알려주는 함수입니다. is 연산자와 함께 사용하면 객체가 동일한지를 판단할 수 있어 디버깅이나 최적화에 유용합니다.

Python memory id icon

✅ 이뮤터블 객체의 id

# 숫자는 같은 값이면 같은 객체로 간주됨 (이뮤터블)
a = 100
b = 100
print(id(a), id(b))       # 같은 ID
print(a is b)             # True
print(a == b)             # True

✅ 뮤터블 객체는 별도 메모리 할당

# 리스트는 각각 별도 객체 (뮤터블)
x = [1, 2, 3]
y = [1, 2, 3]
print(id(x), id(y))       # 다른 ID
print(x is y)             # False
print(x == y)             # True

✅ 변수 참조 복사 시 id 확인

# 참조 복사된 경우
z = x
print(id(x), id(z))       # 같은 ID
print(x is z)             # True

✅ 함수 내부에서 id 추적

# 함수 내에서 id()로 추적하기
def trace_obj(obj):
    print(f"ID: {id(obj)}, VALUE: {obj}")

trace_obj(x)
trace_obj(y)

id()를 잘 활용하면 객체 복사, 참조, 변경 여부 등을 파악해 버그를 사전에 잡고, 메모리 구조에 대한 이해도를 높일 수 있어요!

값이 같다고 같은 객체일까? id() 함수로 객체의 정체를 정확히 파악해보자. 🔍

Icons by Flaticon

댓글

가장 많이 본 글

Icons by Flaticon