귀찮은 현장실습 일간 보고서를 자동화 해보자

최규민

최규민

2025년 6월 25일4 min read

귀찮은 현장실습 일간 보고서를 자동화 해보자

지난 3월 ICT 인턴십에 합격하여, 이제 퇴사까지 일주일도 남지 않은 AI 엔지니어 최규민입니다.

ICT 인턴십과 대학교 현장실습은 겹치는 지점이 많은데,

제가 재학 중인 세종대학교에서는 ICT 인턴십 참가자들도 세종대학교 학생들을 위한 대학일자리플러스센터 & 고용노동부 워크넷 사이트인 유드림에 매일매일 그날 회사에서 무엇을 했는지 이러쿵 저러쿵 적어야만 합니다.

언젠가 한방에 다 적어야지~ 하고 있었는데 며칠 전에 전화가 왔습니다.

그렇습니다. 생각보다 시간이 없었습니다…

위기를 감지하고 서둘러 유드림에 들어갔으나

하루에 보고서 한문장씩 네달이면 단순 계산으로

30 * 4 = 120

보고서 120개를 하나하나 써야 하는

이야~ 이거 정말 큰일 난 것입니다.

한 문장씩 작문 하는 것도 일이고

이걸 어느 세월에 하나하나 클릭하고 있을지도 참 그랬습니다.

그러다가 어느 순간…

“그냥 자동화 하면 딸깍 아닌가?”

라는 생각이 들어서 바로 실행으로 옮겼습니다.


🖱️딸-깍

딸-깍은 세종대학교 유드림 현장실습 보고서 자동화 프로그램입니다.

  • 보고서 생성은 Open Router의 무료 모델(gemma3:27b free)을 사용합니다.
  • 보고서 제출은 Playwright을 사용합니다.
  • UI는 Streamlit을 사용합니다.

딸-깍의 주요 기능은 다음과 같습니다.

  • 사용자가 언제부터 언제까지 어떤 일을 했는지를 입력 받고, LLM이 ‘일’을 선택된 기간만큼의 step으로 나누어 한 문장씩 정리합니다.
  • playwright을 이용해 어떤 날에 무엇을 했는지 유드림 보고서 작성 페이지에 업로드 합니다.

자세한 아키텍처 및 코드 설명은 deepwiki로 자동 생성한 아래 Documentation에서 확인하실 수 있습니다.

왜 Playwright인가?

selenium이나 beautifulsoup + requests 등 다양한 조합이 있는 건 알고 있습니다.

playwright을 사용한 이유는 그냥 사용하기 쉬웠기 때문입니다.

또한 인턴십 과정에서 잠깐 동안 QA를 진행한 적이 있었는데, 그러다 보니 QA 자동화에 관심이 생겨 이것 저것 알아보던 중 playwright을 써봐야지~ 하고 메모해 놨던 것을 발견했습니다.

playwright을 이용한 모듈의 기본적인 기능들은 codegen을 활용하여 틀을 잡았습니다.

이렇게 만들어진 틀을 조금씩 바꿔나갔습니다.

가령 달력을 누를 때 #Rdate 엘리먼트로 처리하도록 바꾼다든지 말이죠.

headless=False 모드로 했을 때 브라우저의 움직임이 하나하나 보이는 것도 맘에 들었습니다.

사실 이 서비스를 streamlit cloud에 배포하려고 했는데, playwright은 XServer 등을 필요로 하여 제약이 있었습니다.

그래서 selenium으로 바꿀까 생각도 했지만

애초에 사용자의 계정 정보를 streamlit에서 input으로 받고 있는데, 나중에 보안 관련 문의가 들어올 것을 염려하여 그냥 .bat이나 .sh 파일로 원클릭 설치/실행할 수 있게 하여 배포하기로 선회했습니다.

그래서 결국은 playwright을 사용하게 되었습니다.

ㅇ어케함?

제가 사용한 프롬프트는 아래와 같았는데요

