수강생 사례 #업무자동화 #나라장터 #Selenium #공공조달

매달 10시간씩 사라지던
입찰공고 조회 업무,
코드 한 번으로 끝냈습니다

Python + Selenium으로 나라장터 자동 접속 → 업종별 입찰공고 수집 → 세부내역 추가 후 엑셀 저장까지 완전 자동화.
ChatGPT X Python RPA 교육 수강생이 직접 만든 공공조달 업무 자동화 실전 사례입니다.

10시간
기존 월
소요 시간
약 1시간
자동화 후
월 소요 시간
90%
업무 시간
절감률
5단계
수작업 전 과정
자동화 완료

01 — 배경 · Problem

나라장터는 클릭 한 번도
쉽지 않은 사이트입니다

바이브코딩스쿨 수강 전, 나라장터 입찰공고를 수작업으로 정리하며 지쳐있는 비전공자 직장

공공 IT 사업의 입찰 정보는 나라장터(G2B)에 집중되어 있습니다. 담당자는 매달 수십 건의 특정 공공조달 분야 입찰공고를 직접 검색하고, 업종 코드를 선택하고, 마감 건을 제외하고, 공고별 세부내역을 하나하나 확인한 뒤 엑셀로 정리해야 했습니다. 해당 업종은 특정 조달 카테고리로, 매달 수십 건 이상의 공고가 등록됩니다.

문제는 나라장터가 보안·안정성 중심의 복잡한 프레임워크로 동작한다는 점입니다. 일반적인 자동화 방식으로는 버튼 하나도 클릭이 되지 않고, 팝업창은 예고 없이 등장합니다. 그래서 모든 과정이 결국 사람 손으로 돌아왔습니다.

월 10시간, 연 120시간. 같은 검색을 반복하면서도 실수나 누락이 생길 수 있는 구조였습니다.

"매달 같은 작업을 반복하는데, 나라장터는 자동화가 안 된다는 말을 들었습니다. 그게 오히려 도전해보고 싶었습니다."

단계 작업 내용 소요 시간
STEP 1 나라장터 접속 → 팝업 수동으로 모두 닫기 약 5분
STEP 2 입찰공고목록 → 상세조건 → 업종 돋보기 클릭 → 특정 업종코드 검색 후 선택 약 10분
STEP 3 입찰마감 건 제외 설정 → 조회 결과 확인 약 5분
STEP 4 감리사업 공고 건별 클릭 → 세부내역(낙찰방법·예산·추정가격 등) 수기 기록 약 2~3시간
STEP 5 감리사업 내용 PDF 저장 및 엑셀 정리 약 1~2시간

🖱️ 공공기관 전용 프레임워크 환경 — 일반 자동화 방식이 즉시 적용되지 않아 모든 조작이 수작업으로 귀결

📋 공고 건별 세부내역 수기 입력 — 낙찰방법·예산·추정가격을 하나씩 복사하는 반복 작업이 전체 시간의 대부분

⏰ 월 10시간, 연 120시간 손실 — 동일한 루틴을 매달 처음부터 반복하면서도 누락 리스크가 상존


02 — 솔루션 · Solution

표준 브라우저 기술로
나라장터를 자동화했습니다

AI 바이브코딩 교육으로 만든 파이썬 자동화 스크립트가 공공조달 데이터를 수집하는 화면

핵심 돌파구는 브라우저 표준 Web API 기반 이벤트 처리였습니다. 해당 사이트의 동작 방식을 분석해 공개된 브라우저 표준 API를 적용하는 방식으로, 버튼 클릭 동작을 안정적으로 처리했습니다.

팝업 자동 제거, 업종 코드 자동 입력, 엑셀 다운로드, 세부내역 추가 수집까지 전 과정이 코드 한 번 실행으로 완료됩니다.

사용 도구

