프로젝트 배경
1) 문제점
- 과도한 수동 업무: 기기당 1~2시간 소요되는 충전 테스트 과정이 161종의 기기에 대해 반복적으로 진행되어 인력과 시간이 과도하게 투입됨.
- 비효율적인 리포팅: 충전 로그 수집 및 리포트 작성이 수작업으로 진행되어 시간 소모와 오류 발생 위험이 높음.
2) 프로젝트 목표
- 자동 데이터 수집: 테스트 기기에서 충전 데이터를 무선(Wi-Fi)으로 실시간 자동 수집하는 시스템 구축.
- 다중 기기 동시 테스트 지원: 수십 대의 기기를 동시에 연결하고 데이터를 안정적으로 처리하여 테스트 시간을 획기적으로 단축.
- 자동 리포팅: 수집된 데이터를 기반으로 최종 결과 리포트를 자동으로 생성하여 업무 효율 혁신.
3) 주안점
- 대규모 동시 처리 능력 검증: 수십, 수백 대의 기기에서 발생하는 대규모 로그 데이터 스트림을 안정적으로 병렬 처리하고 DB에 기록하는 아키텍처 구현.
- 테스트 환경 편의성: 클라이언트(스마트 기기)와 서버 간 자동 연결 및 중앙 제어(시작/종료) 기능 구현을 통한 테스트 담당자의 운영 효율 극대화.
- 과도한 수동 업무: 기기당 1~2시간 소요되는 충전 테스트 과정이 161종의 기기에 대해 반복적으로 진행되어 인력과 시간이 과도하게 투입됨.
- 비효율적인 리포팅: 충전 로그 수집 및 리포트 작성이 수작업으로 진행되어 시간 소모와 오류 발생 위험이 높음.
2) 프로젝트 목표
- 자동 데이터 수집: 테스트 기기에서 충전 데이터를 무선(Wi-Fi)으로 실시간 자동 수집하는 시스템 구축.
- 다중 기기 동시 테스트 지원: 수십 대의 기기를 동시에 연결하고 데이터를 안정적으로 처리하여 테스트 시간을 획기적으로 단축.
- 자동 리포팅: 수집된 데이터를 기반으로 최종 결과 리포트를 자동으로 생성하여 업무 효율 혁신.
3) 주안점
- 대규모 동시 처리 능력 검증: 수십, 수백 대의 기기에서 발생하는 대규모 로그 데이터 스트림을 안정적으로 병렬 처리하고 DB에 기록하는 아키텍처 구현.
- 테스트 환경 편의성: 클라이언트(스마트 기기)와 서버 간 자동 연결 및 중앙 제어(시작/종료) 기능 구현을 통한 테스트 담당자의 운영 효율 극대화.
프로젝트 성과
대규모 데이터 병렬 처리 아키텍처 검증
최대 200대 가상 기기 동시 연결 테스트를 성공적으로 완료하여, 클라이언트의 다중 기기 동시 테스트 요구사항을 MVP 단계에서 충족함을 입증했습니다.
DB I/O 성능 문제 해결 및 안정성 확보
워커 프로세스 내부에서 DB Batch Writer Thread를 사용하고, WAL을 적용하여 DB 쓰기 부하를 분산하고 병목 현상을 제거했습니다.
유저 친화적인 관제 대시보드 구현
Tkinter 기반의 PC 앱에서 각 기기의 상태를 0.5초 단위로 실시간 갱신하고, 위험 상태(온도, 비충전 상태 등) 발생 시 UI 색상 변화를 통해 직관적인 시각적 경고를 제공했습니다.
자동 통합 및 리포트 기능 구현
백그라운드에서 5초마다 자동으로 분산 DB를 마스터 DB로 병합하고, 이를 기반으로 요약 보고서와 상세 로그를 즉시 엑셀로 추출하는 기능을 구현하여 수동 리포트 작성 업무를 완전히 제거했습니다.
핵심 기능

