기본 콘텐츠로 건너뛰기

추천 가젯

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

🖨️ pprint로 Python 데이터 구조를 시각적으로 정렬하기

Pretty Print icon

🖨️ pprint로 Python 데이터 구조를 시각적으로 정렬하기

pprint는 `repr()` 기반 출력 대신 사람이 읽기 좋고 들여쓰기된 형태로 데이터를 보여줘 디버깅이나 로그 확인에 매우 유용합니다.

✅ 1. 기본 사용법

import pprint

data = {'users':[{'id':1,'name':'Alice','roles':['admin','user']},
                {'id':2,'name':'Bob','roles':['user']}],
        'count':2}

pprint.pprint(data)
  • 중첩 구조를 계층적으로 보여줘 한눈에 파악 가능합니다.

✅ 2. `indent`, `width`, `compact` 옵션

pprint.pprint(data, indent=2, width=40, compact=True)
  • `indent=2`: 들여쓰기 수준 설정
  • `width=40`: 한 줄 최대 너비 제한
  • `compact=True`: 가능한 한 한 줄로 표현하여 간결한 구조 유지

✅ 3. 리스트, 튜플 혼합 구조에서 줄 나누기

mixed = [{'a': list(range(8))}, {'b': tuple(range(8))}]
pprint.pprint(mixed, width=60)
  • 폭이 넓어도 출력 가독성을 위해 적절히 줄바꿈 포함할 수 있음.

✅ 4. `PrettyPrinter` 클래스 커스터마이징

from pprint import PrettyPrinter

pp = PrettyPrinter(indent=4, width=50)
pp.pprint(data)
  • 여러 출력 스타일을 반복 사용할 때 객체로 선언하면 유용합니다.

✅ 5. JSON-like 출력: `sort_dicts` 설정 (Python 3.8+)

import pprint

data2 = {'z':1,'a':2}
pprint.pprint(data2, sort_dicts=False)  # 순서 유지 출력
  • 기본적으로는 key 정렬하지만, `sort_dicts=False`로 입력 순서를 유지 가능.

✅ 6. 실전 예제: 디버그 로그에 pprint 통합

import logging, pprint

data = {...}  # 복잡한 구조
logger = logging.getLogger("app")
handler = logging.StreamHandler()
logger.setLevel(logging.DEBUG)

@pprint.PrettyPrinter(indent=2, width=60).pformat
def fmt(x): return fmt(x)

logger.debug("데이터 구조:\n%s", pprint.pformat(data))
  • 디버그 레벨 로그에 구조를 깔끔하게 출력해 읽기 쉽게 관리.

✨ 요약 & 활용 팁

  • 복잡한 구조 출력 시 `pprint()`는 가장 간단하고 직관적
  • `indent`, `width`, `compact` 옵션으로 출력 형태 자유롭게 조정
  • `PrettyPrinter` 객체로 스타일 반복 제어 가능
  • Python 3.8+부터는 `sort_dicts=False`로 순서 유지 출력
  • 디버그, 로그, 데이터 분석 리포트 출력에 적극 활용!

댓글

가장 많이 본 글

Icons by Flaticon