작성자: CheckMate 운영자 · 업데이트: 2026-04-12
팔로워 수에 비해 좋아요가 유난히 적을 때, 그 간극의 원인 중 하나로 흔히 지목되는 것이 유령과 봇 팔로워입니다. 이 글에서는 두 집단을 정의하고, 인스타그램 공식 내보내기 ZIP 안에 있는 JSON만 가지고 의심 후보를 직접 어떻게 뽑아내는지, 그리고 정리하는 과정에서 쉐도우밴을 피하려면 어떤 속도를 지켜야 하는지까지 한 번에 정리합니다.
"프로필 사진 없음" 같은 단일 시그널만으로 판단하면 프로필 사진을 설정하지 않은 정상 계정까지 봇으로 오인하기 쉽습니다. 그래서 이 글의 핵심은 단일 시그널이 아니라 시그널의 조합입니다. 10개 중 3개 이상이 겹칠 때만 "후보 리스트"에 넣는 것을 권합니다.
둘을 섞어서 부르는 경우가 많은데, 겉으로 드러나는 특징은 꽤 다릅니다. 아래 표는 커뮤니티와 공개 자료에서 흔히 거론되는 인상적 차이를 정리한 것으로, 측정된 통계가 아니라 “대체로 이런 경향이 있다”는 수준의 요약입니다.
| 구분 | 유령 팔로워 (Ghost) | 봇 팔로워 (Bot) |
|---|---|---|
| 정체 | 실제 사람이 만든 휴면 계정 | 스크립트·자동화 툴이 운영하는 비인간 계정 |
| 프로필 완성도 | 사진·게시물 일부 존재, 최근 활동만 없음 | 사진 없음·게시물 0·바이오 빈칸이 잦음 |
| 팔로잉 패턴 | 팔로잉과 팔로워 수가 비슷한 범위에 있는 편 | 팔로잉만 비정상적으로 많고 팔로워는 거의 없는 편 |
| 내 게시물 반응 | 거의 없음 (휴면이라 앱에 안 들어옴) | 없음 또는 정체 불명 이모지 1개 댓글 |
| 처방 | 굳이 언팔 안 해도 됨, 인사이트 왜곡만 감안 | Remove Follower 또는 차단 |
이 표에 대한 주의 — 위 항목들은 인스타그램이나 Meta가 공개한 공식 판별 기준이 아니고, CheckMate가 사용자 데이터를 모아 측정한 결과도 아닙니다 (CheckMate는 브라우저 안에서만 동작하며 어떤 데이터도 서버에 저장하지 않아, 애초에 이런 집계를 만들 수 없습니다). 공개된 논의에서 반복적으로 언급되는 경험칙을 정리한 것일 뿐이므로, 특정 수치나 비율을 “이 선을 넘으면 봇” 같은 판정 기준으로 쓰지 마세요. 실제 판단은 항상 프로필을 직접 열어 확인한 뒤에 하는 것이 안전합니다.
운영 관점에서 더 위험한 쪽은 봇입니다. 봇은 DM 스팸, 피싱 링크 배포, 내 릴스 조회수 부풀리기를 통한 알고리즘 왜곡 등 2차 피해를 일으킵니다. 유령은 방치해도 큰 문제가 없고, 정리 1순위는 항상 봇이 되어야 합니다. Meta 역시 자동화된 가짜 계정과 진정성 없는 행위를 커뮤니티 정책상 문제로 다루고 있으니, 정확한 범위와 최신 문구는 Meta 투명성 센터 원문에서 직접 확인하시는 편이 정확합니다.
아래 10개 시그널은 공개된 봇·유령 계정 판별 기준과 커뮤니티에서 널리 공유되는 관찰을 참고해 체크리스트로 정리한 것입니다. 각 시그널 옆 괄호에 가중치를 적었습니다. 이 가중치는 측정된 값이 아니라 시그널의 상대적 신뢰도를 표현하기 위한 임의의 기준이며, 합산 3개 이상(대략 5점 이상)이 겹칠 때만 "후보"로 두는 정도로만 참고하세요.
단독으로는 오탐이 많지만 다른 시그널과 합쳐지면 가장 강력한 1차 필터가 됩니다. 내보내기 파일에는 프로필 사진 URL이 없으므로 "후보 리스트"를 뽑아 수동 확인해야 합니다.
ROM(Read-Only Member)도 있지만, “게시물은 하나도 없는데 팔로잉만 유난히 많은” 조합은 봇이나 광고성 계정에서 자주 거론되는 패턴입니다. 이 시그널은 단독으로 판단 근거로 쓰지 말고, 다른 시그널과 교차 검증하세요.
팔로잉은 수천 명인데 팔로워는 수십 명 수준인 극단적 불균형은 “무차별 맞팔 봇”에서 자주 이야기되는 모습입니다. 정상 사용자도 팔로잉이 많을 수 있으므로 특정 배수를 경계선으로 삼지 말고, 한눈에 봐도 어색할 만큼 치우쳐 있을 때만 후보로 두세요.
jenny_k47192, user.8821.xxz, a_smith_2093처럼 “영문 이름 + 언더바 + 4자리 이상 난수” 조합은 자동 생성된 봇 계정에서 자주 관찰되는 특징입니다. 정규식으로 /[a-z]+[._]\d{4,}$/를 돌려보면 후보를 한 번에 추릴 수 있습니다(단, 실제 사람이 쓰는 닉네임과 겹칠 수 있으니 수동 확인은 필요).
“DM me for collab”, “Click link in bio” 같은 영문 템플릿 바이오는 거의 봇·스팸 패턴이며, 한국 계정을 무차별 팔로우하는 특징을 보입니다. 이모지 섞인 영문 CTA가 1~2줄짜리 바이오에 집약되어 있으면 경계하세요.
유령 팔로워의 전형입니다. 내보내기 ZIP의 followers_1.json에서string_list_data[0].timestamp을 기준으로 계산합니다.
followers_1.json을 열어 timestamp를 정렬했을 때 "2025-09-14 03:11:04, 03:11:05, 03:11:07..."처럼 새벽 시간대에 10건 이상이 연속해서 등록됐다면, 자동화 툴로 일괄 팔로우된 계정 묶음일 확률이 높습니다.
전체 데이터 다운로드에서 좋아요·스토리 항목까지 함께 받았다면 likes/liked_posts.json, story_interactions 폴더를 역조회했을 때 내려받은 기간 동안 내 게시물·스토리에 한 번도 등장하지 않은 팔로워는 유령/봇 후보에 넣을 수 있습니다.
가짜 계정은 만들어진 지 얼마 안 돼 팔로워가 모일 틈이 없습니다. 단, 친구의 새 부계정이 여기 걸릴 수 있으니 가중치 1점으로 낮게 잡습니다.
maria_82, maria_83, maria_84처럼 같은 앞부분을 공유하는 계정이 3개 이상 동시에 나를 팔로우하면, 한 운영자가 만든 봇 클러스터일 가능성을 의심해볼 만합니다 (다만 흔한 이름은 우연히 겹칠 수 있으니 다른 시그널과 함께 보세요). 내보내기 파일에서 username 앞 6글자를 key로 묶어 보면 드러납니다.
인스타그램 공식 다운로드로 받은 ZIP을 CheckMate에 업로드하면 맞팔·언팔로워 목록을 확인할 수 있습니다 (파일은 브라우저 안에서만 읽히고 서버로 전송되지 않으며, CheckMate가 계정에 어떤 조작도 하지 않습니다). 아래 3단계는 그와 별개로, 같은 ZIP 파일을 열어 직접 의심 후보를 추려내는 수동 절차입니다.
ZIP을 풀면 connections/followers_and_following/followers_1.json이 나옵니다. 이 파일의 각 엔트리에는 string_list_data[0].value(username)가 들어있는데, 브라우저 콘솔에서도 다음 한 줄로 거를 수 있습니다.
const rx = /[a-z]+[._]\d{4,}$/;
const suspects = followers.filter(f => rx.test(f.string_list_data[0].value));모든 팔로워의 timestamp를 오름차순 정렬한 뒤 인접 2건의 간격이 60초 이하인 구간을 묶어 "봇 유입 시간대"를 찾습니다. 이 구간에 속한 계정은 Signal 7에 해당합니다.
전체 데이터 다운로드에서 댓글·좋아요 항목까지 함께 받았다면 comments/post_comments_1.json과 likes/liked_posts.json을 합쳐 "나와 상호작용한 적 있는 계정"의 집합 A를 만들고, 팔로워 전체 집합 B에서 A를 빼면 "내려받은 기간 동안 내 콘텐츠에 반응 0회" 팔로워가 남습니다. 이 리스트가 Signal 6/8의 후보입니다.
판별은 데이터로 하지만, 행동은 손으로 해야 안전합니다. 이 구간에서 실수하는 사용자가 가장 많고, 결과적으로 "봇 정리하려다 내 계정이 묶이는" 상황이 생깁니다.
Remove Follower 작업 속도에 대한 논의는 (공식 수치가 없다는 전제까지 포함해) 내용 중복을 피하기 위해 안전 언팔 속도 종합 가이드로 통합했습니다. 본 글은 봇·유령 식별 시그널에 집중합니다.
이미 도달률이 떨어졌다면 먼저 Shadowban 24시간 자가진단 체크리스트로 진짜 제재인지 확인 후 복구 절차에 들어가는 것을 권장합니다. 봇·자동화 행동 자체에 대한 Meta 정책은 Instagram 커뮤니티 가이드라인에서 확인할 수 있습니다.
아래 7개 항목을 전부 체크한 뒤에만 Remove Follower 버튼을 누르세요.
팔로우 직후 아직 게시물이 0이고 프로필도 비어있을 수 있습니다. DM 기록이나 스토리 반응이 있으면 절대 정리 대상에 넣지 마세요.
이벤트 응모용으로 팔로우만 하고 활동이 없는 브랜드 계정도 "유령"으로 집계됩니다. 바이오에 공식 링크(기업 도메인·앱스토어 URL)가 있으면 보존하세요.
비공개 계정은 ZIP에 username만 남고 게시물 수·팔로잉 수를 알 수 없습니다. 이 경우 "닉네임 난수 패턴"만 강하지 않다면 판단 보류가 안전합니다.
유령 팔로워는 실제 사람이지만 활동을 멈춘 휴면 계정, 봇은 스크립트·자동화 도구가 운영하는 비인간 계정입니다. 데이터상으로는 둘 다 "내 게시물에 반응하지 않는다"는 공통점이 있지만, 유령은 프로필 흔적이 남아있는 반면 봇은 닉네임 패턴이나 팔로잉 비율이 눈에 띄게 치우친 경향을 보인다는 차이가 있습니다. 다만 이는 공식 판별 기준이 아니라 경험적인 경향입니다.
아닙니다. 실제 사용자 중에도 프로필 사진 미설정자는 꽤 있습니다. 이 시그널은 단독으로 쓰지 말고 "게시물 0 + 팔로잉만 유난히 많음 + 난수 닉네임"처럼 3개 이상 겹칠 때만 봇 후보로 올리세요.
완전 자동화는 불가능합니다. ZIP 안의 JSON은 username·href·timestamp만 담고 있고, 프로필 사진/게시물 수/팔로잉 수는 인스타그램 API 호출이 있어야 확인됩니다. CheckMate가 해주는 일은 업로드한 파일을 브라우저에서 읽어 맞팔·언팔로워 목록을 보여주는 것까지이며(계정에 어떤 행동도 하지 않습니다), 봇 후보 선별은 이 글의 시그널을 참고해 사용자가 직접 판단하는 하이브리드 방식이 가장 안전합니다.
Instagram과 Meta는 언팔로우·팔로워 제거의 수치 한도를 공개한 적이 없고, 커뮤니티에 도는 "하루 몇 명" 같은 숫자는 모두 사용자들의 추정치일 뿐 공식 기준이 아닙니다. 그래서 특정 숫자를 안전선으로 삼기보다, 짧은 시간에 몰아서 처리하지 않고 여러 날에 나눠 천천히 진행하는 편이 낫습니다. 한 번에 많은 계정을 연속 처리하면 자동화로 오인돼 일시적인 기능 제한이 걸릴 수 있습니다. 쉐도우밴 회피에 대한 자세한 내용은 /blog/shadowban-safe-unfollow 글에서 다룹니다.
상황에 따라 다릅니다. 단순히 노이즈를 줄이려면 언팔·팔로워 제거(Remove Follower)로 충분하고, 내 콘텐츠 도용·스팸 DM이 의심되면 차단이 낫습니다. 차단은 Instagram 알고리즘에 "비정상 관계" 신호를 남기지 않아 오히려 안전한 선택일 때도 있습니다.
즉시 체감되는 효과는 크지 않습니다. Instagram 알고리즘은 "팔로워 수" 자체보다 "최근 게시물에 반응한 계정 비율"을 더 중요하게 봅니다. 유령 정리는 단기 도달 회복보다는 "내 인사이트 지표(좋아요·댓글/팔로워 비율)의 정확도 향상"을 위한 작업으로 보는 게 현실적입니다.
인스타그램 공식 ZIP만 업로드하면 맞팔 계정과 나를 팔로우하지 않는 계정을 목록으로 보여 줍니다. CheckMate는 브라우저 안에서 파일을 읽어 목록을 보여줄 뿐, 언팔로우나 팔로워 제거 같은 행동은 하지 않습니다. 위 3단계 봇 필터는 이 목록을 바탕으로 직접 적용하는 수동 절차입니다.
CheckMate 분석 시작하기 →