🐍 Python 3.12 🌐 Selenium 📊 pandas / openpyxl ⚙️ WebDriverManager 🔧 브라우저 표준 Web API
INPUT
코드 실행 한 번
별도 설정 없이 즉시 시작 — 나라장터(g2b.go.kr) 자동 접속
1
STEP 1 · 팝업 자동 제거
공지 팝업 전체 자동 감지 및 닫기
접속 시 나타나는 복수의 팝업을 ID 패턴으로 감지해 순서대로 닫습니다. 팝업이 모두 사라질 때까지 반복 처리합니다.
결과값: 클린 상태의 나라장터 메인화면 확보
2
STEP 2 · 업종 자동 선택
JS MouseEvent로 대상 업종코드 자동 검색·선택
WebSquare 기반 사이트에서 사용하는 표준 브라우저 이벤트 방식(JavaScript Web API)을 활용해 버튼 조작을 수행합니다. 업종 팝업 입력창에 코드를 입력하고 결과 첫 번째 행을 자동 선택합니다.
결과값: 대상 업종코드 조건 자동 설정 완료
3
STEP 3 · 엑셀 자동 다운로드
조회 결과 엑셀 저장 및 알림창 자동 처리
검색 실행 후 브라우저 알림창이 뜨면 자동으로 수락하고, 엑셀 저장 버튼을 클릭합니다. 다운로드 완료까지 대기 후 가장 최근 파일을 자동 인식합니다.
결과값: 입찰공고 목록 엑셀 파일 자동 저장
4
STEP 4 · 완료
공고별 세부내역 자동 추출 및 엑셀 병합 저장
JavaScript로 각 공고의 세부 div를 자동 수집합니다. 공고명 기준으로 낙찰방법·예가방법·배정예산·추정가격 등을 정리해 다운로드된 엑셀에 컬럼을 추가하고 새 파일로 저장합니다.
출력형태: 입찰공고_업데이트.xlsx — 세부내역 포함 완성 파일
OUTPUT
입찰공고_업데이트.xlsx 자동 생성 완료
공고명·낙찰방법·예가방법·배정예산·추정가격 등 세부내역 일괄 포함

각 단계 핵심 포인트

STEP 01 — 브라우저 표준 API 적용 · 안정적 버튼 이벤트 처리

나라장터는 일반 Selenium click()이 동작하지 않는 사이트입니다. 브라우저 표준 이벤트 API를 활용한 커스텀 클릭 함수를 만들어 모든 버튼 조작에 활용했습니다.

✓ "자동화가 안 된다"는 통념을 기술적으로 해결
STEP 02 — 세부내역 수집 · JS 기반 DOM 파싱

각 공고의 상세 정보는 특정 스타일 속성을 가진 div 안에 담겨 있습니다. JavaScript로 해당 div를 일괄 수집하고, 콜론(:) 기준으로 항목명과 값을 분리해 딕셔너리로 구조화했습니다.

✓ 수기 복사 없이 7개 이상 세부 항목 자동 추출
STEP 03 — 엑셀 병합 · pandas 공고명 기준 매칭

다운로드된 엑셀의 E열(공고명)을 기준으로 수집된 세부내역 딕셔너리와 병합합니다. 공고명이 일치하는 행에 자동으로 컬럼을 추가하고 새 파일명으로 저장합니다.

✓ 기존 엑셀 구조 유지하면서 데이터 자동 보강

03 — 결과 · Result

월 10시간이
약 1시간으로 줄었습니다

비현코 AI교육 수료 후 나라장터 자동화에 성공해 여유롭게 결과물을 확인하는 직장인

Before · 수작업

• 사이트 직접 접속 후 팝업 수동 닫기

• 업종 코드 수동 검색·선택

• 공고 건별 클릭 → 세부내역 수기 기록

• PDF 저장 및 엑셀 수작업 정리

월 소요 시간
10시간
= 연 120시간
After · 자동화

• 코드 실행 → 자동 접속 및 팝업 제거

• 대상 업종코드 자동 선택

• 공고 세부내역 JS 일괄 수집

