바카라
안녕하세요.
담당 매니저 김수민입니다.
기간제(상주) 프로젝트 희망 근무 시작일을
등록해 주시면, 파트너님의 일정에 맞는
적합한 프로젝트를 추천해 드려요.

대외비 프로젝트는 지원 요청 받은 파트너만 조회할 수 있습니다.

필터를 저장해 나에게 딱 맞는 프로젝트를 추천받아보세요!

대외비 프로젝트는 지원 요청 받은 파트너만 조회할 수 있습니다.

필터를 저장해 나에게 딱 맞는 프로젝트를 추천받아보세요!

대외비 프로젝트는 지원 요청 받은 파트너만 조회할 수 있습니다.

필터를 저장해 나에게 딱 맞는 프로젝트를 추천받아보세요!

대외비 프로젝트는 지원 요청 받은 파트너만 조회할 수 있습니다.

필터를 저장해 나에게 딱 맞는 프로젝트를 추천받아보세요!

존재하지 않는 프로젝트입니다.

필터를 저장해 나에게 딱 맞는 프로젝트를 추천받아보세요!

프로젝트를 등록한 클라이언트만 확인 가능합니다.

필터를 저장해 나에게 딱 맞는 프로젝트를 추천받아보세요!

플러스
Windows Forms (WinForms) - 캐싱 관리 프로그램
개발 · 디자인 · 기획
PC프로그램
네트워크ㆍ서버 운영, 내부 시스템 운영, 기타(유지보수ㆍ운영)
프로젝트 배경
사용자에게 주요 비즈니스 현황을 제공하는 웹 대시보드가 있었습니다. 그러나 대시보드에 필요한 통계 데이터를 생성하는 쿼리가 매우 복잡하고, 원본 데이터 테이블의 크기가 16GB에 달해 페이지를 로드하는 데 평균 1분 30초가 소요되었습니다. 인덱스 최적화와 쿼리 튜닝을 시도했으나 데이터의 양과 계산의 복잡성으로 인해 유의미한 성능 개선을 이루지 못했습니다. 이로 인해 사용자의 서비스 이탈률이 증가하고 만족도가 저하되는 심각한 문제가 발생했습니다.

이 문제를 해결하기 위해, 사용자가 요청할 때마다 쿼리를 실행하는 대신 미리 결과를 계산하여 별도의 캐시 테이블에 저장하고, 대시보드는 이 캐시 테이블의 데이터만 빠르게 읽어오도록 하는 캐싱 시스템을 구축하기로 결정했습니다.

담당 역할 및 기여
본 프로젝트는 기획, 설계, 개발 전 과정을 100% 단독으로 진행했습니다.
프로젝트 성과
성능 최적화
웹 대시보드 페이지 로딩 시간을 90초에서 1초 이내로 99% 단축하여 사용자에게 거의 실시간에 가까운 데이터 조회 경험을 제공했습니다.
안정적인 서비스 운영
기존 DB의 부하를 최소화하고, 인덱스 튜닝 등 전통적인 방식으로 해결이 어려웠던 성능 병목 현상을 근본적으로 해결했습니다.
운영 효율성 확보
캐싱 프로세스를 제어할 수 있는 관리 프로그램을 개발하여, 캐시 데이터의 수동 생성, 주기적 자동 갱신, 설정 초기화 등 운영 편의성을 높였습니다.
독자적인 문제 해결 능력 입증
문제 정의부터 시작하여 아키텍처 설계, 기술 스택 선정, 개발 및 안정화까지 모든 과정을 주도적으로 수행하며 End-to-End 프로젝트 수행 역량을 증명했습니다.
핵심 기능
주기적 자동 캐싱
지정된 시간 간격마다 시스템이 자동으로 무거운 통계 쿼리를 실행합니다. 그 후, 최신 결과 데이터를 별도의 캐시 테이블에 덮어쓰거나 갱신하여 데이터의 정합성을 유지합니다.
수동 캐싱 실행
관리자가 즉시 데이터를 갱신해야 할 경우(예: 원본 데이터의 대규모 변경 직후), UI의 'Caching_Manually' 버튼을 통해 원하는 시점에 캐싱 프로세스를 직접 실행할 수 있습니다.

서비스 제어
'Checking_Start', 'Checking_Stop', 'TurnOff' 메뉴를 통해 캐싱 서비스의 시작, 중지, 완전 종료 등 전체 라이프사이클을 손쉽게 제어할 수 있어 서버 점검이나 업데이트 시 설정가능
설정 관리
'init_Setting' 기능을 통해 데이터베이스 연결 정보, 대상 쿼리, 캐싱 주기 등 프로그램의 주요 설정을 외부 파일이나 초기화 로직을 통해 관리하여 코드 변경 없이 운영 환경에 맞게 조정할 수 있습니다.
진행 단계
기획 (Planning)
2023.12.
대시보드 로딩 속도 저하의 근본 원인(대용량 데이터 기반의 복합 쿼리)을 분석하고 정의했습니다.

