기본 콘텐츠로 건너뛰기

추천 가젯

리액트 + 비트(Vite)로 모바일 청첩장 만들기 — 1편

모바일 청첩장 시리즈 1편 · 기획/스택/배포 리액트 + 비트(Vite)로 모바일 청첩장 만들기 — 1편 안녕하세요, 이번에 결혼 준비를 하면서 여자친구와 같이 모바일 청첩장 을 만들고 있어요. 여자친구가 디자인을 해서 전달해주면 제가 개발을 진행하고 있어요. 이 글은 구현기 1편 으로, 전체 흐름과 스택, 배포 구성까지 “부담 없이” 훑어봅니다. (코드는 여러 버전 테스트 중!) 이 글에서 보는 것 왜 SPA 모바일 청첩장인가? 기본 스택 & 폴더 구조 라우팅 선택: HashRouter가 편한 이유 Cloudflare Pages로 자동 배포 현재 진행 중인 UI 버전들(테스트 기록) 1) 왜 SPA 모바일 청첩장인가? 모바일 청첩장은 핵심이 명확해요. 가볍고 빠르고 끊김이 없어야 하고, 사진/지도/일정이 터치에 친화적 이어야 합니다. 그래서 React + Vite 로 싱글 페이지 앱(SPA)을 구성했고, 정적 호스팅(CDN)인 Cloudflare Pages 에 올려 GitHub 푸시 → 자동 배포 까지 한 번에 묶었습니다. UX 팁 · 이미지 WebP, loading="lazy" 기본 · 큰 터치 타깃 · BGM은 “사용자 탭 후” 재생(모바일 정책) 2) 기본 스택 & 폴더 구조 서버는 따로 두지 않았고, 정적 빌드 결과물( dist/ )만 올립니다. 현재 의존성은 아래와 같아요. package.json(요약) { "name": ...

파이썬 enumerate()와 zip()을 활용한 실전 반복문 최적화

파이썬 enumerate()와 zip()을 활용한 실전 반복문 최적화 🔁

반복문을 작성할 때 enumerate()zip()을 잘 활용하면 더 깔끔하고 효율적인 코드를 만들 수 있습니다. 이번 글에서는 두 함수를 **개별적으로** 사용하는 방법부터, **함께 조합하여 반복문을 최적화**하는 실전 패턴까지 정리해봅니다.

반복문 최적화 아이콘

✅ enumerate()와 zip() 각각 사용

인덱스가 필요한 경우 enumerate(), 두 리스트를 병렬로 반복할 경우 zip()을 사용할 수 있습니다.

# enumerate와 zip 개별 사용 예시
names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]

for i, name in enumerate(names):
    print(i, name)

for name, score in zip(names, scores):
    print(name, score)

✅ enumerate + zip 조합 패턴

두 리스트를 동시에 반복하면서 각 요소의 인덱스까지 함께 추적해야 할 때 아래와 같이 활용할 수 있어요.

# enumerate + zip 함께 사용한 반복문
for i, (name, score) in enumerate(zip(names, scores)):
    print(f"{i+1}. {name} - {score}점")

✅ zip은 가장 짧은 리스트 길이에 맞춰 반복

zip()은 길이가 다른 리스트를 처리할 때, 가장 짧은 쪽 기준으로 반복됩니다.

# 리스트의 길이가 다를 경우 zip은 짧은 쪽에 맞춰 반복
names = ['Alice', 'Bob']
scores = [90, 85, 77]

for i, (name, score) in enumerate(zip(names, scores)):
    print(f"{i+1}. {name} - {score}")

이러한 반복문 패턴은 데이터 가공, 출력 포맷 지정, 인덱스 기반 매핑 등 실전에서 매우 유용합니다. for i, (a, b) in enumerate(zip(...)) 구조를 자유롭게 활용해보세요!

반복을 잘 다루는 개발자가 깔끔한 코드를 만드는 법을 압니다. 오늘도 단단한 기초, 미래의 성장을 만들어갑니다. 🚀

Icons by Flaticon

댓글

가장 많이 본 글

Icons by Flaticon