요즘IT
위시켓
AIDP - AX
Rise ERP
콘텐츠프로덕트 밸리
요즘 작가들컬렉션물어봐
놀이터
콘텐츠
프로덕트 밸리
요즘 작가들
컬렉션
물어봐
놀이터
새로 나온
인기
개발
AI
IT서비스
기획
디자인
비즈니스
프로덕트
커리어
트렌드
스타트업
서비스 전체보기
위시켓요즘ITAIDP - AXRise ERP
고객 문의
02-6925-4867
10:00-18:00주말·공휴일 제외
yozm_help@wishket.com
요즘IT
요즘IT 소개작가 지원
기타 문의
콘텐츠 제안하기광고 상품 보기
요즘IT 슬랙봇크롬 확장 프로그램
이용약관
개인정보 처리방침
청소년보호정책
㈜위시켓
대표이사 : 박우범
서울특별시 강남구 테헤란로 211 3층 ㈜위시켓
사업자등록번호 : 209-81-57303
통신판매업신고 : 제2018-서울강남-02337 호
직업정보제공사업 신고번호 : J1200020180019
제호 : 요즘IT
발행인 : 박우범
편집인 : 노희선
청소년보호책임자 : 박우범
인터넷신문등록번호 : 서울,아54129
등록일 : 2022년 01월 23일
발행일 : 2021년 01월 10일
© 2013 Wishket Corp.
로그인
요즘IT 소개
콘텐츠 제안하기
광고 상품 보기
AI

매월 30분씩 투자하던 일을 1분으로 줄였더니

아이엠조차장
7분
1시간 전
183
에디터가 직접 고른 실무 인사이트 매주 목요일에 만나요.
newsletter_profile0명 뉴스레터 구독 중

앞선 글에서 나는 400페이지짜리 점검 문서의 서명을 검사하는 도구를 이야기를 했다. 이번에도 자동화에 관한 이야기지만 대상이 다르다. 이번엔 한 장이 아니라, 두 장의 문서를 서로 맞춰보는 일이다.

 

매달 마감이 되면 나는 두 종류의 문서를 나란히 놓는다. 하나는 팀원들의 한 달 출근 기록이고, 다른 하나는 그달에 낸 휴가 신청서 묶음이다. 내가 하는 일은 단순하다. 출근 기록에 오전 반차나 연차라고 적힌 날마다, 거기에 맞는 휴가 신청서가 실제로 있는지 확인하는 것이다.

 

말로 쓰면 한 줄인데, 실제로는 종이를 스캔한 문서를 한 장씩 넘기며 손으로 적힌 표기를 읽고, 다른 문서에서 같은 사람의 같은 날짜를 찾아 맞춰봐야 한다. 한 건이라도 어긋나면 근태와 정산이 틀어진다. 매달 이 대조 업무에 시간을 쓰면서, 이것도 AI에 맡겨보면 어떨까 고민해 본 과정을 담아보았다.

 
출근 기록과 휴가 신청서를 맞추는 4단계 흐름도: 두 문서 준비→이미지로 읽기→양방향 대조→사람 확인, 확인 시간은 30분에서 1분으로 단축
출근 기록과 휴가 신청서를 이미지로 읽어 양방향으로 맞추고, 어긋난 것만 사람에게 올리는 흐름 <출처: 작가, 클로드로 생성>

 

이 대조는 왜 번거로웠을까

출근 기록과 휴가 신청서는 애초에 다른 곳에서 만들어진다. 출근 기록은 한 달 치 근태를 한 장에 요약한 표이고, 휴가 신청서는 사람마다 날짜마다 따로 낸 개별 문서다. 하나는 요약본, 하나는 낱장이다. 이 둘을 맞추려면 요약본의 한 칸을 보고 낱장 더미에서 짝을 찾아야 한다.

 

번거로움은 규칙이 하나가 아니라는 데서 온다. 출근 기록에 휴가로 표기됐다고 해서 전부 신청서가 있어야 하는 건 아니다. 출장이나 교육은 근무의 일종이라 휴가 신청서를 쓰지 않는다. 당직도 마찬가지다. 당직은 쉬는 날이 아니라 일하는 날이라 신청서가 없다. 반대로 당직 다음 날 오후에 반차를 쓴 경우에는 신청서가 있어야 한다. 이런 예외를 머릿속에 두고 한 칸씩 대조하다 보면, 단순 확인인데도 신경이 계속 쓰인다.

 

