프로젝트 배경
1) 문제점
- 데이터 파편화로 인한 분석 불가: 약 10개의 텍스트 파일에 400만 개 이상의 숫자 조합 데이터가 분산되어 있어, 전체 데이터의 흐름이나 중복 여부를 파악하기 어려움.
- 수작업의 비효율성: 특정 숫자가 어떤 파일들에 포함되어 있는지 확인하기 위해 일일이 파일을 열어 검색하는 것은 물리적으로 불가능하며 막대한 리소스가 소요됨.
- 정확도 담보 부족: 대용량 데이터를 사람이 직접 대조할 경우 휴먼 에러 발생 가능성이 매우 높아 신뢰할 수 있는 통계 산출이 불가능함.
2) 프로젝트 목표
- 분석 프로세스 자동화: 지정된 폴더 내의 모든 텍스트 파일을 한 번에 읽어 들여 데이터 추출부터 빈도 계산까지의 전 과정을 자동화하는 데스크톱 애플리케이션 개발.
- 교차 빈도 산출: 각 고유 숫자가 총 몇 개의 다른 파일에 등장하는지(Document Frequency)를 계산하여 데이터의 분포 현황을 파악.
- 결과 통합 리포팅: 분석된 데이터를 '[고유 숫자], [파일 출현 빈도]' 형식의 단일 파일(CSV/TXT)로 통합 저장하여 즉시 업무에 활용 가능한 형태 제공.
3) 주안점
- 대용량 처리 성능 최적화: 400만 건 이상의 데이터를 지연 없이 처리하기 위해 Set과 Dictionary 자료구조를 활용한 수준의 고성능 알고리즘 설계.
- 데이터 무결성 확보: 파일 내 중복 데이터는 1회로 간주하고 파일 간 중복만 카운트하는 정확한 비즈니스 로직 구현 (Set 기반 중복 제거).
- 사용자 경험(UX) 고도화: 대용량 처리 중에도 프로그램이 멈추지 않도록 멀티스레딩을 적용하고, 실시간 진행률(Progress Bar)과 대시보드 UI를 통해 직관적인 모니터링 환경 제공.
- 데이터 파편화로 인한 분석 불가: 약 10개의 텍스트 파일에 400만 개 이상의 숫자 조합 데이터가 분산되어 있어, 전체 데이터의 흐름이나 중복 여부를 파악하기 어려움.
- 수작업의 비효율성: 특정 숫자가 어떤 파일들에 포함되어 있는지 확인하기 위해 일일이 파일을 열어 검색하는 것은 물리적으로 불가능하며 막대한 리소스가 소요됨.
- 정확도 담보 부족: 대용량 데이터를 사람이 직접 대조할 경우 휴먼 에러 발생 가능성이 매우 높아 신뢰할 수 있는 통계 산출이 불가능함.
2) 프로젝트 목표
- 분석 프로세스 자동화: 지정된 폴더 내의 모든 텍스트 파일을 한 번에 읽어 들여 데이터 추출부터 빈도 계산까지의 전 과정을 자동화하는 데스크톱 애플리케이션 개발.
- 교차 빈도 산출: 각 고유 숫자가 총 몇 개의 다른 파일에 등장하는지(Document Frequency)를 계산하여 데이터의 분포 현황을 파악.
- 결과 통합 리포팅: 분석된 데이터를 '[고유 숫자], [파일 출현 빈도]' 형식의 단일 파일(CSV/TXT)로 통합 저장하여 즉시 업무에 활용 가능한 형태 제공.
3) 주안점
- 대용량 처리 성능 최적화: 400만 건 이상의 데이터를 지연 없이 처리하기 위해 Set과 Dictionary 자료구조를 활용한 수준의 고성능 알고리즘 설계.
- 데이터 무결성 확보: 파일 내 중복 데이터는 1회로 간주하고 파일 간 중복만 카운트하는 정확한 비즈니스 로직 구현 (Set 기반 중복 제거).
- 사용자 경험(UX) 고도화: 대용량 처리 중에도 프로그램이 멈추지 않도록 멀티스레딩을 적용하고, 실시간 진행률(Progress Bar)과 대시보드 UI를 통해 직관적인 모니터링 환경 제공.
프로젝트 성과
선형 시간 복잡도기반의 고성능 데이터 처리 확보
Set 및 Dictionary 자료구조를 활용하여 400만 개 데이터를 처리하는 핵심 알고리즘의 시간 복잡도를 O(N^2) 대신 O(N) 수준으로 설계하여 데이터 처리 시간을 수 초 이내로 단축.
휴먼 에러율 0% 및 데이터 분석 정확성 100% 달성
Set 자료구조와 정규식(Regex)을 통해 시스템적으로 처리함으로써, 수작업 시 필연적으로 발생할 수 있는 인위적 오류(Human Error)를 완전히 제거
GUI 기반 사용자 생산성 및 만족도 극대화
직관적인 GUI를 도입하여 비전문가도 쉽게 사용할 수 있는 환경을 제공함
다목적 리포팅 및 데이터 무결성 보장
CSV, TXT 등 다양한 형식으로 저장할 수 있는 유연한 리포팅 기능을 구현하고, 결과 파일의 최상단에 총 처리 파일 수 및 고유 숫자 수를 메타데이터로 기록하여, 보고서의 완성도와 데이터 검증의 투명성 확보
핵심 기능



