기본 콘텐츠로 건너뛰기

추천 가젯

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

파이썬 데코레이터(Decorator) 완전 정리

파이썬 로고 아이콘

파이썬 데코레이터(Decorator) 완전 정리 🔄

데코레이터는 함수를 감싸 추가 기능을 적용하는 강력한 파이썬 기능으로, 코드 재사용성과 가독성을 높여줍니다.

1. 기본 함수 데코레이터

def my_decorator(func):
    def wrapper(*args, **kwargs):
        print("함수 실행 전 작업")
        result = func(*args, **kwargs)
        print("함수 실행 후 작업")
        return result
    return wrapper

@my_decorator
def say_hello(name):
    print(f"안녕하세요, {name}님")

say_hello("철수")

2. 인자 있는 데코레이터

def repeat(n):
    def decorator(func):
        def wrapper(*args, **kwargs):
            for _ in range(n):
                func(*args, **kwargs)
        return wrapper
    return decorator

@repeat(3)
def greet():
    print("안녕하세요")

greet()  # "안녕하세요"가 3번 출력됩니다.

3. 클래스 데코레이터

def add_repr(cls):
    cls.__repr__ = lambda self: f"<{cls.__name__} {self.__dict__}>"
    return cls

@add_repr
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("홍길동", 30)
print(p)  # <Person {'name': '홍길동', 'age': 30}>

요약

  • 함수를 감싸 기능을 확장할 수 있습니다.
  • @ 문법으로 적용하며, 수정 없이 기능 추가가 가능합니다.
  • 함수/클래스 데코레이터로 다양한 활용이 가능합니다.

댓글

가장 많이 본 글

Icons by Flaticon