기본 콘텐츠로 건너뛰기

추천 가젯

리액트 + 비트(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": ...

파이썬 functools 모듈 완전 정복 🧰

Function tools icon

파이썬 functools 모듈 완전 정복 🧰

functools 모듈은 함수형 프로그래밍을 지원하는 유용한 도구들을 제공합니다. 이 모듈을 활용하면 코드의 재사용성과 효율성을 높일 수 있습니다.

1. lru_cache: 결과 캐싱으로 성능 향상

from functools import lru_cache

@lru_cache(maxsize=None)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(30))  # 빠른 결과 출력

2. partial: 함수의 일부 인자 고정

from functools import partial

def multiply(x, y):
    return x * y

double = partial(multiply, 2)
print(double(5))  # 10

3. cmp_to_key: 사용자 정의 비교 함수로 정렬

from functools import cmp_to_key

def compare(a, b):
    return b - a  # 내림차순

numbers = [5, 2, 9, 1]
sorted_numbers = sorted(numbers, key=cmp_to_key(compare))
print(sorted_numbers)  # [9, 5, 2, 1]

4. wraps: 데코레이터 작성 시 메타데이터 유지

from functools import wraps

def my_decorator(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        print("Before function call")
        return func(*args, **kwargs)
    return wrapper

@my_decorator
def greet(name):
    """Greets a person by name."""
    print(f"Hello, {name}")

print(greet.__name__)  # greet
print(greet.__doc__)   # Greets a person by name.

요약

  • lru_cache를 사용하여 재귀 함수의 성능을 향상시킬 수 있습니다.
  • partial을 통해 함수의 일부 인자를 고정하여 새로운 함수를 생성할 수 있습니다.
  • cmp_to_key를 활용하여 사용자 정의 비교 함수로 정렬이 가능합니다.
  • wraps를 사용하면 데코레이터 적용 시 원래 함수의 메타데이터를 유지할 수 있습니다.

댓글

가장 많이 본 글

Icons by Flaticon