버퍼를 오토메이션으로 대신한 사례

블로그 요약 회고에 설명한 적이 있는데 트위터를 통해 평일에는 매일 아무 글이라도 글 하나 씩 트위터에 공유하는 실험을 하고 있습니다. 2022년 7월부터 시작해 이 글을 작성하는 시점으로부터 약 반년 전입니다. 글은 주말에 시간을 내 한번에 몰아서 작성하고 하루에 하나 씩 트위터에 공유할 때는 버퍼라는 서비스를 사용했습니다. 버퍼는 비슷한 역할을 하는 다른 서비스에 비해 인터페이스도 좀 불편하고 통계 기능도 썩 훌륭하지 않지만 가격이 싸고 기본 기능에는 충실합니다. 당연히 가격이 제일 싸기 때문에 이용해 왔습니다.

처음에는 트위터 외에 다른 곳에도 글을 공유하면 재미있지 않을까 싶었지만 페이스북은 인생에 위업을 성취한 분들의 세상을 달관한 글로 가득했고 링크드인은 CEO나 최소 코퍼운더이거나, 마케팅이나 리크루팅을 하는 사람이 아니면 글을 쓸 수 없는 곳처럼 보였을 뿐 아니라 인스타그램이나 틱톡 같은 곳은 글을 올리는 곳이 아니었습니다. 결국 트위터에만 글을 공유하게 되었습니다.

시간이 지나며 일론이 트위터를 불안하게 만들었고 마스토돈([email protected])을 시작했습니다. 마스토돈은 트위터와 비슷한 느낌이어서 글을 공유할 수 있겠다는 생각이 들었습니다. 하지만 버퍼는 트위터를 지원하지 않았습니다. 그동안 버퍼가 채널을 업데이트 해 온 간격을 생각해보니 여간해선 마스토돈을 추가하지 않을 것 같다는 생각을 했습니다. 또 버퍼는 나름 캠페인이나 통계 기능을 지원하기는 하지만 이는 이미 트위터에서 제공하는 값을 표로 만들어 보여주는 것일 뿐이고 또 캠페인 기능은 채널 수가 적은 상태에서는 별 도움이 되지 않았습니다. 그렇잖아도 아이폰 숏컷 앱으로 자동화를 옮겨오면서 버퍼도 대신할 수 있지 않을까 싶어 버퍼 사용을 중단하고 오토메이션을 만들기로 합니다.

버퍼에 글 공개할 일정을 예약한 상태. (지난 15일에는 인증서가 오동작해 다운타임이 생겨 글을 공유하지 않음.)
같은 일정을 구글캘린더에 입력한 상태. (26일 일정을 보면 글이 올라간 일정이 보임.)

버퍼는 글을 미리 원하는 날짜와 시각에 등록해 놓으면 이 시점에 지정한 채널을 통해 공유됩니다. 글에 그림을 첨부하거나 첨부할 그림을 웹에서 직접 만들 수도 있고 트위터가 제공하는 로그를 통해 얼마나 클릭 됐는지, 얼마나 노출 됐는지 편하게 확인할 수 있습니다. 몇 달 동안 실험해보니 애초에 글을 읽으려고 링크를 클릭하는 사람들은 그림의 유무에 별로 반응하지 않았습니다. 그림 붙이는 기능은 제 입장에서는 의미가 적었습니다. 통계 역시 결국 웹사이트에 유입된 통계를 보면 되니 굳이 버퍼에서 제공하는 통계를 참고할 필요 역시 적었습니다. 남는 것은 글 공유 일정을 미리 정해 놓고 이 일정에 따라 공유되며 일정을 바꾸기 편한 것 뿐이었고 이건 아이폰 오토메이션으로 대신할 수 있을 것 같아 보입니다.

트위터와 마스토돈에 같은 글을 올릴 예정 입니다. 그래서 먼저 각 채널에 글을 올렸는지 확인할 변수 초기화합니다. '블로그 글 공유'라는 이름으로 구글 캘린더에 캘린더를 만들고 기존 버퍼에 글을 등록하던 것과 같은 요령으로 글을 일정으로 만들어 놓았습니다. 캘린더를 검색해 오늘 공유할 글이 있는지 찾아봅니다. 올릴 글은 지정된 캘린더에 오늘 시작하고 종료되는 종일 일정입니다. 글은 하루에 하나만 공유할 작정입니다. 그래서 종일 일정 하나만 찾습니다. 오늘 올릴 글이 없을 수도 있습니다. 특히 주말에는 글을 공유하지 않기 때문에 글이 없습니다. 애초에 이 숏컷 자체가 주중에만 불릴 예정이지만 만약을 대비해 글이 없는 날 불릴 경우를 처리합니다. 오늘 올릴 글 일정을 찾으면 일정으로부터 제목, 주소, 내용을 가져옵니다. 제목, 글, 내용에 따라 트위터와 마스토돈에 작성할 텍스트를 만듭니다. 내용이 있으면 콜론을 찍고 내용을 포함하고 내용이 없으면 주소와 제목만 나열합니다. 보통 주소와 제목만으로 공유합니다. 이미 글을 올렸을 수도 있습니다. 이 숏컷은 주중에 하루 한 번만 불릴 예정 이지만 같은 글이 여러 번 올라갈 것을 대비해 중복 여부를 확인합니다. 글을 올릴 때 캘린더에 글을 올린 시점에 일정을 생성 했습니다. 이 일정이 있는지 확인합니다. 마스토돈도 쪽같이 오늘 마스토돈에 글을 올린 일정이 있는지 확인합니다. 트위터에 글을 올립니다. 글을 올리는데 성공하면 이 정보로 일정을 만들어 같은 글을 중복으로 올리지 않도록 합니다. 마스토돈도 같은 과정을 반복합니다. 트위터와 과정이 동일하기 때문에 반복으로 처리하면 좋겠는데 숏컷 앱에서 그래프를 편집할 때 Repeat과 If를 중첩하면 종종 End Repeat과 End If가 서로 뒤집히는데 이 상태가 되면 실행은 가능하지만 종종 숏컷 앱이 크래시되고 저 뒤집힌 상태를 숏컷을 처음부터 만들지 않고서는 복구할 수가 없었습니다. 그래서 반복으로 처리하면 좋겠지만 그러는 대신 트위터와 마스토돈에 걸쳐 글을 올리는 부분의 동작을 중복된 그래프로 실행합니다.

이걸로 트위터와 마스토돈에 글을 올리는 버퍼의 기능을 대신했습니다. 호기롭게 버퍼 결제를 중단했는데 과연 뒤 돌아볼 일이 없을지는 좀 걱정스럽긴 합니다. 일단 내 폰에서 직접 구동 되니 오동작 할 때 바로바로 대응할 수 있는 점이 좋았습니다. 특히 문제가 생기면 출퇴근 지하철에서 손가락으로 코드를 수정할 수 있었고 나쁘지 않았습니다.

버퍼는 캘린더 인터페이스가 좀 멍청해서 사용하며 열 받을 때가 있었는데 구글 캘린더는 이런 점으로부터는 완전히 자유롭습니다. 단 이런 용도로 사용하라고 만든 것은 아니어서 글 제목은 일정 이름에, 글 주소는 ‘위치’에 넣어야 하는 점은 약간 마음에 안 듭니다. 미래에는 어설프게 ‘위치’ 필드를 사용하는 대신 ‘내용’에 글 제목, 주소, 내용을 약속한 방법으로 밀어 넣고 이걸 파싱 해서 사용하면 좋을 것 같습니다.