
IT·디지털 자동화 블로그 · 업무 효율화 프로젝트
자동 재고 관리의 필요성
재고는 기업의 비용과 직결된다. 사람이 수동으로 수량을 계산하고 파일을 정렬하면 시간이 오래 걸리고, 실수가 반복된다. 파이썬 자동화는 재고 데이터를 실시간으로 업데이트하며, 임계 재고를 감지하고 보고서를 자동 생성해 관리 효율성을 극대화한다.
환경 설정
pip install pandas openpyxl
재고 데이터는 일반적으로 다음과 같은 엑셀 구조를 갖는다:
| 제품코드 | 제품명 | 입고수량 | 출고수량 | 현재고 | 카테고리 |
|----------|---------|----------|----------|--------|-----------|
‘입고수량’과 ‘출고수량’을 기반으로 ‘현재고’를 자동 계산하도록 설정한다.
재고 데이터 불러오기
import pandas as pd
# 엑셀 파일 읽기
df = pd.read_excel("inventory.xlsx")
# 기본 확인
print(df.head())
데이터를 불러오면 기본적인 칼럼 이름과 타입을 점검한다. 특히 입출고 수량은 int형으로 변환해 계산 오류를 방지한다.
수량 계산과 임계 재고 확인
# 현재고 계산
df["현재고"] = df["입고수량"] - df["출고수량"]
# 임계 재고 기준 설정
threshold = 20
df["재고상태"] = df["현재고"].apply(lambda x: "주의" if x < threshold else "정상")
# 부족 재고 출력
print(df[df["재고상태"] == "주의"])
이 로직은 매일 실행되며, 부족한 재고가 자동으로 감지된다. 향후 자동 이메일 경고 기능으로 확장할 수 있다.
제품 분류별 정렬과 필터링
카테고리별로 데이터를 정렬하면 보고서 가독성이 높아진다.
# 카테고리, 제품명 기준 정렬
df_sorted = df.sort_values(by=["카테고리", "제품명"])
# 카테고리별 저장
for cat, group in df_sorted.groupby("카테고리"):
group.to_excel(f"inventory_{cat}.xlsx", index=False)
카테고리별로 자동 파일이 생성되어 부서별로 나누어 사용할 수 있다.
자동 보고서 생성
pandas와 openpyxl을 함께 사용하면 재고 요약표와 시각화까지 자동으로 포함한 보고서를 만들 수 있다.
import matplotlib.pyplot as plt
summary = df.groupby("카테고리")["현재고"].sum()
summary.plot(kind="bar", color="skyblue")
plt.title("카테고리별 재고 현황")
plt.xlabel("카테고리")
plt.ylabel("총 재고")
plt.tight_layout()
plt.savefig("inventory_chart.png")
# 보고서 엑셀 파일 생성
with pd.ExcelWriter("inventory_report.xlsx", engine="openpyxl") as writer:
df.to_excel(writer, index=False, sheet_name="세부내역")
summary.to_excel(writer, sheet_name="요약")
이 결과물은 자동으로 ‘세부내역’ 시트와 ‘요약’ 시트를 모두 포함하며, 그래프 이미지는 메일 보고서에 첨부할 수 있다.
자동 실행 및 로그 관리
자동화의 완성은 스케줄링이다. Windows에서는 작업 스케줄러, macOS·Linux에서는 크론(cron)을 활용한다.
# 예시: 매일 09시에 실행
0 9 * * * /usr/bin/python3 /path/inventory_auto.py >> /path/log/inventory.log 2>&1
로그 파일에는 처리 일시, 파일 개수, 오류 여부를 기록해 관리자가 주기적으로 검토할 수 있다.
다음 단계
이 시스템에 이메일 발송, Google Sheets 연동, 자동 발주 알림을 결합하면 완전한 재고 관리 플랫폼으로 발전시킬 수 있다.