해수부 내부망 + 해경 내부망 이중 접속 필요 · 가상 시연으로 진행됩니다
1
프로젝트 핵심 요약
🎯 개발 목적
PORT-MIS → 엑셀 → 현장업무포털까지 3단계 이중 수동 입력 완전 자동화
⚙️ 주요 기능
WebView2 웹 크롤링 · Excel COM 자동 바인딩 · 웹 폼 자동 전송 · 실시간 터미널 GUI
🛠️ 기술 스택
PowerShell · Microsoft WebView2 · .NET WinForms · Excel COM Interop
✅ 기대 효과
처리 시간 95% 단축 (10~20분 → 1분) · 입력 오차율 0% 달성
2
도입 전 / 후 비교
⚠️ Before · 기존 방식
- PORT-MIS 접속 → 선박 입출항·이동·투묘 데이터 항목별 수동 조회
- 수집 데이터를 수식으로 직접 계산하여 엑셀 장부에 수동 기입
- 엑셀 기입 후 현장업무포털에 동일 데이터를 또 다시 타이핑
- 복잡한 창 전환 과정에서 오타·누락 빈발
매일 10~20분 소요
✅ After · 자동화 후
- 버튼 클릭 하나로 PORT-MIS 자동 접속 및 데이터 크롤링
- 크롤링 결과 엑셀 지정 셀에 정확하게 자동 바인딩 저장
- 현장업무포털 자동 로그인 → 폼 자동 입력 → 전송까지 원클릭
- 실시간 터미널 GUI로 전 과정 모니터링 가능
🕐 전체 처리 시간 → 약 1분
3
가상 시연 · RPA 실행 흐름
1
시스템 접속 및 데이터 크롤링
WebView2 내장 브라우저로 PORT-MIS 자동 로그인 · 선박 실적 데이터 자동 수집
2
엑셀 자동 가공 및 기입
수집 데이터 자동 연산 · 운영실적.xls + 일일통계표.xlsx 지정 셀에 COM 자동 바인딩
3
현장업무포털 자동 전송 완료
현장업무포털 자동 로그인 → 폼 데이터 매칭 → 제출 완료. 약 1분 내 전 과정 종결.
# 가상 시연을 시작하려면 아래 버튼을 클릭하세요
+
소스코드 전문 공개
실제 구동되는 스크립트 소스코드 원본입니다.
※ 내부망 도메인은 더미값(hp.kcg.internal)으로 마스킹 처리되어 있습니다.
portmis.ps1
# PORT-MIS Auto-Reporter
# WebView2 기반 RPA 자동화 스크립트
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$wv2Core = "C:\WebView2\Microsoft.Web.WebView2.Core.dll"
$wv2WinForms = "C:\WebView2\Microsoft.Web.WebView2.WinForms.dll"
Add-Type -Path $wv2Core
Add-Type -Path $wv2WinForms
# 내부망 URL (더미 처리)
$PORTMIS_URL = "https://portmis.go.kr"
$FIELD_LOGIN_URL = "http://hp.kcg.internal/FisdOBS/index.jsp"
$FIELD_DIARY_URL = "http://hp.kcg.internal/FisdOBS/vt/vtsWorkDiary.do?progrm_id=OBS0501"
# GUI Form 초기화
$form = New-Object System.Windows.Forms.Form
$form.Text = "PORT-MIS 관제일보 자동화"
$form.Size = New-Object System.Drawing.Size(900, 650)
# WebView2 컨트롤 초기화
$webView = New-Object Microsoft.Web.WebView2.WinForms.WebView2
$webView.Dock = "Fill"
# 터미널 출력 패널
$terminal = New-Object System.Windows.Forms.RichTextBox
$terminal.BackColor = [System.Drawing.Color]::FromArgb(13,17,23)
$terminal.ForeColor = [System.Drawing.Color]::FromArgb(230,237,243)
$terminal.Font = New-Object System.Drawing.Font("Consolas", 9)
# 실행 버튼
$runBtn = New-Object System.Windows.Forms.Button
$runBtn.Text = "엑셀 및 현장업무포털 실적 입력 실행"
$runBtn.Add_Click({
Write-Terminal "[시작] PORT-MIS 자동 접속 중..."
# 웹 크롤링 및 데이터 처리 로직 실행
})
# ... (이하 GUI 조립 및 이벤트 핸들러 생략)