파일 및 폴더 선택 I/O 기능
사용자가 원하는 입력/출력 파일 및 폴더를 GUI를 통해 쉽게 선택할 수 있습니다.



입력 데이터 형태(구분자) 파싱 기능
쉼표, 공백, 줄넘김 세 가지의 입력 데이터 형태에 대응 가능하며, 여러 형태의 파일을 한번에 같이 처리 가능합니다.



텍스트 분석 결과 저장 및 요약 기능
GUI를 통해 분석된 결과의 요약 정보를 한번에 확인할 수 있으며, 저장된 csv와 txt로 확인 가능합니다.

파이썬 패키징 및 실행 파일 제공
구현된 프로그램을 exe 실행 파일로 패키징하여 제공합니다.
진행 단계
요구사항 정의 및 알고리즘 설계
2025.11.
핵심 알고리즘 설계: 400만 건 데이터 처리를 위해 Set/Dictionary 기반의 O(N) 시간 복잡도를 갖는 고성능 파일별 교차 빈도 계산 로직을 설계함.
[백엔드] 고성능 로직 구현 및 GUI 통합
2025.11.
파일 파싱 및 Set 기반 중복 제거 로직을 구현하고, threading 모듈을 사용하여 GUI가 멈추지 않도록 백그라운드에서 분석 작업을 실행하는 멀티스레딩 환경을 구축함.
[프론트엔드] 고성능 로직 구현 및 GUI 통합
2025.11.
전문적이고 사용자 친화적인 GUI를 개발함. Progress Bar와 Summary Card를 구현하여 실시간 모니터링 기능을 통합함.
[I/O] 고성능 로직 구현 및 GUI 통합
2025.11.
폴더/다중 파일 입력 기능과 CSV/TXT/Both 저장 형식을 구현하고, 결과 파일 상단에 요약 정보를 자동으로 삽입하는 기능을 완성함.
대용량 부하 및 기능 검증
2025.11.
공백, 쉼표, 줄바꿈 등 세 가지 구분자 형식으로 각 파일당 40만 개의 숫자가 포함된 대용량 더미 데이터를 생성하여, 실제 클라이언트 환경과 유사한 조건에서 성능 및 안정성을 검증함.
프로젝트 상세
1) 포트폴리오 소개
서비스 카테고리: 데이터 분석 솔루션 / 윈도우 데스크톱 유틸리티
메인 타깃: 대량의 로그 파일이나 분산된 텍스트 데이터를 다루는 데이터 분석가 및 실무자
소개: 10여 개 파일에 분산된 400만 개 이상의 숫자 데이터를 통합 분석하여, 각 숫자가 몇 개의 파일에 출현했는지를 고속으로 산출하는 업무 자동화 툴 개발임.
2) 작업 범위
범위: 애플리케이션 기획, 핵심 알고리즘 설계(백엔드), GUI 개발(프론트엔드), 실행 파일 패키징
지원 환경: Windows 10/11 운영체제 (별도 Python 설치 없이 실행 가능한 .exe 제공)
3) 주요 업무
입력 편의성 강화: 폴더 단위 일괄 지정 및 개별 파일 다중 선택이 가능한 유연한 입력 인터페이스 구현함.
고성능 파싱 로직: 다양한 구분자(쉼표, 공백, 줄바꿈)가 혼재된 대용량 텍스트 데이터를 정규식 기반으로 정확하게 추출 및 정제함.
빈도 분석 알고리즘: Set 자료구조를 활용하여 파일 내 중복을 제거하고, 파일 간 교차 출현 빈도(Document Frequency)를 정확히 계산하는 로직 구성함.
대시보드 UI 구성: 분석 진행률을 실시간으로 보여주는 프로그래스바와 처리 결과(파일 수, 고유 숫자 수)를 즉시 확인 가능한 카드 형태의 대시보드 개발함.
리포트 생성: 분석 결과를 CSV, TXT 등 사용자가 원하는 형식으로 자동 저장하고 요약 정보를 포함하는 기능 구현함.
4) 주안점
퍼포먼스 최적화: 400만 개 데이터를 수 초 내에 처리하기 위해 시간 복잡도 수준의 효율적인 메모리 관리 및 알고리즘 설계에 집중함.
사용자 경험(UX) 개선: 대용량 연산 중에도 프로그램이 멈추지 않도록 멀티스레딩(Threading) 기술을 적용하여 쾌적한 사용 환경을 제공함.
전문적인 디자인: ttkbootstrap 라이브러리를 커스터마이징하여 윈도우 11 스타일의 모던하고 직관적인 다크/라이트 모드 GUI를 완성도 있게 구현함.
서비스 카테고리: 데이터 분석 솔루션 / 윈도우 데스크톱 유틸리티
메인 타깃: 대량의 로그 파일이나 분산된 텍스트 데이터를 다루는 데이터 분석가 및 실무자
소개: 10여 개 파일에 분산된 400만 개 이상의 숫자 데이터를 통합 분석하여, 각 숫자가 몇 개의 파일에 출현했는지를 고속으로 산출하는 업무 자동화 툴 개발임.
2) 작업 범위
범위: 애플리케이션 기획, 핵심 알고리즘 설계(백엔드), GUI 개발(프론트엔드), 실행 파일 패키징
지원 환경: Windows 10/11 운영체제 (별도 Python 설치 없이 실행 가능한 .exe 제공)
3) 주요 업무
입력 편의성 강화: 폴더 단위 일괄 지정 및 개별 파일 다중 선택이 가능한 유연한 입력 인터페이스 구현함.
고성능 파싱 로직: 다양한 구분자(쉼표, 공백, 줄바꿈)가 혼재된 대용량 텍스트 데이터를 정규식 기반으로 정확하게 추출 및 정제함.
빈도 분석 알고리즘: Set 자료구조를 활용하여 파일 내 중복을 제거하고, 파일 간 교차 출현 빈도(Document Frequency)를 정확히 계산하는 로직 구성함.
대시보드 UI 구성: 분석 진행률을 실시간으로 보여주는 프로그래스바와 처리 결과(파일 수, 고유 숫자 수)를 즉시 확인 가능한 카드 형태의 대시보드 개발함.
리포트 생성: 분석 결과를 CSV, TXT 등 사용자가 원하는 형식으로 자동 저장하고 요약 정보를 포함하는 기능 구현함.
4) 주안점
퍼포먼스 최적화: 400만 개 데이터를 수 초 내에 처리하기 위해 시간 복잡도 수준의 효율적인 메모리 관리 및 알고리즘 설계에 집중함.
사용자 경험(UX) 개선: 대용량 연산 중에도 프로그램이 멈추지 않도록 멀티스레딩(Threading) 기술을 적용하여 쾌적한 사용 환경을 제공함.
전문적인 디자인: ttkbootstrap 라이브러리를 커스터마이징하여 윈도우 11 스타일의 모던하고 직관적인 다크/라이트 모드 GUI를 완성도 있게 구현함.

