Python

[python/development] project UniBox

2025.10.24
cate-weblab

project UniBox란?

project UniBox 는 각 프로그램에서 공통으로 사용되거나 자주 업데이트 되는 단독 파일들을 프로그램 내부에서 매번 생성할 필요 없이 한 곳에서 통합 관리하기 위해 제작된 관리 툴.

고객사별 탭 구조로 구분하여, 엑셀 DB를 CSV 파일로 변환하거나, 아웃룩 주소록을 추출해 DB화, HTML 데이터를 DB로 변환하는 등 기존에 각 프로그램에서 개별적으로 수행하던 작업을 UniBix에서 일괄 처리하기 위해 제작.

프로젝트 기간: 10.23~10.24


기본 환경 세팅

파이썬에 CustomTkinter 기본으로 두고 작업 진행.

잡다한 기능이 처리되다 보니 간단한 툴 인데 설치 패키지는 조금 다양한 편;

# 가상환경
D:\Python\python311\python.exe -m venv vUniBox

# 패키지 설치
pip install customtkinter
pip install tk
pip install pyinstaller     # 배포용
pip install pillow          # 이미지용
pip install openpyxl        # 엑셀처리
pip install pandas          # 엑셀 히스토리 처리
pip install beautifulsoup4  # html 처리
pip install lxml            # beautifulsoup 내부 xml/html 파서용
pip install pywin32         # Windows(Outlook, Excel, Word, 파일 탐색기, 레지스트리 등)를 제어

파이참 세팅

파이참 설정

주요 기능

  • xlsx 파일을 csv 파일로 변경
  • 아웃룩 주소록 csv 파일로 저장
  • 다른 프로그램 마리아DB .sql 파일로 백업
  • HTML 파일 텍스트를 search용 DB로 추출

쓰고 보니, 주요 기능이 아니라 전체 기능이려나;;

MAP

UniBox MAP

간단하게 기본 유틸과 기능이 복잡하지 않아서 탭(고객사별) 모듈로 정리.

배포

pyinstaller UniBox.spec

project UniBox 결과

이번 UniBox는 독립 실행형 메인 프로그램이라기보다는, 다른 여러 내부 툴을 더 효율적으로 쓰기 위한 보조 유틸리티이자 자동 백업 도우미 성격으로 개발했다.

기존에는 프로그램별로 필요한 파일… 예를 들어 Outlook 주소록 CSV, MOBIS용 변환 파일, HTML 검색 DB 생성을 위해서 각각의 가상 환경에서 따로 실행하고 코드 입력까지 해야 했는데…

이 과정이 반복되다 보니 ‘귀찮음’이 누적되어 결국 작업 효율이 떨어지는 문제로 이어졌다. (매번 아웃룩이 갱신될 때마다 csv 업데이트 안 하는 문제 등;;)

필수인 M사 DB용 CSV 파일처럼 주기적으로 갱신되는 자료들은 프로그램 실행과 상관없이 수시로 업데이트해야 하는데, 그럴 때마다 가상 환경으로 전환하고 명령을 입력하는 과정이 귀찮았다.

그래서 이 기능들만 따로 묶어 한 번에 실행할 수 있는 간단한 통합 유틸을 만들어야지 라고 생각만 하고 있었는데… 필요성을 느끼고 있었지만, 사용하는 인원이 한두 명에 불과하다 보니 우선순위에서 밀려 미뤄오다가~

이번에 신규E 프로젝트 진행 시, 기존 툴로는 HTML 검색용 DB 생성이 잘되지 않아서~ 이참에 만들자~ 거기다 이거저거 귀찮은 거 추가하자!! 한곳에 모아버리자!!! 가 되었다.

이번 개발은 속도와 의도한 건 아니지만, 간결함에 중점을 두고 하였다.

내가 쓸 꺼라 입력 이런 거 없이 그냥 버튼 누르면 끝나도록~~


customtkinter: https://customtkinter.tomschimansky.com/

다른 프로젝트: https://pixiclue.com/tag/project/

Python All