[파이썬] 데이터 시각화로 풀어보는 영화 '호프'의 손익분기점(BEP) 알고리즘
1. 도입부
영화 한 편이 개봉했을 때 "손익분기점이 몇 만 명이다"라는 기사를 자주 보게 됩니다. 하지만 티켓값 11,000원에서 극장과 배급사가 나눠 가지는 정산 공식을 직접 코드로 구현해 본 적은 많지 않으실 텐데요.
파이썬의 대표적인 웹 프레임워크인 Streamlit과 시각화 라이브러리 Plotly를 활용해 누구나 쉽게 이해할 수 있는 실시간 정산 시뮬레이터를 만들어 보았습니다.
2. 핵심 코드
가독성을 위해 핵심 흐름만 요약했으며, 전체 예외 처리 및 상세 코드는 깃허브를 참고해 주세요.
Python
import streamlit as st
# 외부 연동 예외 처리 (안정적인 서비스 구동)
try:
from tracker_hub import log_app_usage
log_app_usage("movie_bep_calculator", "inflearn_view")
except Exception:
pass
st.title("🎬 나만의 영화 BEP 계산기")
# 1. 수치 입력받기
net_cost = st.number_input("순제작비 (억원)", value=500)
pa_cost = st.number_input("마케팅비 (억원)", value=100)
pre_sales = st.number_input("선판매/OTT 수입 (억원)", value=300)
# 2. 정산 공식 계산
net_budget = (net_cost + pa_cost) - pre_sales
effective_ticket_price = 11000 * 0.87 * 0.5 # 세금 공제 후 5:5 정산
bep_audience = (net_budget * 100000000) / effective_ticket_price / 10000
# 3. 결과 출력
st.subheader(f"💡 필요 관객수: 약 {round(bep_audience, 1)}만 명")
3. 명령어 친절한 해부
title 및 subheader: 웹 페이지의 타이틀과 섹션 제목을 직관적인 마크다운 크기로 출력해 주는 텍스트 함수입니다.
number_input: 사용자가 숫자를 키보드로 직접 치거나 버튼을 눌러 올리고 내릴 수 있게 돕는 실용적인 입력 위젯입니다.
4. 토이 프로젝트 적용 팁
예외 처리를 통한 서비스 안정성: 외부 서버 통신 로직을 try-except로 감싸두면, 통신 문제나 외부 API 오류가 발생하더라도 메인 웹 화면이 다운되지 않고 정상 구동되는 실무 대처법을 배울 수 있습니다.
데이터 변수 시뮬레이션: 수식을 개별 변수로 나누어 놓으면 티켓 가격이나 세율 변경 시에도 코드 수정 없이 유연하게 정산 결과를 비교할 수 있습니다.
5. 마무리 소통 및 영상 안내
직접 구현해 보시다가 궁금한 점이나 추가하고 싶은 기능이 있다면 질문 댓글을 적극 활용해 주세요!
실제 동작하는 꿀잼 시연 영상은 유튜브 '잡학다식 개발자' 채널에서 확인해 보실 수 있습니다.
💻 소스코드 및 실행 링크
유튜브 영상 : https://youtu.be/02iZ8k61PYI
워드프레스(뉴스): https://gohard.pe.kr/
GitHub 소스코드: https://github.com/gohard-lab/movie_bep_calculator
실행 URL: https://moviebepcalculator-77dp957j9snypavp86bgsb.streamlit.app/
답변 0





