Python

[python/development] project ScomMate

2025.07.11
cate-weblab

Project ScomMate — 배포 파일 후처리 자동화 Desktop Application

Project ScomMate 로고

Project ScomMate는 기존 업무 Tool에서 생성된 파일에 필요한 CSS, JavaScript 등의 후처리를 자동으로 적용하기 위해 개발한 Python 기반 Desktop Automation Application이다.

기존에는 작업 요청이 들어올 때마다 개발자가 직접 파일을 열어 코드를 비교하고 필요한 위치에 추가했지만, 반복적인 작업을 표준화해 비개발자도 정해진 절차에 따라 직접 처리할 수 있도록 자동화했다.

실제 File System의 파일을 직접 수정해야 하는 업무 특성상 Web Application 대신 EXE 형태의 Desktop Application으로 제작했다.

프로젝트 기간 : 2025.07.10 / 실제 개발 시간 약 3시간

Project Summary

Project배포 파일 후처리 자동화 Desktop Application
Role업무 분석 · 기능 기획 · UI 설계 · Python 개발 · 배포
LanguagePython 3.11
UICustomTkinter
ProcessingFile System 접근 · 배포 유형별 CSS / JavaScript 후처리
DistributionPyInstaller · Windows EXE
Result개발자 수작업 제거 · 비개발자 직접 처리 · 반복 후처리 업무 표준화

프로젝트 배경

기존 업무에서는 별도의 Tool을 통해 생성된 결과물을 그대로 배포하지 않고, 배포 유형에 따라 일부 CSS와 JavaScript 코드를 추가하는 후처리 작업이 필요했다.

처리 규칙 자체는 복잡하지 않았지만 매번 개발자가 직접 대상 파일을 확인하고 기존 코드와 비교한 뒤 정해진 위치에 내용을 추가해야 했다.

기존 업무

작업 요청
   ↓
개발자가 대상 폴더 확인
   ↓
기존 File / Code 확인
   ↓
배포 유형 판단
   ↓
필요한 CSS / JS 비교
   ↓
정해진 위치에 수동 추가
   ↓
결과 확인
   ↓
요청자에게 전달

하나의 작업만 보면 짧은 시간이지만 동일한 요청이 반복될 때마다 개발자의 확인과 수정이 필요했고, 특히 업무 시간 외 지원이 발생하는 경우에도 개발자가 직접 대응해야 한다는 문제가 있었다.

이에 정해진 규칙을 프로그램으로 옮겨 담당자가 직접 실행하고 결과를 확인할 수 있는 작은 자동화 Tool로 만들기로 했다.


개발 목표

ScomMate의 목표는 새로운 복잡한 기능을 만드는 것이 아니라 개발자가 반복적으로 수행하던 정형화된 작업을 사용자가 직접 처리할 수 있게 만드는 것이었다.

ScomMate

작업 폴더 선택
     ↓
배포 유형 선택
     ↓
대상 File 확인
     ↓
적용할 Code 결정
     ↓
CSS / JavaScript 자동 후처리
     ↓
처리 결과 확인
     ↓
완료 / 오류 Message 표시

사용자는 파일 내부의 구조나 적용해야 할 코드를 직접 이해할 필요 없이, 필요한 작업 조건만 선택하면 프로그램이 정해진 규칙에 따라 처리하도록 구성했다.


작은 업무 Tool에 맞춘 설계

기존에 개발했던 업무 시스템은 Database, 여러 Module, 복잡한 화면과 업무 흐름이 포함된 경우가 많았기 때문에 개발 전에 Storyboard와 Folder Structure를 먼저 설계하는 방식으로 작업해 왔다.

ScomMate는 기능과 화면이 매우 작은 Tool이었기 때문에 동일한 수준의 구조를 적용하면 오히려 불필요한 복잡도가 증가한다고 판단했다.

대규모 Project

기획
 ↓
Storyboard
 ↓
Folder / Module Architecture
 ↓
Database
 ↓
UI
 ↓
기능 개발


ScomMate

업무 규칙 정리
 ↓
간단한 UI 구성
 ↓
기능별 Logic 분리
 ↓
EXE Packaging
 ↓
실행 Test
 ↓
배포

Main Window와 Layout은 하나의 파일에서 관리하되, 실제 후처리 기능은 역할별 파일로 분리해 작은 규모에서는 구조를 단순하게 유지하면서도 기능 로직은 독립적으로 관리할 수 있도록 했다.

프로젝트 규모에 맞춰 필요한 수준만 설계하는 것이 오히려 개발 속도와 유지보수성 측면에서 더 적절하다는 점을 경험할 수 있었다.


UI Design

사용자가 개발자가 아닌 만큼 기능을 많이 노출하기보다 필요한 선택과 실행 기능만 보여주는 간단한 UI를 목표로 했다.

작은 Desktop Tool이라도 다른 업무 프로그램과 동일하게 기본 Color와 Logo를 먼저 정하고, 사용자가 자연스럽게 작업 순서를 이해할 수 있도록 버튼과 상태 영역을 배치했다.

UI 설계 기준

작업에 필요한 기능만 표시
       +