다중 기기 실시간 관제 대시보드
연결된 모든 스마트 기기(최대 200대)의 충전 상태(배터리 잔량, 와트, 전압, 전류, 온도)가 0.5초 단위로 중앙 대시보드에 실시간으로 표시됩니다. 이를 통해 수십 대의 테스트 기기를 한눈에 모니터링 가능

이상 상태 즉시 알림
충전 중이 아닌데 충전 모니터링이 시작되었거나, 온도가 45°C 이상으로 과열되거나, 기기 상태가 Charging이나 Full이 아닐 경우(예: Discharging) 자동으로 해당 기기 행에 경고 표시


자동 연결 및 IP 브로드캐스트
테스트 기기(Android 앱)와 중앙 관리 PC가 동일 Wi-Fi 네트워크에 연결되면, 서버 IP를 자동으로 브로드캐스팅하여 수동 IP 입력 없이도 장비가 자동으로 연결됩니다.


전체 테스트 일괄 제어 및 개별 제어
연결된 모든 테스트 기기에 대해 중앙 PC에서 버튼 클릭 한 번으로 테스트 시작 또는 테스트 종료 명령을 일괄 전송하거나 개별 전송합니다. 이를 통해 테스트 초기 및 종료 시 수작업 시간을 단축할 수 있습니다.