• 엑셀 자동 병합 후 저장 완료

월 소요 시간
약 1시간
= 연 12시간 (108시간 절약)
📊 입찰공고_업데이트.xlsx · 자동 생성됨
📋 원본목록 📊 세부내역포함 ◀ 현재 시트
총 7건 자동 수집 완료 🟢 세부내역 매칭 7건 📎 협상계약 5건
공고명 낙찰방법 배정예산 추정가격
공공 정보시스템 재구축사업 감리 용역 협상계약 84,173,170원 76,521,064원
지자체 온라인 플랫폼 고도화 사업 감리 용역 협상계약 105,000,000원 95,454,545원
전자문서 처리시스템 구축 PMO 용역 협상계약 467,211,680원 420,909,091원
해외 법령정보시스템 구축 전산감리 용역 협상계약 269,434,662원 244,940,602원
물류 화물관리시스템 고도화 감리 사업 협상계약 142,519,760원 128,181,818원
⋯ 전체 7건 세부내역 자동 병합 완료 — 코드 실행 한 번으로 생성됨

"나라장터는 자동화가 불가능하다고 생각했는데, 이번에 직접 만들고 나니 '되는구나' 싶었습니다. 매달 쓰던 시간이 그냥 생겨버렸어요."

수강생 정OO / ChatGPT X Python RPA 교육 수료 · IT 운영부

04 — 인사이트 · Insight

"자동화가 절대 불가한 사이트"는
없습니다

나라장터처럼 정부·공공기관 시스템은 보안과 안정성을 이유로 표준 웹 기술 대신 자체 프레임워크를 씁니다. 이 때문에 "크롤링이 안 된다", "자동화가 막혀 있다"는 경험을 많이 합니다. 하지만 실제로는 막혀 있는 것이 아니라 다른 방식이 필요한 것입니다.

JavaScript 이벤트를 직접 발생시키는 방식은 공공 시스템 자동화의 핵심 기법 중 하나입니다. 나라장터 외에도 HRD-Net, 전자정부 포털, 사내 ERP처럼 레거시 프레임워크 기반 사이트에 동일하게 적용할 수 있습니다.

이 수강생의 사례는 "도구를 배웠다"가 아니라, 장벽을 분석하고 기술적으로 돌파했다는 점에서 특별합니다. AI와 함께 코드를 짜는 방식이 그 과정을 훨씬 빠르게 만들었습니다.

막혀 있는 게 아니라,
다른 방법이 필요한 것이었습니다.

공공 시스템도 파이썬으로 자동화할 수 있습니다. 


05 — 확장 · Expansion

같은 방식, 다른 업무에도
그대로 씁니다

나라장터 자동화에 쓰인 JS 이벤트 트리거 방식은 공공기관 포털과 레거시 사내 시스템 전반에 적용할 수 있습니다. 다음 업무들을 바로 자동화할 수 있습니다.

🔗 같은 방식으로 자동화 가능한 업무들

HRD-Net 훈련과정 모니터링 — 직업훈련 포털 접속 → 과정명·정원·승인현황 자동 수집 → 엑셀 저장

전자조달 업체 등록 현황 조회 — 특정 업종코드 등록 업체 목록 자동 추출 → 경쟁사 분석 자료 생성

사내 레거시 ERP 데이터 추출 — JS 이벤트 기반 ERP 버튼 조작 → 보고서 데이터 자동 다운로드

공공데이터포털 데이터셋 수집 — 키워드 검색 자동화 → 파일 목록 수집 → 정기 업데이트 알림

규제정보포털 법령 변경 모니터링 — 업종별 규제 변경 자동 감지 → 담당자 이메일 발송

매달 반복되는 공고 조회 업무,
코드 한 번으로 완전 자동화했습니다

IT 운영 담당자가 ChatGPT X Python RPA 교육에서 직접 만든 나라장터 업무 자동화 실전 사례 · 월 10시간 → 약 1시간, 90% 절감.