기본 콘텐츠로 건너뛰기

추천 가젯

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

파이썬 asyncio 입문 ⚡

Asyncio icon

파이썬 asyncio 입문 ⚡

asyncio는 파이썬에서 비동기 처리를 간편하게 구현할 수 있는 핵심 라이브러리입니다. 네트워크 I/O, 파일 읽기/쓰기, 타이머 연산 등을 효과적으로 처리할 수 있습니다.

1. 기본 비동기 함수 작성

import asyncio

async def say_hello():
    print("Hello")
    await asyncio.sleep(1)
    print("World")

asyncio.run(say_hello())

2. 병렬 태스크 여러 개 실행

import asyncio

async def worker(name, delay):
    await asyncio.sleep(delay)
    print(f"{name} 완료: {delay}초 지연")

async def main():
    tasks = [
        worker("작업A", 1),
        worker("작업B", 2),
        worker("작업C", 1.5)
    ]
    await asyncio.gather(*tasks)

asyncio.run(main())

3. 네트워크 I/O 예제

import asyncio
import aiohttp

async def fetch(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as resp:
            print(url, resp.status)
            return await resp.text()

async def main():
    urls = ["https://example.com", "https://httpbin.org/get"]
    results = await asyncio.gather(*(fetch(u) for u in urls))
    print("모든 요청 완료")

asyncio.run(main())

4. 타이머 기반 반복 작업

import asyncio

async def ticker(interval, count):
    for i in range(count):
        print(f"틱: {i}")
        await asyncio.sleep(interval)

asyncio.run(ticker(0.5, 5))

요약

  • async/await 문법으로 비동기 함수를 정의하고 실행할 수 있습니다.
  • asyncio.gather()로 여러 태스크를 동시에 실행할 수 있습니다.
  • aiohttp를 사용하면 네트워크 I/O를 비동기로 처리할 수 있습니다.
  • asyncio.sleep()를 활용해 비동기 반복 작업과 타이머 구현이 가능합니다.

댓글

가장 많이 본 글

Icons by Flaticon