이번 편은 메일이다. 교직원 포털의 그룹웨어는 대학 생활의 온갖 것이 지나가는 길인데, 회의 안내와 행정 공지가 오고, 동료의 메일이 오고, 학생의 질문이 온다. 이 흐름을 브레인에 넣어 두면, 브레인이 내가 하는 일의 적지 않은 부분을 저절로 알게 되는데, 그게 이 자동화를 시작한 이유였다. 메일 하나가 곧 업무 기록 하나라, 긁어 두면 기록이 되고 놓치면 흔적도 없다. 회의록은 지나간 일을 남기는데, 메일은 지금 일어나는 일을 남긴다. 그런데 막상 만들어 보니 메일을 긁어오는 일 자체는 어렵지 않았다. 어려웠던 것은 쌓인 메일을 어떻게 나누느냐였고, 그 나눔이 이 편의 전부다. 수집은 도구의 일이고, 나눔은 사람의 일이다. 어떤 기준으로 나뉘었는지, 하나씩 보자.

포털을 열고, 편지함을 걷는다
그룹웨어는 포털에 로그인해야 열리는데, 대학 포털은 교직원 계정으로 들어간다. 로그인 요청에는 계정의 종류를 가르는 값이 하나 실리는데, 교직원은 id_type=P 를 쓴다. 이 계정으로 받은편지함이 열리면, 그 화면을 걷어내는 것이 수집의 전부였다. 스크랩은 그렇게 단순한 일이었다. 받은편지함은 화면을 걷는 방식으로만 가져올 수 있었고, 긁는 쪽은 페이지를 넘기며 그 화면을 따라 지나간다. 그달 초의 기록에는 이 수집기가 두 번째 버전으로 다시 쓰였다는 줄이 남아 있다.
메일 하나가 문서 하나가 되어, 제목과 본문과 받은 날짜가 함께 그룹웨어 폴더에 남는다. 볼트는 옵시디언 볼트라, 메일 문서도 다른 위키 문서와 같은 방식으로 쌓이고 검색된다. 메일은 그렇게, 따로 챙기지 않아도 브레인에 들어온다.
메일 목록을 페이지 단위로 넘겨 스크랩해서, 옵시디언 볼트 안의 그룹웨어 폴더에 문서로 떨어뜨리는 작업은 하루 세 번 깨어나는데, 오전 여덟 시 반과 오후 한 시 반, 저녁 여섯 시 반이 그 시각이고, 오후에 온 메일은 저녁 회차가 건지고, 밤사이 온 것은 아침 회차가 치우는 리듬이었다. 메일이 도착하는 시간대에 맞춘 듯한 시각들이었는데, 왜 그 시각들인지는 기록에 남기지 않았다. 브레인에 들어오는 자료는 한 번에 큰 덩어리인 경우가 많았는데, 메일은 하루에 몇 번씩 조금씩 자라는 처음 보는 모양이었다. 수집의 모드는 둘로 나뉘는데, 처음에는 받은편지함의 전 페이지를 훑는 백필 모드로 돌리고, 그다음부터는 새로 온 메일만 보는 증분 모드로 돌아간다. 과거의 메일은 첫 회차가 한꺼번에 긁어들인다. 그 뒤로는 매일 조금씩만 걷는다. 긁는 곳은 받은편지함 하나였고, 보낸 메일은 내가 이미 아는 내용이라 브레인에 넣을 이유가 없었다.

