🔍
광고 자리 · 리더보드

SNS 투자 정보, 링크가 진짜라고 내용까지 믿어도 될까

8월 10, 2026
광고 자리 · 본문 상단

SNS 투자 정보 신뢰도 검증을 자동으로 해보겠다고 덤볐다가, 기계가 확실히 말할 수 있는 게 생각보다 좁다는 걸 알았다. 결과부터 말하면 링크는 잡히고 본문은 안 잡힌다.

X(옛 트위터)에서 괜찮아 보이는 글을 보면 텔레그램에 던져놓는다. 그러면 볼트에 노트로 저장된다. 문제는 던지는 양이 많아지면서 생겼다. 하루에 열몇 건씩 쌓이는데 그중 절반쯤이 투자·트레이딩 얘기고, 그 절반은 "봇 돌려서 얼마 벌었다" 류다. 저장은 되는데 나중에 그걸 다시 꺼내 볼 때 이게 그때 내가 믿고 넣은 건지 그냥 지나가다 넣은 건지 구분이 안 됐다. 그래서 저장할 때 자동으로 한 번 훑게 시켜봤다.

📑 목차


1. 하루 열여덟 건이 쌓이는데, 뭘 믿고 보나

수집 자체는 오래전에 붙여놨다. 텔레그램 봇에 링크를 던지면 본문을 가져와 분류해서 노트로 떨어뜨리는 흐름이다. 이 배선 얘기는 예전에 따로 적어뒀으니 궁금하면 텔레그램으로 던지면 노트가 되는 편을 보면 된다.

기록을 뒤져보니 그날 하루에만 열여덟 건이 들어왔다. 제목만 늘어놓으면 대충 이런 것들이다.

  • "My public bot hit $100k PnL today"
  • "Chicago HFT engineer pulled $190,492 in ..."
  • "This trader built a trading bot with Cla..."
  • 헤지펀드(AQR), 예측 시장 트레이더에게 최대 26만 달러 연봉 제시

넷 중 마지막 하나만 언론 기사고 나머지 셋은 개인 계정 글이다. 근데 저장된 노트만 보면 이 넷이 똑같이 생겼다. 제목, 본문, 링크, 분류 폴더. 6개월 뒤에 검색해서 이 노트가 튀어나오면 나는 이걸 자료로 취급하게 된다. 그게 좀 무서웠다.

자료 창고가 커질수록, 창고에 뭘 넣었는지가 아니라 넣은 걸 나중에 어떻게 대할지가 문제가 되더라.

특히 투자 쪽은 성격이 다르다. AI 툴 소개 글은 틀려봤자 시간 몇십 분 날리고 끝인데, 수익 인증 글은 판단에 들러붙는다. 나는 실제로 백테스트를 여러 번 돌려서 기대했던 전략을 접은 적이 있는데, 그때 제일 방해가 됐던 게 "누가 이걸로 벌었다더라" 하는 기억의 잔상이었다. 숫자를 보기 전에 마음이 먼저 기울어 있으면 검증이 검증이 아니게 된다.

그래서 저장 단계에서 딱지라도 붙여두자 싶었다. 나중에 읽을 나를 위해서.

2. 기계가 확실히 말할 수 있는 건 딱 하나였다

처음 생각은 소박했다. 트윗 하나를 넣으면 "믿을 만함 / 아님"을 뱉어주는 것. 근데 설계 단계에서 그게 왜 안 되는지가 먼저 나왔다.

"이 사람이 봇으로 10만 달러를 벌었다"가 사실인지 아닌지를 확인하려면 그 사람의 거래 기록을 봐야 한다. 나한테 그런 건 없다. 스크린샷이 붙어 있어도 그건 이미지지 증거가 아니고. 그러니까 기계는 이 문장의 진위를 원리적으로 못 만진다.

대신 만질 수 있는 게 하나 있었다. 글에 붙은 링크가 실제로 존재하는가.

투자·개발 쪽 SNS 글에서 제일 흔한 형태가 "이거 오픈소스로 풀었다, 깃허브 링크" 다. 그날 수집분에도 오픈소스 트레이딩 시스템을 강추한다는 중국어 트윗이 있었다. 이런 글의 링크는 성질이 다르다. 열어보면 있거나 없거나 둘 중 하나고, 그 판정에는 해석이 안 들어간다. 깃허브는 저장소 정보를 조회하는 공개 API를 열어두고 있어서, 저장소가 없으면 404를 그대로 돌려준다.