그리고 두 문서 모두 손으로 쓰고 도장을 찍은 뒤 스캔한 것이다. 화면으로 보면 글씨가 보이지만 컴퓨터에는 글자 정보가 없다. 앞선 글에서 다룬 벽과 같다. 화면에 보이는 것과 컴퓨터가 읽을 수 있는 것은 다르다. 게다가 이번에는 인쇄된 글자가 아니라 사람이 손으로 적은 표기라, 읽어내기가 한층 까다롭다.

 

어긋남이 왜 문제가 되는지는 지나고 나서야 크게 느낀다. 출근 기록은 그 자체로 끝나는 문서가 아니라, 나중에 근태와 정산으로 이어지는 근거가 된다. 오전반차로 적혀야 할 날이 종일 근무로 남아 있거나, 신청서 없이 휴가로 처리된 날이 섞이면, 몇 달 뒤 다른 자료와 맞춰볼 때 숫자가 어긋난다. 그때는 이미 원본을 다시 꺼내 한 장씩 확인해야 하고, 사람들의 기억도 흐릿해진 뒤다. 매달 마감 때 30분을 들여 대조하는 이유가 여기에 있었다. 지금의 30분이 나중의 반나절을 막아준다.

 

 

무엇으로, 어떻게 만들었나?

이번에도 설계는 클로드 코드와 대화하며 잡았다. 나는 개발자가 아니라서, 내가 한 일은 문제와 규칙을 설명하는 것이었다. 매달 내가 어떤 순서로 대조하는지, 어떤 날은 건너뛰는지, 어디서 자주 헷갈리는지를 말로 풀어 주면 클로드가 그걸 코드와 절차로 바꿨다. 완성된 도구는 세 단계로 움직인다.

 

먼저 파이썬이 두 스캔 PDF를 페이지마다 고해상도 이미지로 바꾼다. 여기에는 1편 서명 검사 때 익혀 둔 PyMuPDF를 그대로 다시 썼다. 도구를 하나 만들고 나면 그 부품이 다음 도구에 또 쓰인다는 걸 이때 실감했다.

 

다음 단계가 고비였다. 그 이미지를 읽는 일이다. 1편의 서명 검사는 칸이 칠해졌는지만 보면 됐다. 잉크가 묻은 정도를 숫자로 재는 것으로 충분했고, 글자를 읽을 필요가 없었다. 이번에는 다르다. 손으로 쓴 오전반차와 연차를 구분해서 읽어야 한다. 픽셀 계산으로는 안 되는 일이고, 일반 OCR도 흘려 쓴 한글 앞에서는 거의 읽지 못했다. 그래서 이 부분은 코드가 아니라 AI에게 맡겼다. 렌더링한 이미지를 클로드에게 주고, 사람이 표를 훑듯 읽게 했다. 누가, 며칠에, 어떤 종류의 휴가인지를 목록으로 뽑는 것까지가 AI의 몫이다.

 

마지막으로 그 두 목록을 규칙에 따라 맞춘다. 성명, 날짜, 휴가 종류 세 가지가 모두 맞아야 한 건으로 친다. 출장과 교육과 당직을 건너뛰는 예외도 이 단계에 넣었다. 결과는 색으로 구분된 HTML 보고서 한 장으로 남는다. 정상은 초록, 애매한 건 노랑, 어긋난 건 빨강이다.

 

실행 방식은 1편과 같은 원칙을 지켰다. 명령어를 몰라도 되도록, 두 PDF 파일을 배치 파일 아이콘 위에 끌어다 놓으면 분류부터 이미지 변환까지 이어서 돌아가게 했다. 매달 쓰는 도구는 시작이 쉬워야 다음 달에도 손이 간다.

 

스캔 문서가 목록이 되기까지: 출근 기록 표를 AI가 읽어 목록화(일치·제외·애매 표시)하고 규칙을 코드화한 뒤, PDF 두 개를 아이콘에 끌어다 놓아 실행하는 다이어그램
스캔 문서가 목록이 되기까지: 파이썬 이미지 변환, AI 판독, 규칙 대조, 끌어다 놓는 실행(가명·예시로 재구성) <출처: 작가, 클로드로 생성>

 

 

사람이 하던 방식을 그대로 옮기기

