본문 바로가기
아는 것 나누기

[아는 것 나누기] 인스타그램으로 공짜 외식하는 방법(feat. 파이썬, 자동화, 인공지능)

by Jaime Chung 2023. 7. 27.
반응형

[아는 것 나누기] 인스타그램으로 공짜 외식하는 방법(feat. 파이썬, 자동화, 인공지능)

 

‘파워 블로거지’라는 말은 다들 아실 것이다. 네이버에서 인정해 주는 인기 블로거, 즉 ‘파워 블로거’의 입지가 단단해지자 그 입지를 이용해 특히 카페나 음식점을 운영하는 자영업자들에게 홍보를 대가로 무료 식사를 요구하는 이들이 생겨났고, 이들을 ‘파워 블로거지’라고 부르게 됐다. 요즘은, 네이버든 티스토리든 비교적 글을 길게 쓸 수 있는 플랫폼보다 트위터나 인스타그램, 그리고 최근에 새로 생긴 스레드 등 사진을 동반한 짧은 글 플랫폼이 더 인기인 것 같지만. 그래도 소위 ‘인플루언서’라는 지위를 이용해 무료로 무언가를 얻으려고 하는 사람들은 여전히 많다.

며칠 전, ‘아, 이만큼 했으면 좀 한 끼 얻어먹어도 되겠네’ 싶은 사람의 이야기를 발견했다. 이름하여 크리스 부에티(Chris Buetti). 이제부터 내가 하는 이야기는 크리스 본인이 <미디엄(Medium)>에 기고한 글의 내용을 정리한 것이다. 한번 읽어 보시고 그의 방법을 배워서 공짜로 음식을 얻어먹어 보시라.

 

이미지 출처 Unsplash

 

그는 인스타그램 계정을 운영하는데, 뉴욕의 스카이라인이나 아이코닉한 장소, 우뚝 솟은 높은 건물 사진 등을 올린다. 자신이 찍은 것은 아니고, 인스타그램의 다른 사용자들이 멋진 사진을 올리면 그것을 가져와 출처를 밝히고 자기 인스타그램에 재업로드하는 것이다(누가 자기 사진을 내려 달라고 부탁하면 곧장 내린다고). 그것도 매일, 하루에도 몇 번씩, 이용자들이 많이 접속하는 시간대에 말이다. 이걸 물론 본인이 24시간 여기에 매달려서 하는 것은 아니고 이 일을 봇(bot)을 시켜서 하는데, 파이썬으로 스크립트를 짜서 홍보용 사진인지, 아니면 그냥 정말 개인이 올린 것인지를 구분해서 후자로 여겨지는 것만 가져오게 한다.

예를 들어, ‘프로필에 링크 있음(link in bio)’이나 ‘지금 구입하세요(buy now)’, ‘제한된 시간 내에(limited time)’ 같은 텍스트가 사진에 딸려 있다면, 그것은 일반 사용자의 퀄리티 좋은 포스트가 아니라 광고, 홍보용이라고 판단해 가져오지 않는다. 댓글 달기 기능이 막혀 있다면 이것 역시 사진을 가져오지 않는다. 크리스는 이런 것이 논란의 소지가 있는 포스트라고 판단하기 때문이다. 마지막으로 태그된 사람들이 한 명을 넘는다면 이 포스트가 무엇에 대한 것인지, 누구를 원저작자로 밝혀야 하는지 혼란스러우므로 이것도 이용하지 않는다.

크리스는 이러한 점을 다 고려해서 머신 러닝(machine learning) 모델을 짰다. 엄청나게 많은 양의 메타데이터(데이터에 대한 데이터; 예컨대 사진이라고 한다면 사진이 언제 찍혔는지, 무슨 카메라로 찍혔는지, 사진 파일의 크기는 얼마인지, 확장명은 무엇인지 등등)를 이 머신 러닝 모델에 넣었다. 포스트에 딸린 캡션을 분석하는 데 자연 언어 처리(Natural Language Processing; 간단히 말해 파파고처럼 기계 번역을 할 때 쓰는 기술)까지 시킨다. 그러고 나서 분류 알고리즘(classification algorithm)을 이용해 결과값을 낸다. 값이 0에 가까우면 좋지 않은 사진, 1에 가까울수록 사용할 만한 좋은 사진이다.