그래서 층을 갈랐다. 확정적으로 답이 나오는 층과, 참고 신호밖에 못 만드는 층.

  • 0층: 붙은 링크가 실재하는지 확인한다. 답은 있음/없음/모름.
  • 1층: 본문이 얼마나 과장돼 있는지 언어 모델한테 물어본다. 답은 점수.

이 구분이 이 작업에서 제일 쓸모 있었던 결정이다. 예전에 AI가 알아서 리서치해준다는 말을 안 믿기로 한 편에서도 비슷한 지점에 걸렸는데, 결국 같은 얘기다. 모델한테 판단을 통째로 맡기면 그럴듯한 답이 나오고, 그럴듯한 답은 검증할 방법이 없다.

확정 판정이 가능한 링크 검증과 점수만 나오는 본문 과장 점검을 나눈 두 칸 비교표 ▲ 확정 판정이 가능한 링크 검증과 점수만 나오는 본문 과장 점검을 나눈 두 칸 비교표 (자체 제작 이미지)

3. "없는 링크"를 없다고 말하기가 왜 어렵나

만들어놓고 보니 0층도 그냥 되는 게 아니었다. 링크가 안 열리는 이유가 한두 가지가 아니라서.

깃허브가 잠깐 느려서 응답이 안 올 수도 있고, 우리 집 인터넷이 튄 걸 수도 있고, 저장소가 비공개로 바뀌었을 수도 있다. 이걸 전부 "허위 링크"로 찍으면 멀쩡한 글에 빨간 딱지가 잔뜩 붙는다. 자동 점검이 신뢰를 잃는 건 대개 이 지점이다. 경고가 흔해지면 안 보게 되니까.

그래서 판정 기준을 아주 좁게 잡았다. 404(찾을 수 없음)와 410(영구 삭제됨), 이 둘만 허위로 본다. 그 외에는 전부 "모름"이다. 500번대 서버 오류든 응답 없음이든 판정을 안 한다. 여기에 재시도를 붙여서, 한 번 실패했다고 바로 없는 걸로 치지 않게 했다.

용어 하나만 풀면, 404는 "그 주소에 아무것도 없다"고 서버가 직접 대답한 상태다. 서버가 살아 있고 대답도 했는데 내용이 없다는 뜻이라, 네트워크가 끊긴 것과는 성격이 완전히 다르다.

또 하나. 검사 대상에서 답글을 뺐다. 트윗 본문에 붙은 링크는 글쓴이가 내세운 근거지만, 그 아래 달린 답글의 링크는 남이 던진 것이다. 남이 던진 죽은 링크 때문에 원글에 경고가 붙으면 그건 오판이다.

좁게 잡으면 놓치는 게 생긴다. 근데 넓게 잡아서 틀리는 것보다는 낫다고 봤다.

이 "확실한 것만 말하고 나머지는 모름으로 둔다"는 태도는 웹에서 자료를 긁어올 때도 똑같이 필요했다. 그쪽 얘기는 크롤링 입문 편에 정리해뒀다.

4. 본문 과장은 판정이 아니라 점수까지만

1층은 언어 모델한테 시켰다. 트윗 본문을 주고 "얼마나 부풀려 말하고 있나"를 점수로 매기게 하는 것.

여기서 미리 못 박아둘 게 있다. 이 점수는 사실 여부가 아니다. "이 사람이 정말 벌었나"를 재는 게 아니라 "이 문장이 어떤 식으로 쓰였나"를 재는 거다. 수익 인증 글에서 흔한 화법이 몇 가지 있다. 절대 수치만 크게 내걸고 기간이나 원금은 안 쓰기, 손실 구간은 통째로 생략하기, 재현 조건 없이 결과만 말하기. 모델이 보는 건 그런 표면이다.

실제로 돌려보니 점수 80에 "강한 과장" 판정이 붙는 글이 나왔다. 한 건 처리하는 데 22초쯤 걸렸다.

22초는 짧지 않다. 그래서 조건을 걸었다. 외부 링크가 붙어 있는 글에만 1층을 돌린다. 링크도 없이 혼자 떠드는 글은 애초에 검증할 대상이 없고, 점수를 매겨봤자 나중에 그 노트를 근거로 쓸 일이 없으니까.

모델은 로컬에서 도는 걸 썼다. 이게 항상 이득인 건 아니라서 로컬 모델을 실제로 재본 편에서 따로 따져봤는데, 이 작업처럼 짧은 글 하나에 짧은 답 하나 받는 용도는 로컬이 맞는 자리였다.

