대상: 사내 매출 현황판 운영 담당자
환경: Windows + Chrome 브라우저 3개 (HDMI 3대 연결)
목표: 5분 간격 자동 새로고침 안정적 운영

목차

  1. Chrome 설정 최적화
  2. Tab Reloader 익스텐션 설치
  3. PowerShell 자동 갱신 스크립트
  4. 시작 프로그램 등록
  5. 문제 해결

1. Chrome 설정 최적화

익스텐션이 불안정한 주요 원인은 Chrome의 절전 기능입니다. 먼저 이 설정을 비활성화합니다.

1.1 탭 절전 모드 비활성화

1. Chrome 주소창에 입력: chrome://flags
2. 검색창에 "occlusion" 입력
3. "Calculate window occlusion on Windows" 찾기
4. "Disabled" 선택
5. 하단 "Relaunch" 클릭하여 재시작

1.2 메모리 세이버 비활성화

1. Chrome 주소창에 입력: chrome://settings/performance
2. "메모리 세이버" (Memory Saver) → OFF
3. "에너지 세이버" (Energy Saver) → OFF

1.3 백그라운드 앱 유지

1. Chrome 주소창에 입력: chrome://settings/system
2. "Chrome 종료 후에도 백그라운드 앱 계속 실행" → ON

2. Tab Reloader 익스텐션 설치

2.1 설치

1. Chrome 웹 스토어 접속: https://chrome.google.com/webstore
2. "Tab Reloader" 검색
3. "Tab Reloader (page auto refresh)" 설치 (개발자: tlintspr)
4. 또는 직접 링크: https://chromewebstore.google.com/detail/tab-reloader-page-auto-re/dejobinhdiimklegodgbmbifijpppopn

2.2 설정 방법

각 대시보드 탭에서:

1. 주소창 오른쪽 Tab Reloader 아이콘 클릭
2. "Reload interval" 설정:
   - Minutes: 5
   - Seconds: 0
3. "Enable" 토글 ON
4. 3개 탭 모두 동일하게 설정

2.3 고급 설정 (권장)

Tab Reloader 아이콘 우클릭 → 옵션:

[v] Reload on browser startup (브라우저 시작 시 자동 갱신)
[v] Bypass cache on reload (캐시 무시하고 새로고침)
[v] Don't reload if form data present (폼 데이터 보호)

3. PowerShell 자동 갱신 스크립트

익스텐션이 불안정할 경우 백업 솔루션으로 사용

3.1 스크립트 파일 생성

파일 경로C:\Scripts\AutoRefreshDashboard.ps1

<#
.SYNOPSIS
    Chrome 브라우저 대시보드 자동 새로고침 스크립트
.DESCRIPTION
    5분마다 모든 Chrome 창에 F5 키를 전송하여 새로고침
.NOTES
    사용법: PowerShell -ExecutionPolicy Bypass -File C:\Scripts\AutoRefreshDashboard.ps1
#>

# 설정
$RefreshIntervalSeconds = 300  # 5분 = 300초
$LogFile = "C:\Scripts\refresh_log.txt"

# 로그 함수
function Write-Log {
    param([string]$Message)
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    "$timestamp - $Message" | Out-File -FilePath $LogFile -Append
    Write-Host "$timestamp - $Message"
}

# 시작 로그
Write-Log "=== 대시보드 자동 새로고침 시작 ==="
Write-Log "새로고침 간격: $RefreshIntervalSeconds 초"

# 필요한 어셈블리 로드
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName Microsoft.VisualBasic

# 메인 루프
while ($true) {
    try {
        # 대기
        Write-Log "다음 새로고침까지 $RefreshIntervalSeconds 초 대기..."
        Start-Sleep -Seconds $RefreshIntervalSeconds

        # Chrome 프로세스 찾기
        $chromeProcesses = Get-Process -Name "chrome" -ErrorAction SilentlyContinue |
                          Where-Object { $_.MainWindowTitle -ne "" }

        if ($chromeProcesses.Count -eq 0) {
            Write-Log "경고: 활성 Chrome 창을 찾을 수 없습니다."
            continue
        }

        Write-Log "Chrome 창 $($chromeProcesses.Count)개 발견. 새로고침 시작..."

        # 각 Chrome 창에 F5 전송
        foreach ($process in $chromeProcesses) {
            try {
                # 창 활성화
                [Microsoft.VisualBasic.Interaction]::AppActivate($process.Id)
                Start-Sleep -Milliseconds 300

                # F5 키 전송
                [System.Windows.Forms.SendKeys]::SendWait("{F5}")
                Write-Log "새로고침 완료: $($process.MainWindowTitle)"

                Start-Sleep -Milliseconds 500
            }
            catch {
                Write-Log "오류 발생: $($_.Exception.Message)"
            }
        }

        Write-Log "전체 새로고침 완료"
    }
    catch {
        Write-Log "치명적 오류: $($_.Exception.Message)"
        Start-Sleep -Seconds 10
    }
}