본문이 두 줄이고 서류가 전부인 메일도 있었는데, 첨부가 곧 내용인 것들이었다. 첨부는 메일마다 폴더를 하나씩 만들어 그 안에 내려받았는데, 나중에 원문이 필요하면 그대로 꺼내 쓸 수 있게 두는 것이다. 폴더 이름에는 메일 번호가 붙어, 원문을 찾을 때 기준이 되었다. 브레인은 원문을 태우지 않는 편이고, 원문과 정리본을 함께 두어야 나중에 되짚어 갈 수 있다고 생각한다. 본문만 떠 가고 원문이 사라지면, 그 메일은 기록으로서 반쪽이 된다. 첨부 폴더는 동기화에서 빼 두었다. 무거운 폴더는 오가지 않는다.
받는이를 본다
긁어오기 다음으로 가장 쓸모있는 일이 시작된다. 메일마다 받는이와 참조인을 추출해서, 그 목록에 내 이름이 어떻게 실려 있는지를 보는 것이다. 받는이 목록은 곧 메일의 성격을 말해 주는데, 내 이름이 받는이 자리에 따로 적혀 있으면 그 메일은 나에게 온 것이고, 이름 대신 그룹 별칭이 적혀 있으면 단체에 온 것이라, 목록 하나만 봐도 성격이 갈라지는, 그런 단순한 규칙이었다. 그래서 분류는 스크랩과 함께 끝났다. 매칭에 쓸 내 이름은 등록해 두었고, 단체 메일의 별칭은 달러 기호로 시작하는 그룹 이름이라 개인 이름과 겹칠 일이 없어 구분이 더 쉬웠는데, 부서 공지나 메일링 리스트가 그런 형태라 이름 매칭을 걸면 개인 메일과 단체 메일이 깔끔하게 갈라졌다.
메일의 성격을 묻는 일을 본문이 아니라 받는이에게 시켰는데, 받는이는 메일을 보낸 쪽이 이미 정해 준 것이다. 알림은 이 분류를 따라가는데, 개인 메일에는 텔레그램으로 즉시 알림이 가고, 단체 메일은 볼트에 조용히 쌓인다. 단체 메일까지 알림을 보내면 어떻게 되는지, 나는 잘 알고 있다. 알림이 열 개 스무 개 쌓이면 결국 알림 자체를 안 보게 되고, 중요한 것이 섞여 있어도 그것까지 함께 놓치게 되는 것은, 알림을 많이 받아 본 사람이라면 누구나 겪어 봤을 일이다. 알림이 많아지는 쪽으로 설계하면 안 된다는 것, 그것이 그때 얻은 교훈이었다. 예전에는 알림을 많이 붙이는 쪽이 열심인 쪽 같아 보였는데, 알림이 늘수록 그것들을 확인하는 일이 하루의 일이 되어서, 결국 아무것도 확인하지 않게 된다. 그래서 알림은 가장 좁은 문으로만 통과시키기로 했다. 알림의 문은 하나만 두었다. 나에게 온 메일만, 그것도 도착한 그 순간에만. 나머지는 조용하다. 알림은 그 하나로 충분했다.
받는이·참조인 → 이름 매칭 → 개인 메일 → 텔레그램 즉시 알림
→ 단체 메일 → 볼트에만 쌓인다
알림은 이 분류가 밖으로 내보내는 끝자락일 뿐이고, 나뉜 메일은 어느 쪽이든 브레인에 남는다. 개인 메일과 단체 메일의 차이는 알림이 오느냐 마느냐뿐, 둘 다 볼트에 들어와 검색된다. 볼트는 개인과 단체를 가리지 않아서, 알림이 없어도 메일은 브레인에 남는다. 알림이 좁아진 것과 브레인이 넓어진 것은, 같은 결정의 양면이었다.
첨부를 텍스트로
본문은 그 자체가 텍스트라 문제가 없는데, 첨부가 문제였다. 첨부의 종류는 두 갈래인데, 문서 파일은 텍스트 추출기가 그대로 읽어 내고, 스캔은 글자가 그림으로 저장된 것이라 읽어 낼 텍스트가 애초에 없다. 스캔은 그 자체가 그림이다. 문서 형식도 제각각이라, PDF 는 pdftotext 를, 워드와 프레젠테이션, 엑셀은 압축을 풀어 안에 든 XML 을 읽는 방식이었다. 한글 문서는 전용 추출기가 읽는다. 이 도구들은 모두 글자가 텍스트로 저장되어 있음을 전제로 하는데, 스캔처럼 글자가 그림으로 찍힌 것은 손을 쓸 수 없다.
그림에서 글자를 뽑아내는 OCR 을 돌려야 하는데, tesseract 에 한국어와 영어 글자판을 얹어 두고, 스캔 PDF 는 페이지마다 이미지로 바꾼 뒤 글자를 뽑아냈다. 페이지를 이미지로 바꾸는 일은 pdftoppm 이 맡고, 그 이미지에서 tesseract 가 글자를 뽑는 식이다. 사진으로 찍힌 서류도 같은 길을 지나가는데, 이렇게 뽑힌 텍스트는 본문처럼 검색되고, 브레인에 들어와 다른 자료와 이어진다. 텍스트로 뽑힌 첨부는 메일 본문과 함께 한 문서가 되는데, 나중에 같은 주제로 찾으면 본문과 첨부가 함께 걸려 나온다. 뽑힌 글자가 완벽하지는 않아도, 검색에 걸린다는 것 자체가 값어치가 있었다.

