로그(Log)는 통나무를 말한다. 오래전에 배의 속도를 잴 때 밧줄에 나무조각을 매달고 배 뒷편으로 흘렸다. 밧줄에는 일정한 거리마다 매듭(knot, 노트)이 묶여 있어서 단위시간동안 매듭이 몇개나 풀려나갔는지를 보고 속도를 가늠했다. 그래서 배의 속도가 노트가 됐다. 항해일지를 로그북이라 부르는 것도 그때문이다.
이게 발전해서 로그시스템이 됐다. 로그시스템은 컴퓨터시스템에서 일어나는 모든 이벤트를 기록하는 것이다. 로그인, 파일 삭제, 시스템 오류 발생 등 온갖 다양한 사건들을 순서대로 기록한다.
시스템 로그는 시스템의 운영에 필요한 모든 것을 기록한다. 애플리케이션 로그는 특정 프로그램에서 발생하는 이벤트를 기록하고, 보안 로그는 사용자 로그인 실패, 권한 변경과 같은 보안과 관련한 사건들을 기록한다.
로그는 이렇게 생겼다.
// 사용자가 로그인했을 때
logger.info("사용자 '{}'가 로그인에 성공했습니다.", username);
웹사이트에 로그가 깔려 있다고 하자. 어떤 일을 할 수 있을까?
홈페이지의 메뉴중에 어떤 메뉴를 가장 많이 쓰는지를 즉시 알 수 있다. 아주 자주 쓰는 메뉴가 홈페이지의 아랫쪽에 배치돼 있다면 다음번 개편에서 이 메뉴를 위로 끌어올려야 한다. 그래야 사용자가 편리하게 쓸 수 있기 때문이다.
어떤 메뉴를 클릭했는데, 뜨는데 8초가 걸린다면? 즉시 고쳐야 한다. 3초 이상 걸리는 웹사이트의 경우 40%의 사용자가 이탈한다는 통계가 있다. 5초 이상이면? 죽은 사이트로 간주된다.
공공서비스 사이트의 태반에 로그가 깔려 있지 않다는 사실을 알고 있나요?
아주 많은 공공서비스 홈페이지들, 애플리케이션들에 로그가 제대로 깔려 있지 않다. 그러면 어떤 일이 생길까? 메뉴 배치가 맞게 된건지를 확인할 방법이 없다. 어떤 메뉴를 많이 쓰는지 알지 못하기 때문이다.
고장이 나도 알지 못한다. 로딩타임이 얼마나 걸리는지 확인할 방법이 없기 때문이다.
누군가 좌절해서 떠나도 알지 못한다. 일을 마무리하지 못한 채 떠나도 알 방법이 없기 때문이다. 우리가 공공서비스 페이지를 쓸 때마다 우황청심환을 먹어야 하는 이유가 실로 여기에 있다.
인공지능은 데이터를 먹고 자란다. 데이터는 일을 할수록 쌓여야 하고, 기계가 읽을 수 있어야 하고, 통합이 될 수 있어야 한다. 그래야 데이터다.
예를 들어 우리 공무원들은 모두 아주 훌륭한 AI비서를 거느릴 수 있다. 낮에 열심히 작업을 해서 문서를 만들어두고 퇴근을 하면, AI비서가 밤새 쉬지 않고 일을 할 수 있다. 과거에 비슷한 일들은 어떤게 있었나? 관련 문서들을 찾아놓기도 하고, 다른 부서나 부처에서 지금 관련이 있는 일들을 추진하고 있는건 없나? 찾아서 '이 둘은 시너지가 날 것 같아요' 제안을 해줄 수도 있다. 회의록을 올려두면 하기로 한 일, 책임자, 중간 보고일, 관련 문서들을 두루 정리해서 캘린더에 해당 링크와 함께 표기를 해줄 수도 있다. 일정을 보면 관련문서들이 링크로 잡혀 있어서 한눈에 볼 수 있다.
일을 하면 저절로 데이터가 쌓여야 한다
그러자면! 데이터가 있어야 하고, 모든 일을 클라우드 기반으로 해야 한다. 무엇보다 일을 할수록 저절로 데이터가 쌓여야 한다.
AI전환을 한다는 것은 그저 AI를 도입하기만 해서 되는 일이 아니다. 소프트웨어를 이해할 수 있어야 하고, 왜 클라우드를 써야 하는지를 이해해야 하고, 무엇보다 더 스마트하게 일할 준비가 돼있어야 한다. 로그가 없는 웹페이지를 일만년을 운영을 한들, 그 서비스는 조금도 좋아지지 않는다.