💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

검색

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    미니프로젝트8 | ✅저자: 이유정(박사)

    프로젝트 코드명: OrderProcessor 프로젝트 유형: 상품 주문 처리 및 가격 계산 시스템

    🖥️ 프로젝트 개요

    사용자가 여러 개의 상품을 주문할 수 있도록 하고, 
    각 상품의 수량과 단가를 기반으로 총 주문 금액을 계산하는 콘솔 기반 주문 처리기를 구현합니다.
    상품 수, 항목 종류는 유동적이므로 가변 인자를 사용하고, 옵션은 키워드 인자로 처리합니다.
    

    ◽ 이 프로젝트를 통해 자연스럽게 적용되는 내용

    • 함수 정의 및 호출
    • 매개변수, 인자(위치/키워드)
    • 반환값과 리턴문
    • 가변 인자(*args)로 복수 상품 처리
    • 가변 키워드 인자(**kwargs)로 옵션 처리

    📄 기능 요구사항 (Functional Requirements)

    • FR-01 process_order(*items, **options) 함수
      • items: 각 상품은 (상품명, 수량, 단가) 튜플
      • options: 세금, 할인율 등 옵션
    • FR-02 총 상품 금액 출력
    • FR-03 세금 및 할인 계산 포함

    📄 비기능 요구사항 (Non-Functional Requirements)

    • 구조적 출력
    • 옵션이 없어도 기본값 적용 (예: 세금 10%)
    • 잘못된 입력에 대한 유연한 처리

    ✅ 출력 포맷 구성:

    주문 내역
    - 노트북 x 1개: 1500000원
    - 마우스 x 2개: 40000원
    총합: 1540000원
    세금 포함 총액: 1694000원
    할인 적용 후 최종 결제금액: 1524600

    ✅ 정답 코드:

    def process_order(*items, **options):
        tax = options.get("tax", 0.1)
        discount = options.get("discount", 0.1)
    
        print("주문 내역")
        total = 0
        for name, count, price in items:
            subtotal = count * price
            print(f"- {name} x {count}개: {subtotal}원")
            total += subtotal
    
        tax_amount = int(total * (1 + tax))
        final_price = int(tax_amount * (1 - discount))
    
        print(f"총합: {total}원")
        print(f"세금 포함 총액: {tax_amount}원")
        print(f"할인 적용 후 최종 결제금액: {final_price}원")
    
    # 사용 예시
    process_order(
        ("노트북", 1, 1500000),
        ("마우스", 2, 20000),
        tax=0.1,
        discount=0.1
    )
    

    🔍 코드 해설:

    • *items를 통해 상품 개수가 몇 개든 자유롭게 처리
    • **options는 세금, 할인 등 다양한 계산 옵션 처리
    • get()을 활용한 기본값 적용
    • 실무에서 자주 활용하는 패턴 (장바구니, 결제 시스템 등)
    TOP
    preload preload