쌓이는 것을 나누는 일
이렇게 모은 메일은 계속 쌓인다. 하루 세 번, 일주일에 스무 번이 넘는 회차가 돌면 그룹웨어 폴더는 금방 부풀어 오르는데, 쌓인 메일에도 분류가 적용됐다. 단체 메일은 메일을 받은 날짜가 서른 날을 넘기면 아카이브 폴더로 옮겨지고, 개인 메일과 최근 메일은 그 자리에 남는데, 첫 실행에서 옮겨진 단체 메일만 160건이어서 폴더의 메일이 789건에서 629건으로 줄었고, 다시 찾을 일이 거의 없는 오래된 공지가 그 대부분이었다. 옮겨진 메일은 자리만 바꿀 뿐 사라지지 않는다. 쌓이는 곳이 나뉘면 찾는 곳도 나뉜다.
돌아보면 이 자동화에서 스크립트가 한 일은 긁어오는 것보다 나누는 것이 더 많았다. 긁어오는 것은 누구나 짤 수 있는데, 쌓인 것을 어떻게 나눌지는 그 데이터를 매일 보는 사람만 정할 수 있고, 분류가 없으면 브레인은 그냥 창고다. 창고는 쌓일수록 들어가기 싫어지는 법이고, 들어가지 않는 브레인은 아무것도 아니다. 쌓는 일은 스크립트가 하고, 꺼내는 일은 분류가 정한다. 수집은 한 번 짜면 그대로지만, 분류는 데이터를 보며 다듬어지는 일이라 자동화의 숙제는 항상 분류 쪽에 남는다. 알림을 좁힌 것도, 오래된 단체 메일을 치운 것도 같은 생각에서 나왔다. 무엇을 보여줄지 고르는 일, 그것이 자동화가 하는 일의 대부분이라고 생각한다.
그렇게 메일은 조용히 들어왔다. 그 뒤로 나는, 포털에 로그인해 메일을 일일이 훑던 일을 그만두었는데, 그 일이 알림 하나로 줄어든 셈이었다. 브레인이 그 일을 받아 갔으니까. 메일 다음으로 브레인에 들어온 것은 논문이었는데, 논문은 매주 월요일 아침에 모여 한국어 요약으로 만들어져 텔레그램으로 보내지고, 그 이야기는 다음 편에서.
'공부 > 인공지능' 카테고리의 다른 글
| 전사가 깨진 이유. (0) | 2026.08.05 |
|---|---|
| 소리가 줄어드는 녹음. (0) | 2026.08.05 |
| 끊기지 않는 유입. (0) | 2026.08.03 |
| 위키가 영어로 쓰여 있었다 — 4,382개 중 482개 (1) | 2026.08.02 |
| 20k 문서를 실제로 읽어들이기 — 로더 지옥 (0) | 2026.08.02 |