주거 공간의 관리비를 체계적으로 기록하고 시각적으로 분석하기 위한 데스크톱 기반 관리비 관리 애플리케이션입니다.
월별 관리비 입력부터 항목별 분석, 연도별 비교까지 사용자가 소비 패턴을 직관적으로 파악할 수 있도록 설계했습니다.
-
Framework: .NET 8.0 / WPF
-
Pattern: MVVM (Model-View-ViewModel)
-
Libraries:
-
CommunityToolkit.Mvvm: 데이터 바인딩 및 커맨드 처리
-
LiveCharts.Wpf: 반응형 차트 및 툴팁 시각화
-
-
Storage: JSON 직렬화 (로컬 데이터 저장)
-
제작 이유
기존에 관리비를 엑셀로 기록하며 관리했지만,
데이터가 누적될수록 월별·연도별 비교가 어렵고
소비 패턴을 직관적으로 파악하기 힘들다는 문제를 느꼈습니다.이러한 불편함을 해결하기 위해
관리비 데이터를 체계적으로 저장하고 시각화할 수 있는
데스크톱 기반 관리비 분석 프로그램을 직접 기획·제작했습니다. -
사용자
- 과거 관리비 내역을 한눈에 확인하고 싶은 사용자
- 관리비를 간편하게 기록하고 비교하고 싶은 사용자
- 하나의 프로그램으로 관리비 흐름을 관리하고 싶은 사용자
- 최근 6개월간 관리비 추이 확인
- 관리비 월별 입력 / 실시간 그래프로 항목별 비율 확인
- 관리비 과거 기록 확인
- 관리비 항목 CRUD
- 연도별 / 월별 관리비 비교 시각화
- 항목별 지난달, 작년 동월대비 관리비 증감 확인
-
메인 (최근 6개월간 관리비 추이 확인)
사용자의 편의에 맞춰 6개월간 관리비 추이를 꺾은선 그래프, 막대그래프로 선호에 맞게 변경 가능
-
관리비 입력
관리비 입력, 실시간 항목별 비율 확인 및 관리비 항목 CRUD 가능
-
관리비 과거 기록 확인
-
연도별 / 월별 관리비 비교 시각화
연평균 비교, 월별 비교 + 마우스 호버링시 항목 비율 출력
-
항목별 지난달, 작년 동월대비 관리비 증감 확인
House-Fee-Management-System
├── IMG/ # README에서 사용하는 이미지
│
├── Models/ # 관리비 데이터 모델
│ # (전기세, 수도세, 가스세 등 도메인 데이터 정의)
│
├── Services/ # 비즈니스 로직 처리
│ # (데이터 저장, 조회, 계산 로직)
│
├── ViewModels/ # MVVM 패턴의 ViewModel
│ # View와 Model 간 데이터 바인딩 및 상태 관리
│
├── Views/ # 화면 단위 UI(View)
│ # 관리비 입력, 내역 조회, 분석 화면 등
│
├── App.xaml # 애플리케이션 전역 리소스 및 스타일 정의
├── App.xaml.cs # 애플리케이션 시작 및 설정 로직
│
├── MainWindow.xaml # 메인 윈도우 UI
├── MainWindow.xaml.cs # 메인 윈도우 코드 비하인드
│
├── AssemblyInfo.cs # 어셈블리 정보 설정
├── app_icon.ico # 애플리케이션 아이콘
├── .gitignore # Git 버전 관리 제외 설정
└── README.md # 프로젝트 설명 문서
-
개발 목적
LIG Nex1 The SSEN 임베디드 스쿨 교육 과정중 C#, WPF, MVVM 수업을 복습하고 실제로 활용해보기 위해 진행한 프로젝트입니다.
단순 기능 구현이 아닌,
실제 사용 시 불편함을 해결하는 것을 목표로
기획부터 구조 설계, UI 구현까지 직접 진행했습니다. -
배운점
- WPF 기반 데스크톱 애플리케이션 구조 이해
- MVVM 패턴을 적용하여 View와 비즈니스 로직을 분리하는 설계 경험
- 데이터 바인딩 및 Command 패턴을 활용한 UI 상태 관리
- JSON 직렬화를 이용한 로컬 데이터 저장 및 관리
- LiveCharts를 활용한 실시간 데이터 시각화 및 사용자 경험 개선
- Mac OS 확장
- 관리비 내역 Excle / PDF 불러오기+내보내기 기능
- 클라우드 데이터 백업 연동
"왜 웹 브라우저 기반의 서비스가 아닌 데스크톱 애플리케이션인가?"라는 질문에 대해 본 프로젝트는 다음과 같은 네 가지 핵심 가치에 집중했습니다.
-
데이터 주권과 보안 (Data Sovereignty & Security)
대부분의 웹 서비스는 사용자 데이터를 서비스 제공자의 중앙 서버(DB)에 저장합니다. 하지만 관리비 내역은 개인의 거주 정보와 소비 패턴이 담긴 민감한 데이터입니다.
-
로컬 우선 저장
데이터는 사용자의 PC에 JSON 형식으로 저장되며, 외부 서버로 강제 전송되지 않습니다.
-
선택적 클라우드 동기화
향후 클라우드 연동 시에도 서비스 제공자의 서버가 아닌, 사용자가 직접 선택한 저장소(Google Drive, OneDrive 등)를 활용하도록 설계할 예정입니다.
-
클라이언트 암호화
데이터를 클라우드에 올리기 전 로컬에서 암호화하여, 저장소 해킹 시에도 데이터의 기밀성을 유지합니다.
-
-
오프라인 우선 정책 (Offline-First)
웹 앱은 네트워크 연결이 끊기면 기능이 제한되거나 정지되지만, 데스크톱 앱은 환경의 제약을 받지 않습니다.
-
신뢰성 있는 도구
인터넷 연결 여부와 관계없이 실행되며 모든 기능을 100% 활용할 수 있습니다.
-
네이티브 반응성
웹 브라우저의 렌더링 한계를 넘어, 시스템 자원을 직접 활용하여 실시간 차트 갱신 및 대량 데이터 처리에 최적화된 성능을 제공합니다.
-
-
효율적인 인프라 및 유지보수
웹 서비스 운영에 필요한 서버 비용, 도메인 유지비, DB 관리 부담을 제거했습니다.
-
독립적 실행
별도의 인프라 관리 없이 실행 파일(.exe) 하나로 모든 기능이 완결되는 소프트웨어를 지향합니다.
-
영구적 소유
서비스 종료의 위험이 있는 웹과 달리, 사용자는 프로그램을 실행할 수 있는 환경만 있다면 평생 자신의 데이터를 관리할 수 있습니다.
-
-
아키텍처 학습 (Architectural Learning)
-
MVVM 패턴의 심화
데이터와 UI를 완벽하게 분리하는 MVVM 패턴을 데스크톱 환경에서 구현하며, 견고한 소프트웨어 설계 능력을 배양하는 데 목적을 두었습니다. 이는 향후 멀티 플랫폼(Avalonia UI 등)으로의 확장을 고려한 설계적 토대가 됩니다.
-
House-Fee-Management-System은 주거 관리비를 기록하고 시각화된 통계를 통해 지출 패턴을 분석하는 WPF 기반 데스크톱 애플리케이션입니다. 실생활의 관리비 납부 과정에서 느낀 불편함을 기술적으로 해결하기 위해 기획되었으며, 데이터의 직관적 확인과 체계적인 관리에 초점을 맞추었습니다.
아키텍처 설계 및 유지보수 (MVVM)
본 프로젝트는 MVVM(Model-View-ViewModel) 패턴으로 UI 레이어와 비즈니스 로직을 완전히 분리했습니다. 이를 통해 다음과 같은 기술적 목표를 달성했습니다.
-
유지보수성 향상
기능별로 ViewModel을 모듈화하여 코드 간 의존성을 낮추었습니다. 이를 통해 새로운 분석 차트나 상세 내역 조회 기능을 추가할 때 기존 코드의 수정 범위를 최소화하고 안정적인 업데이트가 가능한 구조를 확보했습니다.
-
객체지향 설계
각 클래스의 역할을 정의하였으며, 데이터 바인딩을 통해 복잡한 이벤트 처리 로직을 간소화하여 코드의 가독성과 디버깅 효율을 높였습니다.
-
플랫폼 확장성 확보
핵심 비즈니스 로직이 UI 프레임워크에 종속되지 않도록 설계했습니다. 이는 향후 Avalonia UI 등 멀티 플랫폼 환경으로 전환 시 로직을 그대로 재사용할 수 있는 유연한 아키텍처의 기반이 됩니다.
주요 특징 및 기술적 성과
-
데이터 시각화 및 반응형 UI
LiveCharts 라이브러리를 활용하여 관리비 추이를 시각화했습니다. 특히 데이터 바인딩 기술을 통해 금액 입력과 동시에 파이 차트 및 총액이 실시간으로 갱신되는 사용자 중심의 반응형 인터페이스를 구현했습니다.
-
JSON 기반 로컬 데이터 관리
별도의 서버 인프라 없이 JSON 직렬화 방식을 통해 로컬 환경에서 데이터를 관리합니다. 이는 오프라인 상태에서도 완전한 기능 작동을 보장하며, 사용자 데이터의 보안성과 독립성을 확보하는 선택이었습니다.
-
통합 및 디버깅 역량
여러 기능을 하나로 연결하는 과정에서 발생하는 데이터 동기화 문제와 컴파일 에러를 디버깅하며 C#/.NET 프레임워크의 동작 원리와 소프트웨어 구조를 깊이 있게 학습했습니다.