한 가지 솔직히 인정하면, 점수를 만든다는 결정 자체가 좀 모순적이다. AI 티 나는 글을 잡는 도구를 만들 때는 퍼센트를 안 만들기로 했었다. 숫자가 붙는 순간 사람들이 그 숫자를 믿어버리니까. 근데 여기선 숫자를 만들었다. 차이는 용도다. 그때 건 남한테 주는 도구였고, 이건 내 창고 안쪽에서 나만 보는 라벨이다. 라벨이 틀려도 내가 안다. 그래도 이 숫자를 남한테 보여주는 순간 같은 문제가 다시 생길 거라는 건 알고 있다.

수집 노트 상단 메타데이터와 하단 신뢰도 점검 섹션에 검증 결과가 기록된 화면 ▲ 수집 노트 상단 메타데이터와 하단 신뢰도 점검 섹션에 검증 결과가 기록된 화면 (자체 제작 이미지)

5. 빨간 딱지는 붙이되 저장은 막지 않기로

설계는 세 번 고쳐 썼다. 내가 결정을 바꿀 때마다 판이 바뀌었기 때문이다. 제일 크게 바뀐 게 이거였다.

처음 안은 허위 링크가 잡히면 저장을 안 하는 거였다. 쓰레기가 창고에 안 들어오는 게 좋아 보였으니까. 근데 며칠 굴려볼 것도 없이 아니라는 생각이 들었다.

첫째, 판정이 틀릴 수 있다. 틀린 판정 때문에 안 들어온 자료는 내가 잃어버렸다는 사실조차 모른다. 조용히 사라지는 게 제일 나쁘다. 둘째, 허위 링크가 붙은 글도 자료다. "이런 식으로 없는 저장소를 링크해서 홍보하는 계정이 있다"는 것 자체가 나중에 볼 만한 기록이니까. 셋째, 이건 필터가 아니라 라벨이어야 한다는 게 애초에 이 작업의 전제였는데 첫 안이 그걸 어기고 있었다.

그래서 최종은 이렇게 정리됐다. 경고는 붙이되 저장은 절대 막지 않는다.

동작은 이렇다. 허위 링크가 잡히면 텔레그램으로 오는 저장 완료 메시지에 빨간 표시가 붙는다. 그 외의 결과, 그러니까 과장 점수나 판정 보류는 노트 안쪽에 들어간다. 노트 맨 위 메타데이터에 한 줄, 본문 아래 별도 섹션에 근거 몇 줄. 읽을 때 눈에 들어오되 검색을 방해하진 않는 자리다.

이렇게 해두니 아침에 오는 요약에도 자연스럽게 흘러든다. 매일 아침 도착하는 브리핑이 어제 수집분을 훑어주는데, 거기 빨간 표시가 하나 섞여 있으면 그 건만 직접 열어보면 된다.

지시할 때는 이 "막지 마라"를 앞에 못 박고 시작했다. 이런 종류의 제약은 나중에 붙이면 이미 짜인 구조를 뜯어야 해서 늦다. 지시문에 뭘 먼저 적어야 하는지는 프롬프트 편에 정리해둔 게 그대로 들어맞았다.

6. 만들다 막힌 데: 모델이 생각을 길게 해서 답이 잘렸다

중간에 한 번 크게 막혔다. 이게 좀 재밌어서 남겨둔다.

처음 설계에서는 모델한테 여섯 가지를 물었다. 과장 점수, 판정 등급, 근거, 어떤 표현이 문제인지, 어떤 정보가 빠졌는지, 한 줄 요약. 답은 정해진 형식으로 받게 했다. 사람이 읽을 문장이 아니라 프로그램이 바로 집어넣을 데이터여야 하니까.

근데 답이 자꾸 중간에 끊겼다. 처음엔 형식 지시를 잘못 쓴 줄 알았는데 아니었다.

요즘 모델은 답하기 전에 혼잣말로 길게 생각한다. 그 생각도 출력 분량을 잡아먹는다. 여섯 개를 다 채우려니 생각이 길어지고, 생각이 길어지니 정작 답이 나올 자리가 모자라서 문장이 뚝 끊긴 것이다. 그러면 형식이 깨지고, 형식이 깨지면 프로그램이 못 읽는다.

해결은 두 가지였다. 답이 시작되는 자리에 표시를 하나 넣어서 생각과 답을 갈랐고, 물어보는 항목을 여섯에서 셋으로 줄였다. 사실 여섯 개 중 셋은 있으면 좋고 없어도 그만인 것들이었다. 잘리는 문제를 해결하려다 처음부터 안 물었어야 할 걸 물었다는 걸 알게 된 셈이다.

필요한 것만 물어보면 답도 짧아진다. 당연한 말인데 만들 때는 다 넣고 싶어진다.