도구가 두 문서를 읽고 나면, 대조는 오히려 단순해진다. 출근 기록 쪽 목록과 신청서 쪽 목록을 양방향으로 맞춰본다. 출근 기록에는 반차라고 돼 있는데 신청서가 없으면 표시하고, 반대로 신청서는 있는데 출근 기록에 표기가 빠졌으면 그것도 표시한다. 한쪽으로만 맞추면 다른 쪽 누락을 놓치기 때문에 양쪽에서 본다.

 

처음 만든 버전은 당직 날을 전부 어긋난 건으로 올렸다. 당직에는 신청서가 없으니 도구 입장에서는 짝이 없는 게 맞다. 그 화면을 보고서야 나는 내가 머릿속으로만 알고 있던 예외를 도구에게 알려주지 않았다는 걸 알았다. 출장과 교육과 당직은 휴가가 아니라는 것, 다만 당직 다음 날 오후 반차는 대조 대상이라는 것. 이 예외를 규칙으로 넣고 나서야 도구가 올리는 건수가 실제로 봐야 할 것만 남게 줄었다.

 

AI가 글씨를 제대로 읽는지도 처음에는 믿을 수 없었다. 그래서 첫 달에는 도구를 돌리고도 내가 하던 방식대로 눈으로 한 번 더 대조했다. 도구가 읽은 목록과 내가 손으로 확인한 목록을 나란히 놓고, 사람과 날짜와 종류가 하나씩 맞는지 봤다. 몇 군데는 도구가 흐린 칸을 애매하다고 올렸는데, 그건 내가 봐도 애매한 칸이었다. 도구가 나보다 잘 읽는 건 아니었다. 다만 내가 헷갈리는 곳을 도구도 헷갈린다는 것, 그리고 내가 무심코 넘긴 곳을 도구는 넘기지 않는다는 것은 확인했다. 그 정도면 믿고 쓸 수 있다고 봤다. 사람보다 정확하기를 바란 게 아니라, 사람이 놓치는 곳을 대신 잡아주기를 바란 것이었으니까.

 

휴가 대조 결과 화면: 출근기록·휴가신청서 각 25건 중 일치 24건, 확인 필요 1건(홍길동 6/12 오전반차, 신청서 종류 표시 누락)
양방향 대조 결과에서 어긋난 건과 애매한 건만 모아 보여주는 화면(가명·예시로 재구성) <출처: 작가, 클로드로 생성>

 

 

도구에 다 맡기지 않은 이유

여기까지 만들자 도구가 두 목록을 맞춰 결과를 내놨다. 그런데 나는 그 결과를 그대로 믿지 않기로 했다.

 

원본이 손글씨이기 때문이다. 오전반차와 오후반차는 글씨체에 따라 헷갈릴 수 있고, 흐리게 스캔된 칸은 사람이 봐도 애매하다. 도구가 오전을 오후로 잘못 읽으면, 서류상 아무 문제가 없는데도 어긋난 것처럼 보이거나 그 반대가 된다.

 

그래서 도구의 역할을 좁혀 두었다. 도구는 두 문서를 전부 읽어 맞춰보고, 어긋난 것과 애매한 것만 한 화면에 모아 올린다. 있다 없다의 최종 판단은 사람이 그 화면을 보고 한다. 스물다섯 건이 넘는 걸 전부 대조하는 대신, 도구가 올린 몇 건만 사람이 확인하면 된다. 이게 30분을 1분으로 줄인 진짜 이유다. 시간이 준 건 대조를 안 해서가 아니라, 사람이 볼 곳이 몇 곳으로 좁아졌기 때문이다.

 

실제로 도구가 애매하다고 올린 칸을 열어보면, 종류를 적은 글씨가 반쯤 지워졌거나 칸 밖으로 삐져나간 경우가 많았다. 어떤 칸은 오전이라고 썼다가 오후로 고쳐 쓴 흔적이 겹쳐 있었다. 이런 칸을 도구가 알아서 결론 내게 두면 위험하다. 그래서 도구는 억지로 판정하지 않고 애매하다고 표시해 사람에게 넘긴다. 나는 원본을 확대해 다시 보고, 그래도 모르겠으면 그날 그 사람에게 직접 물어본다. 판단을 사람에게 남긴다는 건 이런 장면을 말한다. 도구가 스물네 건을 맞게 읽어도, 애매한 한 건을 사람이 보지 않으면 결국 그 한 건이 나중에 문제가 되기 때문이다.

 

 

실제로 돌려본 결과

한 달 치 실제 문서로 돌려봤다. 그달에는 출근 기록에 표기된 휴가와 신청서가 스물다섯 건 대 스물다섯 건으로 맞았다. 짝이 없는 건은 하나도 없었다. 숫자만 보면 전부 정상이다.

 