프로그램 메인 화면으로 입력 데이터 및 폴더 선택과 저장 경로 및 저장 파일의 형식을 지정할 수 있습니다.

폴더 선택 버튼을 통해 입력 폴더를 선택하는 화면입니다.

변경 버튼을 통해 저장 폴더를 선택하는 화면입니다.

분석 결과로 나온 csv파일입니다. 총 6개의 txt파일을 분석 후 909,744개의 결과가 정리되었습니다.

분석 결과로 나온 csv파일입니다. 총 6개의 txt파일을 분석 후 909,744개의 결과가 정리되었습니다.

분석 결과로 나온 txt파일입니다. 총 6개의 txt파일을 분석 후 909,744개의 결과가 정리되었습니다.

분석 결과로 나온 txt파일입니다. 총 6개의 txt파일을 분석 후 909,744개의 결과가 정리되었습니다.

구분자가 콤마로 구성된 약 10만개의 숫자가 포함된 입력 파일입니다. 구현한 프로그램은 콤마, 공백, 줄넘김에 모두 대응가능합니다.

구분자가 줄넘김으로 구성된 약 10만개의 숫자가 포함된 입력 파일입니다. 구현한 프로그램은 콤마, 공백, 줄넘김에 모두 대응가능합니다.

구분자가 공백으로 구성된 약 10만개의 숫자가 포함된 입력 파일입니다. 구현한 프로그램은 콤마, 공백, 줄넘김에 모두 대응가능합니다.