javascript
너는 기업에서 현장실습을 진행한 세종대학교 학생의 일간 레포트 작성을 돕는 똑똑한 인공지능이다.
각 날짜에 따라 학생이 입력한 주제에 맞는, 학생이 했을 만한 일을 한 문장씩 적어라.
이 때, 주어진 주제를 분석하여 실제로 학생이 실천했을 법한 계획을 세워, 그 계획을 적어라.

### 주제 ###
{thesis}

### 날짜 ###
{days}

답변은 아래와 같은 형식으로 하라. 아래는 예시이니 실제 값으로 변경하라.
이 때, 문체는 '~도출 하였다.`가 아닌 `~도출`로 통일하라.
[
  {
    'date': `2025-06-24',
    'thesis': 'LLM 파인튜닝' # 주제에 주어진 값 그대로 입력
    'report': 'Roboflow를 사용하여 파인튜닝 데이터 Annotation 진행'
  },
  {
    'date': `2025-06-25',
    'thesis': 'LLM 파인튜닝' # 주제에 주어진 값 그대로 입력
    'report': '생성한 데이터셋 전처리'
  }
]

인턴십 진행하면서 데이터셋을 json 형태로 LLM에게서 뽑아내야 할 일이 꽤 있었고

거기서 얻은 나름의 노하우로 이렇게 shot을 줄 수 있었습니다.

그럼에도 불구하고 가끔 LLM이 정해진 양식에서 뭘 더 붙이는 경우가 있습니다. 가령 ```json 을 붙인다던가 말이죠

그런데 세상에 LLM에게 완벽한 json 출력을 원하는 사람은 많고

그 사람들이 이미 만들어 놓은 라이브러리가 있습니다.

바로 json_repair 패키지 입니다.

저는 간단하게 코드 한 줄로 LLM이 뱉은 json을 cleansing 했습니다.

python
report_data = json_repair.loads(reports)

이 한 줄이면 복잡한 후처리 로직 구현이 필요 없습니다.

결과물

정말 생각보다 나쁘지 않은 결과였습니다.

사람이 했으면 몇 시간은 걸릴 작업을 (대략 120건 이상의 보고서 작성) 정말 “딸-깍”으로 끝낼 수 있게 된 것입니다.

다만 사소한 에러가 있었는데…

LLM으로 보고서 생성 과정에서 입사 전에도 출근한 것으로 처리하거나

주말에도 출근한 것으로 입력해버리는 오류가 있었습니다.

불행하게도 수정이 되지 않아서 학교에 전화해서

“제가 잘못 입력을 좀 많이 했는데 어떻게 수정하나요?”

라고 여쭈었더니

그냥 인쇄해서 네임펜으로 두 줄 죽죽 그으라고 하셨습니다.

전화 받은 취창업지원센터 직원분은 제가 얼마나 띨빵해보였을까요

하지만 띨빵한 건 제가 아니라 LLM입니다

맘에 들어서 교내 SW 정보공유 커뮤니티와 개발 중앙동아리 톡방에도 홍보했는데 반응이 꽤 괜찮았습니다.

제가 커서를 쓰지 않아서 만드는 과정은 비록 딸-깍은 아니었지만…

‘딸-깍’을 ‘딸-깍’하진 않았다 이 말입니다

여하튼 이번 기회에 playwright 자동화를 체험해 볼 수 있어서 좋았습니다.

몇 시간은 걸렸을 반복 작업을 간단하게 몇 분 안에 끝낼 수 있게 되었습니다.

저는 ‘딸-깍’을 이용해 100개 정도의 보고서를 하룻밤 사이에 끝내버렸습니다.

이거 완전

기회가 된다면 서버리스로 슉 올려서 계정 정보 안전하게 처리해서 다운로드 절차도 없애보고 싶네요.

그렇지만 그렇게 되면 가뜩이나 가볍고 몇 줄 안 되는 코드인데 배 보다 배꼽이 커지게 되는 거라..

끝입니다!


#🚗Automation
최규민

최규민

AI Engineer

사파식 AI-Native LLM SWE