3.2 스크립트 폴더 생성 및 저장

# PowerShell 관리자 권한으로 실행 후:

# 폴더 생성
New-Item -ItemType Directory -Path "C:\Scripts" -Force

# 스크립트 파일은 메모장으로 위 내용 복사 후 저장
# 파일명: C:\Scripts\AutoRefreshDashboard.ps1
# 인코딩: UTF-8

3.3 수동 실행 테스트

# PowerShell에서 실행
PowerShell -ExecutionPolicy Bypass -File "C:\Scripts\AutoRefreshDashboard.ps1"

# 정상 동작 확인 후 Ctrl+C로 중지

4. 시작 프로그램 등록

4.1 방법 1: 배치 파일로 등록 (권장)

1단계: 배치 파일 생성

파일 경로: C:\Scripts\StartDashboard.bat

@echo off
:: 대시보드 자동 시작 스크립트

:: Chrome 실행 (각 모니터에 대시보드 열기)
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" --new-window "http://dashboard.company.com/korea"
timeout /t 3
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" --new-window "http://dashboard.company.com/taiwan"
timeout /t 3
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" --new-window "http://dashboard.company.com/us"
timeout /t 5

:: 자동 새로고침 스크립트 시작 (백그라운드)
start /min powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Scripts\AutoRefreshDashboard.ps1"

echo 대시보드 시작 완료

2단계: 시작 프로그램에 등록

1. Win + R 키 입력
2. "shell:startup" 입력 후 Enter
3. 시작 프로그램 폴더 열림
4. C:\Scripts\StartDashboard.bat 파일의 바로가기 생성하여 이 폴더에 복사

4.2 방법 2: 작업 스케줄러 등록 (더 안정적)

1. Win 키 → "작업 스케줄러" 검색 후 실행
2. "작업 만들기" 클릭

[일반 탭]
- 이름: Dashboard Auto Refresh
- "가장 높은 수준의 권한으로 실행" 체크

[트리거 탭]
- 새로 만들기
- "로그온할 때" 선택
- "특정 사용자" 선택

[동작 탭]
- 새로 만들기
- 프로그램: powershell.exe
- 인수: -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Scripts\AutoRefreshDashboard.ps1"

[조건 탭]
- "컴퓨터의 AC 전원이 켜져 있는 경우에만..." 체크 해제

[설정 탭]
- "요청 시 작업 실행 허용" 체크
- "예약된 시작 시간을 놓친 경우..." 체크

5. 문제 해결

5.1 익스텐션이 동작하지 않는 경우

증상원인해결 방법
탭이 회색으로 변함메모리 세이버섹션 1.2 참조
가끔씩만 새로고침절전 모드섹션 1.1 참조
익스텐션 아이콘 사라짐Chrome 업데이트익스텐션 재설치

5.2 PowerShell 스크립트 오류

# 실행 정책 오류 시
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

# 권한 오류 시 - 관리자 권한으로 PowerShell 실행

5.3 로그 확인

# 새로고침 로그 확인
Get-Content "C:\Scripts\refresh_log.txt" -Tail 20

# 실시간 로그 모니터링
Get-Content "C:\Scripts\refresh_log.txt" -Wait

5.4 Chrome이 여러 프로세스로 분리되는 경우

# 모든 Chrome 창 찾기 (개선된 버전)
$chrome = Get-Process | Where-Object {
    $_.ProcessName -eq "chrome" -and
    $_.MainWindowHandle -ne 0
}

체크리스트

시작 전 확인사항:

  •  Chrome 최신 버전 업데이트
  •  chrome://flags 에서 occlusion 비활성화
  •  메모리 세이버 OFF
  •  Tab Reloader 익스텐션 설치 및 설정
  •  PowerShell 스크립트 테스트 완료
  •  시작 프로그램 등록 완료
  •  재부팅 후 자동 실행 확인

참고