명확한 실행 버튼
       +
작업 상태 Message
       +
오류 발생 시 즉시 안내
       +
불필요한 설정 최소화

특히 작업 중 발생하는 오류와 현재 진행 상태를 화면 왼쪽 하단 Message 영역에서 바로 확인할 수 있도록 구성했다.


개발 환경

실제 작업 폴더와 파일을 직접 처리해야 하기 때문에 Python Desktop Application으로 개발했고, UI는 CustomTkinter를 사용했다.

가상환경 및 Library

# Virtual Environment
D:\Python\python311\python.exe -m venv vScomMate

# UI
pip install customtkinter
pip install tk

# Distribution
pip install pyinstaller

후처리 자동화

핵심 기능은 사용자가 선택한 작업 대상과 배포 유형을 기준으로 필요한 후처리 규칙을 적용하는 것이다.

Input
 ├─ 대상 Folder
 └─ 배포 Type

        ↓

Validation
 ├─ 대상 File 존재 여부
 └─ 처리 가능한 작업인지 확인

        ↓

Processing
 ├─ 필요한 Code 선택
 ├─ 적용 위치 탐색
 └─ CSS / JS 후처리

        ↓

Result
 ├─ 완료 상태
 └─ Error Message

사람이 반복적으로 비교하던 작업 규칙을 Application Logic으로 옮김으로써, 사용자는 내부 코드 구조를 알지 못해도 동일한 결과를 얻을 수 있도록 했다.


개발자 의존 업무를 사용자 업무로 전환

ScomMate를 만든 가장 직접적인 이유는 기능 자체보다 반복적인 지원 업무에서 개발자 의존성을 제거하는 것이었다.

기존에는 담당자가 작업을 완료하더라도 마지막 후처리를 위해 다시 개발자에게 요청해야 했지만, 프로그램 배포 이후에는 담당자가 자신의 업무 흐름 안에서 직접 후처리까지 완료할 수 있게 되었다.

Before

담당자 작업 완료
     ↓
개발자에게 후처리 요청
     ↓
개발자 확인 / 수정
     ↓
결과 전달
     ↓
업무 완료


After

담당자 작업 완료
     ↓
ScomMate 실행
     ↓
자동 후처리
     ↓
결과 확인
     ↓
업무 완료

작은 자동화 Tool이지만 업무의 마지막 단계에서 반복적으로 발생하던 사람 간 전달과 대기 과정을 제거했다는 점에서 실제 운영 효과가 있었다.


Windows EXE 배포

비개발자가 Python 환경을 별도로 설치하지 않고 사용할 수 있도록 PyInstaller를 이용해 Windows 실행 파일 형태로 배포했다.

pyinstaller --noconsole --onefile --name scomMate main.py

기능 규모가 크지 않았기 때문에 복잡한 설치 과정 없이 실행 파일을 통해 바로 사용할 수 있는 형태를 선택했다.


Project ScomMate 결과

Project ScomMate 실행 및 배포 화면

ScomMate는 필요한 기능을 최소한으로 구성해 사용자가 실행 파일을 열고 작업 조건을 선택하면 바로 후처리를 진행할 수 있도록 제작했다.

처리가 정상적으로 완료되었는지 또는 어떤 문제가 발생했는지는 화면 하단 Message를 통해 바로 확인할 수 있도록 했다.

프로젝트 자체의 구현 규모는 크지 않았지만, 실제로 반복되던 개발자 지원 업무를 하나의 실행 가능한 Tool로 전환해 비개발자가 직접 처리할 수 있는 업무 Workflow를 만들었다는 점에서 의미가 있었다.


프로젝트를 통해 얻은 경험

ScomMate를 통해 모든 업무 Tool이 복잡한 Architecture와 긴 개발 기간을 필요로 하는 것은 아니라는 점을 다시 확인할 수 있었다.

기존에는 비교적 규모가 있는 시스템을 개발하는 경우가 많아 기획서, 화면 구조, Module, Database 등을 먼저 충분히 설계하는 방식에 익숙했지만, 이번 프로젝트에서는 요구사항이 명확한 작은 문제라면 필요한 수준의 구조만 빠르게 결정하고 바로 구현하는 것이 더 적절할 수 있다는 점을 경험했다.

또한 업무 자동화의 가치는 프로그램의 크기가 아니라 누가 반복적으로 하고 있는 일을 없애고, 그 업무를 어느 단계까지 사용자 스스로 완료할 수 있게 만드는가에 있다는 점도 확인할 수 있었다.

반복 지원 업무 발견
      ↓
업무 규칙 정리
      ↓
자동화 가능 여부 판단
      ↓
Minimal UI 설계
      ↓
후처리 Logic 구현
      ↓
Error / Status 처리
      ↓
EXE Packaging
      ↓
실제 담당자에게 배포

실제 개발 약 3시간

Project ScomMate는 작은 반복 업무를 빠르게 분석하고, 최소한의 기능으로 자동화해 실제 사용자가 직접 사용할 수 있는 도구로 배포한 사례라는 점에서 의미가 있다.


다른 프로젝트 보기 : Project 전체 보기

Python All