그렇게 좋은 사진들을 골라 내어 자동으로 캡션을 달고 출처를 밝혀 인스타그램에 업로드하도록 봇에게 시켰다. 이 계정은 뉴욕시와 관련된 사진 인스타그램이므로, 주인장이 미리 만들어 놓은, 100개가 넘는 해시태그(#NYC, #NY, #NewYorkCity 등) 중 30개를 랜덤으로 골라 해시태그도 달게 만든다. 그리고 업로드. 이 모든 과정을 자동화시켜서 (이때 AWS에서 EC2 인스턴스를 이용한다고 한다) 매일 아침 8시, 오후 2시, 저녁 7시 반에 칼같이 업로드하게 만든다.

포스트하는 것만이 전부가 아니다. 어떤 인스타그램 계정의 인기는 팔로잉과 팔로어 수에 달려 있다. 그래서 크리스는 봇을 시켜 다른 이용자들을 팔로잉하게 만들었다. 여기에도 또 데이터 과학이 개입하는데, 인스타그램의 팔로우 관련 알고리즘은 아주 엄격해서, 너무 많은 수의 이용자를 하루 내에 팔로우하면 계정을 정지한다고 한다. 그래서 테스트를 여러 번 해 본 결과, 하루에 400명을 팔로우하고 언팔로우하는 것이 적당하다고 판단했단다. 인스타그램을 처음 시작할 때 수동으로 자기랑 비슷한 스타일의 계정을 20개 이상 수집해서 살펴봤고, 팔로우하고 언팔로우하고 댓글을 달고 하는 과정에서 메타데이터를 충분히 모았다. 그 데이터를 가지고 누구는 내가 팔로우하면 맞팔로우를 해 주더라, 누구는 안 해 주더라, 이렇게 분석을 했다(위에 링크한 본문을 보면 그가 이런 분석에서 얻은 인사이트도 설명돼 있다). 이제 그 분석 내용에 기반해 이러이러한 프로파일의 사람(예컨대 여성은 남성보다 자신의 인스타그램을 팔로우해 줄 가능성이 높았다)을 팔로우하라고 코드를 짰다. 그래서 봇이 자동으로 4백 명을 팔로우를 하면, 이틀 후 봇은 똑같은 사람들을 언팔로우한다. 왜냐하면 인스타그램 원칙상 한 번에 7천 5백 명 이상을 팔로우할 수 없고, 팔로어 대 팔로잉 비율이 이상적이기를 (즉, 나를 팔로우하는 사람이 내가 팔로우하는 사람보다 많기를) 바라기 때문이다. 그래서 오늘 팔로우한 4백 명을 이틀 후에는 언팔로우하는 것이다.

 

크리스의 글의 요점만 줄여서 정리하는데도 꽤 글이 길어졌다. 이제 거의 다 왔다. 이렇게 한동안 봇을 이용해 인스타그램 계정을 자동으로 운영되게 했더니 2만 3천 명의 팔로어가 생겼다고 한다. 그럼 이제 이걸 이용할 때다. 역시 봇을 이용해 인스타그램에 계정을 운영 중인 맨해튼 내의 레스토랑 정보를 싹 긁어 모아서, ‘나는 이러이러한 큰 인스타그램 계정을 운영하는 사람인데 무료 식사를 제공해 준다면 내 계정에 사진과 정보를 올려서 홍보해 주겠다. 관심 있으면 이 이메일 주소로 답장 바란다’라는 내용의 디엠을 날리게 한다. 그러고 기다리면 이 제안에 응하는 레스토랑 주인들이 답장을 해 온다. 그럼 그 기회를 주워 먹으면 끝이다.

크리스는 한 팟캐스트에서 이에 관해 이야기하기도 했다(여기). 진짜 이건 ‘더 열심히 일할 게 아니라 더 똑똑하게 일하라(work smarter, not harder)’라는 말이 무슨 뜻인지 확 이해하게 만드는 일화라고 할까. 나는 역시 생산성 증대에는 자동화가 답이지, 하며 고개를 주억거리며 읽었는데 솔직히 따라 할 엄두가 나지 않으니 질투조차 나지 않는다. 이 일에 관심이 있으신 분은 위의 저 링크를 통해 본문 글을 읽어 보시는 것을 추천한다. 역시 일은 무작정 열심히, 많이 한다고 되는 게 아니다. 머리를 써서 쉽게 해야지. 그러면 머리를 또 굴려서 공부를 해야 하지만, 일단 배워 두면 다 자기가 써먹을 수 있는 거니까, 오늘의 교훈은 ‘(뭐든) 배우자’라고 할 수 있지 않을까. 나도 지금 공부해서 나중에 날로 먹어야지! 🤓

반응형