원클릭 엑셀 리포트 생성
조회된 테스트 이력이나 대시보드의 전체 로그를 선택하여 원클릭으로 엑셀 파일로 저장합니다. 이 엑셀 파일은 요약 시트와 상세 로그 시트를 포함하여 즉시 보고서로 활용할 수 있습니다.
진행 단계
아키텍처 설계 및 환경 구성
2025.12.
다중 프로세스/공유 메모리 기반의 분산 아키텍처를 정의하고, Windows 환경에서 Python multiprocessing을 활용한 서버 환경 및 socket 통신 프로토콜을 구현했습니다.
DB I/O 최적화 및 안정성 확보
2025.12.
각 워커별 DB 분리, WAL 설정, 내부 Batch Writer 스레드를 도입하여 다중 클라이언트의 동시 쓰기 상황에서도 안정적이고 고성능의 DB I/O를 보장하는 핵심 로직을 완성했습니다.
UI 및 관제 로직 구현
2025.12.
실시간 데이터 처리 로직(duration, danger check)을 워커에 구현하고, UI 스레드에서 공유 메모리를 안전하게 읽어와 갱신하는 로직을 구축했습니다.
통합 및 리포트 모듈 구현
2025.12.
분산된 DB 파일을 마스터 DB로 통합하는 Unified DBManager를 구현하고, 테스트 이력 조회 및 엑셀 저장 기능을 갖춘 ReportWindow를 개발하여 최종 산출물(리포트) 제공 기능을 완성했습니다.
프로젝트 상세
1) 포트폴리오 소개
- 서비스 카테고리: 테스트 자동화, B2B 솔루션, IoT/하드웨어 테스트
- 메인 타깃: 대규모 스마트 기기 호환성 검증이 필요한 제조사, 검증 기관 (QC/QA 팀)
- 소개: 수백 종의 스마트 기기 충전 호환성 테스트를 자동화하기 위한 MVP 개발. 다중 기기 실시간 모니터링, 대규모 데이터 분산 처리, 자동 리포트 생성 기능을 구현하여 테스트 효율을 획기적으로 개선합니다.
2) 작업 범위
- 개발 참여 범위: 중앙 관리 PC 애플리케이션 개발, 다중 프로세스/큐 기반 데이터 수집 백엔드 설계, DB 관리 모듈 구축, TCP/UDP 통신 프로토콜 설계
- 지원 환경: Windows PC Application (Python/Tkinter), TCP/IP 소켓 통신, SQLite 로컬 DB (다중 파일 분산 처리)
3) 주요 업무
- 대규모 병렬 처리 아키텍처: 최대 ${MAX_WORKERS}$개의 워커 프로세스를 활용한 데이터 분산 처리
- 실시간 관제 대시보드: 연결된 기기의 충전 상태(배터리, W, V, Temp), 위험 상태(danger 태그) 실시간 표시
- 자동 DB 통합 및 리포트: 워커별 분산 저장된 로그를 통합(Merge)하여 상세/요약 리포트를 자동 생성 및 엑셀 저장
- 원격 제어 기능: 중앙 PC에서 연결된 모든 기기에 일괄 테스트 시작/종료 명령 전송
4) 주안점
- 극대화된 동시성 확보: Python multiprocessing을 활용하여 최대 8개 프로세스로 DB 쓰기 작업을 분산하고, 내부적으로 Batch Writer Thread를 적용해 초당 수백 건의 데이터도 안정적으로 처리 가능한 아키텍처 구현 (DB Lock 문제 해결)
- 높은 시스템 안정성: 클라이언트 연결/해제 및 데이터 처리 로직을 별도의 스레드로 분리하여 메인 UI 스레드의 지연을 방지하고, 5초마다 자동 DB 병합 기능을 구현하여 데이터 유실 위험 최소화
- 직관적인 관제: 위험 요소(온도 이상, 상태 변화) 발생 시 즉각적인 UI 시각화를 통해 테스트 담당자의 신속한 상황 파악 지원
- 서비스 카테고리: 테스트 자동화, B2B 솔루션, IoT/하드웨어 테스트
- 메인 타깃: 대규모 스마트 기기 호환성 검증이 필요한 제조사, 검증 기관 (QC/QA 팀)
- 소개: 수백 종의 스마트 기기 충전 호환성 테스트를 자동화하기 위한 MVP 개발. 다중 기기 실시간 모니터링, 대규모 데이터 분산 처리, 자동 리포트 생성 기능을 구현하여 테스트 효율을 획기적으로 개선합니다.
2) 작업 범위
- 개발 참여 범위: 중앙 관리 PC 애플리케이션 개발, 다중 프로세스/큐 기반 데이터 수집 백엔드 설계, DB 관리 모듈 구축, TCP/UDP 통신 프로토콜 설계
- 지원 환경: Windows PC Application (Python/Tkinter), TCP/IP 소켓 통신, SQLite 로컬 DB (다중 파일 분산 처리)
3) 주요 업무
- 대규모 병렬 처리 아키텍처: 최대 ${MAX_WORKERS}$개의 워커 프로세스를 활용한 데이터 분산 처리
- 실시간 관제 대시보드: 연결된 기기의 충전 상태(배터리, W, V, Temp), 위험 상태(danger 태그) 실시간 표시
- 자동 DB 통합 및 리포트: 워커별 분산 저장된 로그를 통합(Merge)하여 상세/요약 리포트를 자동 생성 및 엑셀 저장
- 원격 제어 기능: 중앙 PC에서 연결된 모든 기기에 일괄 테스트 시작/종료 명령 전송
4) 주안점
- 극대화된 동시성 확보: Python multiprocessing을 활용하여 최대 8개 프로세스로 DB 쓰기 작업을 분산하고, 내부적으로 Batch Writer Thread를 적용해 초당 수백 건의 데이터도 안정적으로 처리 가능한 아키텍처 구현 (DB Lock 문제 해결)
- 높은 시스템 안정성: 클라이언트 연결/해제 및 데이터 처리 로직을 별도의 스레드로 분리하여 메인 UI 스레드의 지연을 방지하고, 5초마다 자동 DB 병합 기능을 구현하여 데이터 유실 위험 최소화
- 직관적인 관제: 위험 요소(온도 이상, 상태 변화) 발생 시 즉각적인 UI 시각화를 통해 테스트 담당자의 신속한 상황 파악 지원