그런데 도구가 한 건을 올렸다. 신청서는 제때 제출돼 있는데, 그 신청서의 휴가 종류 칸에 표시가 빠져 있는 경우였다. 출근 기록에는 오전반차라고 적혀 있고 신청서도 있으니, 있다 없다만 세면 그냥 지나간다. 도구는 종류까지 맞춰봤기 때문에, 종류 표시가 비어 있는 그 한 장에서 걸렸다. 아마 급하게 쓰면서 동그라미 하나를 빠뜨렸을 것이다.

 

이런 건 자체는 크지 않다. 다만 근태 기록은 나중에 정산의 근거가 되기 때문에, 작은 표시 하나가 시간이 지나 문제가 되기도 한다. 그때 가서 찾으면 훨씬 번거롭다. 매달 한 번, 어긋난 곳을 미리 잡아두는 것만으로 뒤가 편해진다.

 

그 뒤로는 매달 같은 방식으로 돌린다. 어떤 달은 도구가 한 건도 올리지 않고, 어떤 달은 두세 건을 올린다. 올라온 건을 열어보면 대부분은 이렇게 쓰다가 빠뜨린 사소한 표시이고, 가끔은 신청서를 늦게 낸 경우다. 어느 쪽이든 그 자리에서 바로잡으면 끝난다. 예전에는 이런 걸 찾으려고 스물다섯 장을 넘겼는데, 지금은 도구가 짚어준 자리만 확인한다. 대조라는 일이 없어진 게 아니라, 내가 눈을 둬야 할 곳이 달라졌다.

 

한 가지 덧붙이면, 이 방식은 근태에만 쓰이지 않는다. 매달 같은 두 문서를 서로 맞춰보는 일은 생각보다 많다. 발주 내역과 정산 내역, 계획과 실적, 신청과 승인. 형태만 다를 뿐 구조는 같다. 한쪽에 있는 항목이 다른 쪽에도 있는지, 그리고 종류와 조건까지 맞는지 확인하는 일이다. 나는 휴가 대조로 시작했지만, 이 도구를 만들고 나서 다른 대조도 같은 방식으로 볼 수 있겠다는 생각이 들었다. 실제로 그중 몇 가지는 뒤이어 도구로 만들었다.

 

 

남는 것은 시간보다 근거

시간이 준 것도 좋았지만, 나에게 더 크게 남은 건 따로 있었다. 대조를 끝내고 나면 어떤 건을 봤고 어떤 건이 어긋났는지가 화면에 남는다. 확인했다는 말이 아니라, 어떻게 확인했는지가 함께 남는다.

 

마감 업무는 결국 누군가에게 제대로 봤다는 걸 설명해야 하는 일이다. 예전에는 그 근거가 내 기억뿐이었다. 지금은 매달 같은 형태의 기록으로 남으니, 나중에 물어봐도 그 화면을 다시 열면 된다. 시간을 줄인 것보다 이쪽이 실무에서는 더 든든하다.

 

 

마치며: 없애는 대신 좁히기

이 도구를 만들며 다시 확인한 게 있다. 자동화가 사람을 빼는 일이라고 생각하기 쉬운데, 내 경우는 반대였다. 도구는 사람이 지치는 부분을 대신했다. 스물다섯 건을 한 장씩 넘기며 짝을 찾는 일 말이다. 그리고 판단이라는 마지막 한 걸음은 사람에게 남겼다.

 

나는 개발자가 아니다. 그런데도 매달 쓰는 도구를 하나 더 완성했다. 파이썬이 문서를 이미지로 바꾸고, AI가 손글씨를 읽고, 규칙이 대조하고, 마지막은 사람이 본다. 대단한 기술을 쓴 게 아니라, 내가 매달 하던 일을 단계별로 나눠 각각 잘하는 쪽에 맡긴 것이다. 혹시 매달 반복되는 대조나 확인에 시간을 쓰고 있다면, 그 일을 통째로 없애려 하기보다 사람이 볼 곳을 좁히는 방향으로 한번 생각해보시면 좋겠다. 거기서부터 생각보다 많은 게 바뀐다.


이 글이 마음에 드셨다면, 작가 페이지에서 알림 설정과 좋아요를 부탁드립니다.

 

이 글은 AI의 도움을 받아 작성했습니다.

 

ⓒ요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.