여기 하나 더. 한국어로 물었는데 답에 한자나 가나가 섞여 나오는 경우가 있었다. 여러 언어를 같이 배운 모델이라 그런 건데, 자료를 던지는 계정 중에 중국어·일본어 트윗이 섞여 있으니 더 잘 샜다. 그래서 답에 그런 문자가 섞이면 아예 거부하고 다시 받게 했다. 마지막 실측에서는 누출이 0이었다.

만든 다음엔 테스트를 붙였다. 새로 만든 검증 부분 25개, 트윗 가져오는 부분 3개, 기존 저장 흐름이 안 깨졌는지 보는 회귀 7개. 합쳐서 35개가 통과했다. 마지막 7개가 진짜 중요한 놈들이다. 새 기능 붙이다가 원래 잘 돌던 저장이 죽는 게 제일 흔한 사고니까. 자동화에 점검용 자동화가 왜 따로 필요한지는 이 편에 따로 적어놨다.

요청 항목을 여섯에서 셋으로 줄이고 응답 시작 표시를 넣어 형식 깨짐을 해결한 전후 비교 ▲ 요청 항목을 여섯에서 셋으로 줄이고 응답 시작 표시를 넣어 형식 깨짐을 해결한 전후 비교 (자체 제작 이미지)

7. 정리, 그래서 SNS 투자 글 볼 때 뭘 보나

한 사이클 굴려보고 남은 게 이 정도다.

기계가 확실히 대신해주는 건 링크 확인 하나다. 이건 사람이 매번 클릭해서 확인하기 귀찮은 일이고, 판정에 해석이 안 들어가서 자동화가 딱 맞는 자리다. 오픈소스를 내세우는 글이 유독 많은 바닥이라 효용도 있었다.

본문이 사실인가는 여전히 사람 몫이다. 점수는 나오지만 그건 "이 글이 이런 화법으로 쓰였다"는 표시지 진위 판정이 아니다. 그리고 그 구분을 흐리는 순간, 자동 점검은 검증이 아니라 면죄부가 된다. 점수 낮게 나왔으니 믿어도 되겠네, 하는 순간 안 하느니만 못한 물건이 되는 것이다.

그래서 SNS에서 수익 인증 글을 볼 때 내가 보게 된 건 두 개다. 붙은 링크가 실제로 열리는가. 그리고 결과 옆에 기간과 원금이 같이 적혀 있는가. 뒤엣것이 없으면 앞엣것이 진짜여도 숫자는 아무 의미가 없다. 열 배 벌었다는 말은 원금이 얼마고 얼마 동안인지가 빠지면 문장일 뿐이다.

아직 다 끝난 건 아니다. 이 물건은 내가 실제로 던지는 트윗들로 며칠 굴려봐야 쓸 만한지 알 수 있고, 지금은 그 단계에 있다. 지금까지 확실한 건 링크 판정이고, 점수 쪽은 아직 내가 믿는 만큼만 믿는다.

3줄 요약 - SNS 투자 정보 신뢰도 검증에서 자동화가 확실히 해주는 건 링크가 실재하는지 확인하는 것 하나다. - 본문 과장은 점수까지만 나온다. 사실 판정이 아니라 화법 표시라서, 이걸 판정으로 읽으면 안 하느니 못하다. - 걸리면 경고만 붙이고 저장은 안 막는다. 조용히 사라지는 자료가 제일 위험하니까.

없는 저장소를 링크해놓고 벌었다고 하는 글은 이제 자동으로 빨간 표시가 붙는다. 근데 진짜 있는 저장소를 링크해놓고 벌었다고 하는 글은, 여전히 내가 열어봐야 안다.

이 글은 개인 작업 기록이고, 투자 권유나 특정 계정·서비스에 대한 평가가 아니다. 본문의 동작·수치는 작성 시점(2026년 8월) 기준이고, 외부 서비스의 응답 규격이나 정책은 바뀔 수 있으니 그대로 따라 만들 거라면 원문 문서를 한 번 확인하는 게 좋다. 여기 적은 점수·판정은 사실 검증이 아니라 참고 신호다.

참고한 공식 자료 - 깃허브 저장소 조회 API(존재하지 않으면 404 반환): docs.github.com REST API, Repositories - 404 Not Found 정의: MDN HTTP 404 - 410 Gone 정의: MDN HTTP 410 - HTTP 상태 코드 원문 규격: RFC 9110, HTTP Semantics - 불법 투자자문·유사수신 신고 안내: 금융감독원

광고 자리 · 멀티플렉스

함께 읽으면 좋은 글