일상 루틴 오토메이션...

생각보다 일상에서 반복적으로 하는 일이 매우 많다. 그런데 그것들을 자동화하지 않고 하기 때문에 쓸데없이 많은 시간을 여기에 할애하기도 한다.

그런 의미에서 삶의 일부를 자동화하는 것도 꽤나 의미있는 일이라고 나는 생각한다. 물론 내가 하는 업무에서는 더 말할 게 없고.

그래서 나는 linux(unix)를 매우 좋아한다. 하루 종일 켜 있는 머신이 있다고 하면 자동화를 실행하는 머신으로 충분한데 거기에 linux가 설치되어있으면 더 없이 편리한 거다.

왜? 각종 유틸리티를 언제든 구할 수 있고 perl이며 regex며 다 별 다른 어려움 없이 실행시킬 수 있으니까 말이다.

이를테면 주기적으로 올라오는 게시물을 검색한다거나 어떤 파일들을 검색해서 받아온다거나 하는 일은 재미삼아 할 수 있는 일이긴 하지만 나름 많은 시간을 쓸 경우가 있어서 그냥 자동화해놓고 자동화의 결과만 메일로 보고하게 하면 매우 편하다.

물론 처음 자동화를 한다고 하면 일련의 스크립트들을 마련해야 되니까 시간 소모가 제법되고 하다 보면 빨리 지쳐서 포기하게 될 수도 있지만 잘만 끝내놓으면 몇 년이고 우려먹을 수 있으니까 좋다.

나는 제법 많은 자동화 작업들을 라스베리파이 머신에 걸어두고 있다. 그래서 라스베리파이에 이렇게 저렇게 마련해둔 스크립트가 날아간다면 제법 삶이 불편해질 수 있다. 그렇다고 삶이 올스톱되는 것은 아니고.

특히나 인터넷을 검색해서 갱신된 결과를 확인하는 데 있어서 자동화는 더 없이 편하다. 아예 이걸 체계적으로 만들어서 그날 그날의 다이제스트를 만들어서 보내는 것도 쓸만하다.

마치 그날 그날의 투자 이득을 정리해서 보내주는 서비스들 처럼 말이다.

이런 일을 할 때는 역시 perl이 매우 편하다. perl로만 모든 일을 다 해결할 수는 없고 대개 일반적인 unix(linux) utility와 함께 동작시키는 것이 일반적이다.

왜? perl이 regex를 취급하는 문법이 매우 간단하기 때문이기도 하고 sheel script와 C language와 유사한 문법인데다 알려진 모듈들이 많다. python이나 nodejs를 써야할 때도 있긴 하지만 (또 그 외의 많은 스크립트 언어들) 문자열을 활용해서 동작해야 하는 자동화에 있어서는 perl만한 게 없다.

무슨 말이냐면 perl의 module을 잘 가져다쓰면 원하는 목표를 이룰 수도 있지만, 이것도 생각보다 쉽지 않은 경우가 있고 아니면 perl로 특정 기능을 완전히 구현시켜 해결하는 방법도 있지만, 우리가 아는 것보다 생각보다 많은 linux 기본 유틸들이 매우 충실해서 아주 자잘하고 사소한 기능을 수행하는 유틸들이 매우 많다. 아니 우리가 원하는 기능이 아무리 많다고 해도 linux util들이 커버하는 영역이 훨씬 넓어서 우리는 그 유틸이 어떤 것인지만 알아내면 귀찮게 구현할 필요가 없다.

그런 의미에서 perl과 linux utilities를 이용해서 자동화를 하는 일은 매우 재밌고 유익하다. 정말 잘만 알아두면 피가 되고 살이 되는 것들 투성이다.

반면에 자동화가 쉽지 않은 것들도 있다. 이를테면 어떤 웹사이트에 접속해서 어떤 버튼을 누르고 나오는 결과를 읽어내서 조건에 맞춰 일을 해야 하는 경우가 이런 경우에 속한다. 여기에도 분명히 좋은 솔루션들이 있다 (puppeteer 같은). 그러나 웹 인터페이스가 수시로 업데되고 하는 경우에는 들인 수고 보다 얻는 이득이 얼마 없을 수 있다.

그리 오래지 않은 미래에 우리는 Ai의 도움을 perl을 통해서도 받게 되지 싶다. 당장만 해도 chatgpt api를 이용해서 원하는 일을 할 수 있는데, 외부의 ai engine을 이용하거나 자체 ai engine을 간편한 linux util로 해결하는 때가 머지 않았지 싶다. 이를테면 특정 지역의 소식을 검색해다가 필요한 정보만 추려서 전부 번역해서 보기 편한 형식으로 만드는 일을 자동화한다고 하면 이게 1-2단계로 좁혀질 수 있게 되니까 말이다.