기존 DB 최적화 방식의 한계를 파악하고, '결과 캐싱'을 핵심 해결 전략으로 수립했습니다.
설계 (Design)
2023.12.
시스템 아키텍처 설계: 원본 DB와 웹 대시보드 사이에 위치하여 비동기적으로 데이터를 처리하는 캐싱 프로그램의 전체 구조를 설계했습니다.
개발 (Development)
2023.12.
C# .NET Framework 환경에서 MySQL DB에 연결하여 지정된 쿼리를 실행하고, 그 결과를 캐시 테이블에 저장하는 핵심 로직을 구현했습니다.
프로젝트 상세
1. 프로젝트 개요
프로젝트명: 실시간 대시보드 로딩 속도 99% 개선: C# 기반 DB 캐싱 시스템

한 줄 요약: 대용량 데이터베이스의 복잡한 통계 쿼리 결과를 별도의 테이블에 미리 저장(캐싱)하여, 웹 대시보드의 조회 속도를 90초에서 1초 이내로 단축시킨 C# 기반 백그라운드 애플리케이션입니다.

2. 문제 정의 (Problem)
주요 비즈니스 지표를 시각화하는 웹 대시보드가 약 16GB 크기의 원본 테이블에서 데이터를 조회하는 데 평균 1분 30초가 소요되는 심각한 성능 저하 문제가 있었습니다. 이로 인해 사용자의 서비스 만족도가 급감하고 데이터 기반의 빠른 의사결정이 어려웠습니다. 인덱스 튜닝 등 일반적인 DB 최적화 방법으로는 해결이 불가능한 상황이었습니다.

3. 해결 방안 및 시스템 아키텍처 (Solution & Architecture)
느린 쿼리를 실시간으로 실행하는 대신, 미리 결과를 계산하여 가벼운 '캐시 테이블'에 저장하고, 대시보드는 이 캐시 테이블만 조회하게 하는 방식을 고안했습니다. 이를 위해 독립적으로 동작하는 C# 캐싱 프로그램을 개발했습니다.

동작 흐름:

[쿼리 실행] C# 캐싱 프로그램이 정해진 스케줄 또는 수동 명령에 따라 원본 DB에 대해 무거운 통계 쿼리(1분 30초 소요)를 실행합니다.

[결과 저장] 쿼리 실행으로 얻은 결과 데이터셋을 가공하여, 대시보드 조회를 위해 최적화된 '캐시 테이블'에 저장(INSERT/UPDATE)합니다.

[빠른 조회] 사용자가 웹 대시보드에 접근하면, 대시보드는 무거운 원본 테이블이 아닌 가벼운 '캐시 테이블'을 직접 조회하여 1초 이내에 결과를 화면에 렌더링합니다.

[반복] 캐싱 프로그램은 백그라운드에서 주기적으로 1~2번 과정을 반복하며 데이터의 최신성을 유지합니다.

[원본 DB (16GB)] <---(1. 무거운 쿼리 실행)--- [C# 캐싱 프로그램] ---(2. 결과 저장)--- [캐시 테이블]
|
| (3. 빠른 조회)
V
[웹 대시보드]
4. 핵심 기능 및 특징
스케줄링 기반 자동 갱신: 설정된 시간마다 자동으로 데이터 캐시를 업데이트하여 항상 최신 데이터를 유지합니다.

유연한 수동 제어: 관리자가 필요할 때 즉시 캐시를 갱신할 수 있는 수동 실행 기능을 제공합니다.

서비스 안정성: Windows 시스템 트레이에서 백그라운드 프로세스로 동작하여 시스템 리소스를 최소한으로 사용하며, 다른 서비스에 영향을 주지 않고 안정적으로 운영됩니다.

직관적인 관리: 간단한 컨텍스트 메뉴 UI를 통해 서비스의 시작, 중지 등 모든 기능을 손쉽게 제어할 수 있습니다.

5. 결과 및 기대효과 (Result & Impact)
정량적 성과:

페이지 로딩 시간 99% 단축 (90초 → 1초 이내)

원본 DB의 부하를 현저히 감소시켜 전체 시스템 안정성 증대

정성적 성과:

사용자 경험(UX)의 획기적인 개선 및 서비스 만족도 상승

데이터 접근성 향상을 통한 신속하고 정확한 비즈니스 의사결정 지원

비슷한 프로젝트를 준비 중이라면?
바카라 매니저와 상담하세요.

참여 개발사와 미팅 연결

프로젝트 1:1 컨설팅 제공

대한민국 대표 IT 프로젝트

작업한 파트너프로필 보기

wl******
개발 · 개인

프로젝트 정보

참여 기간
2023.12. ~ 2023.12.
참여율
참여율이 100%인 프로젝트는 해당 파트너님이 온전히 작업한 결과물입니다.
외부 공동 작업의 경우 기여도에 따라 참여율이 달라지며 역할, 프로젝트 설명을 통해 업무 분야 및 참여 범위를 확인할 수 있습니다.
100%
고객사
비공개
관련 기술
.Net
MySQL
C#