01-02 기존 대시보드 문제점 분석
🔗 현재 대시보드 링크
Google Sheets 대시보드: 네이버 검색광고 데이터 수집
🔍 현재 시스템 상세 분석
시스템 구성 요소
Google Sheets (데이터 저장 + 설정 관리)
↕️
Google Apps Script (비즈니스 로직)
↕️
네이버 API (키워드도구 + DataLab)
↕️
정적 웹페이지 (데이터 시각화)
데이터 수집 범위
현재 수집 중인 주요 지표:
- 검색량: PC/모바일별 월간 검색량
- 광고 지표: 평균 클릭수, CTR, 경쟁도
- 트렌드: 최근 2년간 월별 변화율
- 연령대별: 검색 비중 분석
❌ 핵심 문제점 분석
1. 실시간성 부족 (Critical)
문제 상황
// 현재: 일 1회 배치 처리만 가능
function scheduledUpdate() {
// 매일 새벽 2시에만 실행
var keywords = getKeywordList();
keywords.forEach(keyword => {
updateKeywordData(keyword);
});
}실제 문제 사례
- 시나리오: “바디프로필” 키워드가 갑자기 급상승
- 현재 시스템: 접속해야 신규 데이터 확인 가능
- 비즈니스 임팩트: 최적 광고 입찰 타이밍 놓침
- 기회비용: 일 평균 클릭 단가 30% 상승 후 진입
개선 목표
- 현재: 24시간 지연 → 목표: 실시간 (5분 이내)
- 사용자 요청 시 즉시 최신 데이터 조회 가능
2. 확장성 제약 (High)
동시 사용자 문제
상황: 팀 동료 3명이 동시에 대시보드 사용 요청
결과:
- 스프레드시트 동시 편집 충돌
- 데이터 일관성 깨짐
- 일부 공식 오류 발생
현재 한계
- 동시 사용자: 실질적으로 1명만 가능
- 데이터 무결성: 동시 수정 시 공식 깨짐 위험
- 접근 권한 관리: 세밀한 권한 제어 불가
Apps Script 실행 제한
Google Apps Script 할당량:
- 실행 시간: 최대 6분
- 일일 실행: 프로젝트당 20,000회
- 동시 실행: 30개 제한
- 트리거: 사용자당 20개 제한
3. 사용자 경험 (Medium)
현재 UX 문제점
사용자 여정:
1. 구글 시트 접근 (로그인 필요)
2. 키워드 셀에 입력
3. 함수 실행 대기 (10-15초)
4. 결과 확인
5. 다른 키워드 분석 시 2-4 반복
실제 사용자 피드백
“데이터는 정확하고 유용한데, 매번 시트 열고 함수 실행하는게 번거로워요. 특히 모바일에서는 거의 못 써요.”
한계점
- 모바일 접근성: 스프레드시트 모바일 최적화 부족
- 인터랙티브: 클릭 기반 탐색 불가
- 시각화: 기본 차트 기능만 활용 가능
- 공유: URL 공유 시 편집 권한 관리 복잡
4. 데이터 분석 한계 (Medium)
고급 분석 기능 부족
현재 가능한 분석:
- ✅ 기본 검색량 조회
- ✅ 단순 트렌드 확인
- ❌ 키워드 간 상관관계 분석
- ❌ 계절성 패턴 자동 감지
- ❌ 경쟁사 대비 포지션 분석
- ❌ 예측 모델링
예시: 놓친 인사이트
데이터: "바디프로필" vs "여자바디프로필" vs "바디프로필스튜디오"
현재: 개별 지표만 확인 가능
놓친 분석:
- 3개 키워드 간 검색 패턴 연관성
- 계절성 차이 (여름 성수기 vs 일반)
- 연령대별 선호 키워드 차이
- 최적 광고 포트폴리오 구성 제안
5. API 제한 및 에러 처리 (Medium)
현재 에러 처리 방식
function nkey(req) {
try {
var res = UrlFetchApp.fetch(url, options);
var content = res.getContentText();
// 간단한 성공/실패만 확인
console.log('스테이터스 :'+res.getResponseCode());
} catch(e) {
// 에러 시 빈 값 반환 (사용자가 모름)
return ['', '', '', ''];
}
}문제점
- 에러 가시성: 실패 시 사용자가 모름
- 재시도 로직: 일시적 장애 시 수동 재실행 필요
- API 할당량: 네이버 API 호출 제한 관리 부족
- 로깅 부족: 디버깅 정보 부족
6. 운영 및 유지보수 (Low)
코드 관리 문제
// 하나의 스크립트 파일에 모든 로직 혼재
var s = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var accessKey = s.getRange('B2').getValue(); // 설정 관리
// ... 100줄 후 ...
function nkey(req) { /* API 호출 로직 */ }
// ... 50줄 후 ...
function ntrend(Req) { /* 다른 API 로직 */ }유지보수 이슈
- 코드 구조: 단일 파일에 모든 기능 혼재
- 버전 관리: Apps Script 환경의 제한적 Git 연동
- 테스트: 단위 테스트 작성 어려움
- 배포: 수동 배포로 인한 휴먼 에러 위험
📊 문제점별 우선순위 매트릭스
| 문제점 | 비즈니스 임팩트 | 기술적 복잡도 | 우선순위 | 해결 방안 |
|---|---|---|---|---|
| 실시간성 부족 | High | Medium | 1순위 | Cloud Functions + 실시간 API |
| 확장성 제약 | High | Medium | 2순위 | Cloud Run + Firestore |
| 사용자 경험 | Medium | Low | 3순위 | React SPA 구축 |
| 분석 기능 한계 | Medium | High | 4순위 | 데이터 처리 서비스 |
| 에러 처리 부족 | Low | Low | 5순위 | 모니터링 시스템 |
| 유지보수 어려움 | Low | Medium | 6순위 | 마이크로서비스 분해 |
🎯 개선 기대 효과
정량적 개선 목표
성능 지표
- 데이터 갱신: 24시간 → 실시간 (100% 개선)
- 응답 속도: 10-15초 → 2-3초 (80% 개선)
- 가용성: 95% → 99.9% (SLA 향상)
- 동시 사용자: 1명 → 100명+ (확장성)
사용성 지표
- 모바일 접근성: 불가능 → 완벽 지원
- 분석 깊이: 기본 → 고급 인사이트
- API 활용: 불가능 → RESTful API 제공
정성적 개선 효과
사용자 경험
- 즉시성: “지금 당장 확인하고 싶은” 니즈 충족
- 편의성: 모바일/PC 어디서나 동일한 경험
- 직관성: 클릭 몇 번으로 원하는 분석 완료
비즈니스 가치
- 의사결정 속도: 실시간 데이터 기반 빠른 판단
- 기회 포착: 트렌드 변화 즉시 감지 및 대응
- 경쟁 우위: 데이터 기반 선제적 마케팅 전략
🚀 해결 방향성
단기 해결 방안 (Phase 1)
- Cloud Functions: 실시간 API 호출 구현
- Firestore: 확장 가능한 데이터 저장소
- React 웹앱: 향상된 사용자 인터페이스
장기 해결 방안 (Phase 2-3)
- 마이크로서비스: 도메인별 서비스 분리
- 고급 분석: ML 기반 인사이트 제공
- API 생태계: 외부 연동 가능한 플랫폼
작성일: 2025-11-08
분석 대상: 현재 대시보드
다음 문서: 01-03-학습-목표-및-성과-지표