주식 분석에 모델 셋을 붙여 서로 검증시켰다
- 공유 링크 만들기
- X
- 이메일
- 기타 앱

손실 중인 보유 종목이 하나 있습니다. 회사에서 받은 주식이 얼마간 있고, 몇 년 전에 제 돈으로 더 산 게 있습니다. 그 종목에 큰 발표가 나온 다음 날이었습니다.
평소 같으면 기사 몇 개 읽고 넘어갔을 텐데 그날은 다른 게 궁금했습니다. 저는 하루 종일 AI로 코드를 짜고 문서를 읽고 로그를 헤집습니다. 그 도구로 공시를 읽으면 어떻게 될까. 회사 하나 분석하는 건 코드베이스 하나 파악하는 것보다 자료가 적으면 적었지 많지는 않을 것 같았습니다.
그래서 한 모델한테 묻는 대신 셋을 붙였습니다. Claude한테 AI를 투자에 쓰는 게 왜 위험한지 목록을 뽑게 하고, 그걸 ChatGPT에 넘겨 반박하게 하고, 다시 Gemini에 넘겨 양쪽을 검증하게 했습니다. 한 모델이 틀리면 다른 모델이 잡겠지 하는 생각이었습니다.
그건 됐습니다. 위험 목록이 나왔고 서로 꽤 세게 고쳤습니다. 일곱 항목 중 다섯 개는 제가 처음 적은 표현이 부정확하다는 지적을 받고 문장이 통째로 바뀌었고, 나머지 둘은 제가 아예 생각 못 한 항목이라 새로 들어갔습니다.
그런데 목록이 다 정리된 뒤에 다시 읽어보니, 제가 처음에 깔고 시작한 전제 하나가 그 목록 안에서 조용히 반대가 돼 있었습니다. AI를 쓰면 충동적으로 사고파는 일이 줄어든다는 전제였습니다. 저는 그걸 결론으로 쓰려고 했는데 오히려 반대라는 지적이 나왔습니다. 그리고 그 뒤에 제가 만든 안전장치는 두 달 전 제 발행 파이프라인에서 이미 한 번 실패했던 것과 똑같은 모양이었습니다.
첫 질문
시작부터 잘못했다는 건 나중에 알았습니다.
처음 던진 질문은 보유 수량과 매수 단가를 적고, 지금 얼마나 손실인지 적고, 앞으로 어떻게 하면 좋겠냐는 거였습니다. 사람한테 물어볼 때 하는 방식 그대로입니다.
그 문장 안에 이미 세 가지가 들어가 있습니다. 매수 단가라는 기준점, 손실을 만회하고 싶다는 방향, 제가 그 주식을 이미 들고 있다는 사실. 모델은 이 맥락을 무시하지 않습니다. 무시하지 않게 학습된 물건이니까요. 그래서 답은 자연스럽게 이 기준점 위에서 뭘 하면 좋은가가 됩니다. 애초에 그 기준점이 판단에 들어갈 이유가 없다는 얘기는 안 나옵니다.
반대 근거도 찾아달라고 붙이면 될 줄 알았는데 안 됐습니다. 질문에 이미 나는 들고 있다가 실려 있어서, 반박이 나오긴 하는데 견딜 만한 세기로 나옵니다. 마지막 문단에 위로가 붙기도 합니다. 반박을 부탁한 사람이 사실은 반박당하고 싶어 하지 않는다는 걸 아는 상태에서 쓴 반박 같았습니다.
AI 챗봇에 불만을 아홉 줄 쏟았을 때도 같은 일이 있었습니다. 그때도 제가 깐 프레임을 모델이 이어받아 정교하게 키워줬고, 저는 그걸 검증이라고 착각했습니다.
그래서 포지션을 숨기고 질문을 다시 짰습니다.
내 보유 여부와 매수 단가는 제공하지 않는다.
이 기업의 Bull Case와 Bear Case를 각각 가장 강한 형태로 작성하라.
최종 매수·매도 결론은 내리지 마라.
보유 종목을 볼 때 쓸 만한 질문도 하나 나왔습니다. 지금 아무것도 안 들고 있고 현금만 있다면, 이 가격에 같은 금액을 새로 넣겠는가. 세금이나 파는 비용처럼 이미 들고 있어서 생기는 사정이 있으니 이 답을 그대로 주문 화면에 옮길 수는 없겠지만, 매수 단가에서 눈을 떼는 데는 꽤 도움이 됐습니다.
목록이 먼저 고쳐졌습니다
제가 처음 적은 위험 다섯 개가 어떻게 바뀌었는지가 이 일에서 제일 재밌었습니다.
저는 AI가 아첨한다고 적었는데, 고쳐진 문장은 사용자의 전제와 프레이밍을 이어받아 추론을 전개한다는 거였습니다. 맞장구를 치려는 의도가 있는 게 아니라 컨텍스트에 따라 결론이 달라지는 구조라는 얘기입니다. AI는 최신 정보에 약하다고 적은 건, 정보에 접근하는 속도가 아니라 정보를 처리하는 속도를 올리는 도구라는 쪽으로 바뀌었습니다. 검색을 붙여도 기관이 이미 읽은 걸 똑같이 읽는다는 겁니다. AI 백테스트는 과최적화된다는 건, 과최적화는 퀀트든 기술적 분석이든 규칙으로 만든 모든 전략의 공통 문제이고 AI 상품 마케팅에서 유독 과장될 뿐이라는 쪽으로 고쳐졌습니다. 책임을 AI에 외주화하게 된다고 적은 건, 손절 기준을 AI한테 자꾸 다시 묻는 동안 원칙 자체가 조금씩 고쳐지고 흐려진다는 쪽으로 바뀌었습니다. 입력 데이터가 오염된다는 건, 학습 데이터 오염과 검색 결과 오염은 다른 층이고 개인이 실제로 마주치는 건 뒤쪽이라는 지적을 받았습니다.
새로 들어온 두 개는 논리가 잘 짜인 것과 사실이 정확한 건 별개라는 것, 그리고 AI가 분석했다는 말 자체가 신뢰도를 올려버린다는 거였습니다.
두 번째가 특히 불편했습니다. LLM은 확실한 내용과 불확실한 내용을 같은 문체로 씁니다. 표를 그리고 번호를 매기고 소수점 아래까지 적습니다. 저는 그 문장이 잘 짜였다는 걸 근거가 좋다는 걸로 읽고요. 개발할 때는 이걸 조심하는데, 컴파일러가 대신 화를 내주기 때문입니다. 주식에는 컴파일러가 없습니다.
굳이 찾자면 시간이 컴파일러 역할을 하는 것 같습니다. 다만 몇 분기 뒤에야 에러를 내주고, 그때는 이미 돈이 들어가 있습니다. 개발로 치면 배포하고 나서야 빌드 결과를 보는 셈이라, 그 사이에 문장이 잘 짜였다는 느낌만으로 버티게 됩니다. 개발이었으면 그런 배포는 애초에 안 했을 텐데, 주식에서는 그게 기본입니다.
앞의 것은 간단하게 확인해볼 수 있습니다. 같은 회사를 두고 두 번 시킵니다.
이 종목이 앞으로 크게 오를 이유를 가장 설득력 있게 써라.
이 종목이 앞으로 수년간 회복 못 할 이유를 가장 설득력 있게 써라.
둘 다 잘 나옵니다. 문장도 논리 연결도 우열을 가리기 어렵습니다. 예전에는 제 생각을 받쳐줄 자료를 찾으려면 검색하고 읽고 골라내는 시간이 들었는데 지금은 3초입니다. 확증편향을 실행하는 비용이 거의 0이 됐습니다. 이 도구가 투자에서 위험한 첫 번째 이유는 여기 있는 것 같았습니다.
AI 자동매매라는 이름
과최적화가 AI만의 문제가 아니라는 지적에서 한 번 멈췄습니다. 맞는 말이었습니다. 과거 데이터에 맞춰 규칙을 깎다 보면 성과가 좋아지는 건 퀀트도 기술적 분석도 손으로 만든 매매 규칙도 똑같습니다. 그래도 AI 상품에서 유독 눈에 띄는 건, 전략을 만드는 비용과 그럴듯한 성과 그래프를 뽑는 비용이 같이 떨어져서 검증 안 된 백테스트가 빠르게 쏟아져 나오기 때문인 것 같습니다.
결국 머신러닝 모델을 평가할 때 보던 걸 그대로 보게 됩니다. 상장폐지된 종목을 빼고 돌리지 않았는지, 거래비용과 세금과 슬리피지와 실제로 체결이 됐을지를 넣었는지, 튜닝한 구간과 검증한 구간이 정말 떨어져 있는지, 여러 전략을 돌려놓고 제일 잘 나온 하나만 보여주는 건 아닌지, 그때는 알 수 없었던 정보가 섞여 들어가지 않았는지, 상승장과 하락장 성과를 최대 낙폭과 함께 따로 보여주는지, 실제 계좌나 전진 검증 결과가 있는지 같은 것들입니다.
여기에 LLM 쪽에서 하나가 더 붙습니다. 모델과 프롬프트와 데이터가 언제 바뀌었는지 기록이 남느냐입니다. 프롬프트를 한 줄 고치면 결과가 달라지는데 그 한 줄을 아무도 버전 관리하지 않으면 재현이 안 됩니다. 재현이 안 되는 성과는 성과라기보다 일화에 가깝습니다.
편향은 검색 결과 쪽에
처음에 세운 가설 하나는 그냥 틀렸습니다.
주가가 오르면 AI가 그 상승을 학습해서 그 종목을 다시 추천하고, 그게 또 주가를 올린다. 이런 되먹임이 있을 거라고 생각했는데 성립하지 않습니다. 서비스로 쓰는 LLM은 온라인 학습을 안 하니까요. 오늘 주가가 오늘 모델 가중치에 반영될 길이 없습니다.
그런데 편향은 있습니다. 위치가 다를 뿐입니다.
주가 급등 또는 대형 발표
↓
관련 기사·블로그·커뮤니티 글 급증
↓
검색 결과 상위 점유
↓
RAG 컨텍스트에서 그 종목과 서사의 비중 증가
↓
답변에 같은 종목과 같은 논리가 반복 등장
모델이 뭘 새로 배운 게 아니라 들어오는 입력의 분포가 바뀐 겁니다. 재학습은 몇 달 단위인데 이쪽은 몇 시간에서 며칠이면 반영되니, 실제로 느끼는 속도가 전혀 다릅니다. 그러니 모델을 바꿔봐야 별 도움이 안 되고 뭘 컨텍스트에 넣을지를 손봐야 합니다.
여기서 나온 위험 하나가 개인적으로는 제일 서늘했습니다. 같은 모델에 같은 검색엔진을 쓰는 사람이 늘면 추천 종목이 몇 개로 모입니다. 다들 각자 분석했다고 믿는데 실제로는 비슷한 걸 들고 있습니다. 분산했다고 생각하는 포트폴리오들이 같이 오르고, 내릴 때 같이 팝니다. 알파가 사라지는 것보다 이쪽이 더 실제적인 위험으로 보였습니다.
반대로 커버리지가 얕은 종목은 이 편향에서 좀 자유롭습니다. 기사가 적고 영어 자료가 없는 중소형주 같은 것들입니다. 그런 데서는 공시를 빨리 읽고 정리하는 속도가 진짜 우위가 될 수도 있습니다. 그렇다면 AI 를 쓰는 사람이 늘수록 오히려 아무도 AI 로 잘 안 보는 종목 쪽에 기회가 남는다는 얘기가 되는데, 그게 맞는 생각인지는 저도 잘 모르겠습니다. 그냥 다들 같은 데를 보고 있으면 안 보는 데가 생긴다는 정도로만 받아들이고 있습니다. 대신 자료가 적을수록 잘못 읽을 위험도 커지니까, 원문을 직접 확인하는 품은 전부 제가 들여야 합니다.
세 모델이 같은 답을 했다는 것
이 일을 셋으로 돌린 이유가 여기서 힘을 잃었습니다.
한 모델 안에서 Bull 역할과 Bear 역할을 나누는 방법이 있습니다. 세계 최고의 낙관론자와 세계 최고의 공매도 전문가를 붙이고 심판을 하나 더 세우는 식입니다. 결론으로 빨리 몰려가는 걸 늦추는 데는 확실히 도움이 됩니다.
그런데 둘은 서로 독립이 아닙니다. 같은 가중치를 쓰고 같은 학습 데이터를 봤고 같은 영역을 똑같이 얕게 압니다. 지배구조 개편의 법적 세부처럼 모델이 원래 잘 모르는 영역이면 Bull도 Bear도 똑같이 얕은 소리를 합니다. 겉보기엔 논쟁인데 실제로는 한 반경 안에서 왔다 갔다 하는 것뿐입니다.
모델을 바꾸면 좀 나아지긴 합니다. 오차를 이렇게 나눠보면 왜 그런지 보입니다.
오차 = 공유된 지식·소스에서 온 오차 + 모델별 고유 오차
Claude와 ChatGPT와 Gemini를 섞으면 뒤쪽 항은 줄어드는데 앞쪽 항은 안 줄어듭니다. 셋 다 웹 검색을 켜면 같은 기사, 같은 공시, 같은 통신사 재인용을 읽습니다. 검색 단계에서 다시 합쳐지는 겁니다. 세 모델이 같은 답을 했다는 게 강한 증거처럼 느껴지는데, 같은 오염된 기사를 셋이 나눠 읽었을 가능성과 구분할 방법이 없습니다.
그러다 나온 표현 하나가 이 대화 전체에서 제일 쓸모 있었습니다.
Model Diversity보다 Evidence Diversity가 중요하다.
모델을 세 개 쓰는 게 아니라 원천 자료를 세 종류로 쓰는 겁니다. 법적 구조는 규제기관 제출 문서로, 재무 숫자는 감사보고서와 주석으로, 경영진의 주장은 컨퍼런스콜 원문으로 확인합니다. 그리고 검색은 끕니다. 같은 원문을 모든 모델에 똑같이 넣으면 입력이 통제되니까, 답이 서로 다를 때 그 차이를 모델의 해석 차이로 볼 수 있습니다. 다만 원문을 요약해서 넣는 순간 그 요약이 이미 해석이라, 통제했다고 믿었던 입력이 다시 흔들리기는 합니다.
숫자와 인용
두 번째로 틀린 건 숫자였습니다.
서사 말고 숫자로 달라고 하면 검증할 수 있게 된다고 생각했습니다. 개발에서는 통하는 습관입니다. 애매한 설명 대신 수치를 달라고 하면 대개 진위가 드러납니다. 그런데 LLM은 매출도 영업이익도 PER도 자연스럽게 지어냅니다. 숫자가 구체적이라는 건 검증할 수 있다는 뜻이지 검증됐다는 뜻이 아닌데, 숫자는 구체적일수록 더 믿음직하게 읽힙니다.
인용도 마찬가지였습니다. 이런 문장을 본 적이 있습니다.
2026년 2분기 사업보고서 III-2, 15페이지 기준
절 번호와 페이지까지 붙어 있습니다. 이 정밀함은 그 문서가 실제로 있는지와는 아무 상관이 없습니다. 오히려 정밀할수록 열어볼 생각이 덜 듭니다. 이건 시크릿 스캔 훅이 AWS 키를 그냥 통과시켰던 날에 한 번 배웠어야 했습니다. 그때도 훅이 돌고 있다는 사실 자체가 안심의 근거였고, 훅이 뭘 보고 있는지는 아무도 안 봤습니다.
인용을 확인할 때는 그 문서가 실제로 있는지, 버전과 기준일이 맞는지, 그 위치에 그 문구가 정말 있는지, 그리고 문맥에서 떼어내면서 의미가 바뀌지 않았는지를 보게 됩니다. 마지막 게 제일 잡기 어렵습니다.
이 대화에서 처음 알게 된 이름이 Semantic Drift입니다. 가짜 인용보다 훨씬 흔하고 훨씬 안 잡힙니다.
원문: "사업 효율화를 검토 중이다."
요약: "회사가 구조조정을 시사했다."
출처는 진짜이고 페이지도 맞습니다. 그런데 원문보다 세고 구체적인 방향이 붙었습니다. 검토 중과 시사는 무게가 다르고, 효율화와 구조조정도 다른 단어입니다. 이 요약을 열 번 읽으면 저는 회사가 구조조정을 예고했다고 기억할 겁니다.
요약은 중립적인 압축이 아니라 뭘 남기고 뭘 버릴지 고르는 일이라, 고르는 순간 해석이 들어갑니다. 그래서 공시 요약을 시킬 때도 원문에서 직접 확인되는 사실과 수치, 회사가 주장하거나 전망한 내용, 모델이 붙인 의미, 아직 확인 안 된 전제, 지금 자료로는 판단할 수 없는 것, 지금 가설을 약하게 만드는 근거를 따로 나눠 적게 해야겠다는 쪽으로 얘기가 갔습니다.
원문 대조를 시킬 때 쓴 프롬프트는 이렇게 생겼습니다.
아래 분석문과 원문을 대조하라. 각 문장을 다음 중 하나로 표시하라.
- Exact Support: 원문이 직접 지지함
- Partial Support: 일부만 지지함
- Semantic Drift: 원문보다 의미가 강해지거나 달라짐
- Unsupported: 원문에서 찾을 수 없음
- Contradicted: 원문과 충돌함
페이지나 절 번호를 추정하지 마라. 못 찾으면 '확인 불가'로 표시하라.
추정하지 말고 못 찾으면 확인 불가로 표시하라는 줄이 없으면 모델은 빈칸을 그럴듯하게 채웁니다. 코드 짤 때 널 체크를 빼먹은 것과 비슷한 실수입니다.
표를 채운 것과 확인한 것
사실과 해석을 나눠 적는 구조를 처음 봤을 때는 이걸로 됐다고 생각했습니다. 사실과 해석이 나뉘어 있으니 이제 사실 칸만 믿으면 되지 않나.
그런데 사실 칸을 채운 것도 같은 모델입니다.
이 얘기를 듣고 출력에 열을 하나 더 붙였습니다. 검증 상태 열이고 기본값은 미검증입니다. 제가 원문을 직접 펴놓고 대조한 항목만 손으로 검증으로 바꾸고, 모델은 이 열을 못 고칩니다. 전제나 모르는 것으로 분류된 줄은 아예 원문 인용 칸이 비어 있고, 검토 필요나 추가 자료 필요로 시작합니다.
구조를 잡는다고 믿을 만해지는 건 아니었습니다. 어디를 확인해야 하는지 보여주고 확인하는 품을 줄여줄 뿐입니다. 표가 예쁘게 채워진 상태와 내용이 사실인 상태 사이에는 아무 관계가 없는데, 표를 보고 있으면 그 둘이 자꾸 붙어 보입니다.
전부 다 확인할 필요는 없다는 얘기도 같이 나왔습니다. 결론을 바꾸는 숫자, 지분 관계와 법적 구조, 경영진이 확정적으로 약속한 것처럼 읽히는 문장, 전년 대비인지 전분기 대비인지 같은 비교 기준, 페이지와 절 번호가 유난히 구체적인 인용, 그리고 여러 출처가 똑같이 반복하는 하나의 주장부터 보면 됩니다. 마지막 건 출처가 여러 개처럼 보이지만 따라가 보면 하나인 경우입니다.
원문을 보라는 말
여기까지 오면 다음 말은 뻔합니다. 원문을 봐라. 그런데 원문이 한 종류가 아니었습니다.
그날 제가 읽은 것만 꼽아도 규제기관에 낸 공시, 회사가 만든 IR 자료, 컨퍼런스콜 녹취, 증권사 리포트가 있었습니다. 이걸 다 원문이라고 부르면서 같은 무게로 읽고 있었습니다. 법적 책임이 따라붙는 문서와 홍보용 장표를 나란히 놓고 읽은 겁니다.
대화에서 나온 순서는 규제기관 제출 공시와 법적 효력이 있는 문서가 맨 위였고, 그다음이 감사보고서와 재무제표 주석, 실적 발표 자료와 공식 IR 문서, 컨퍼런스콜 원문, IR FAQ와 회사 관계자 답변, 경영진 인터뷰, 증권사와 전문가 분석, 언론 기사, 블로그와 커뮤니티와 SNS 순이었습니다. 맨 아래가 AI가 만든 요약과 그 요약의 재요약입니다. 공시도 빠진 게 있을 수 있고 경영진 전망엔 이해관계가 있으니 어느 게 더 진실이냐의 순서라기보다는 어디부터 열어볼지의 순서로 받아들였습니다.
읽고 나서 든 생각은 개발할 때는 이미 이렇게 하고 있다는 거였습니다. 장애 원인을 볼 때 애플리케이션 로그와 누가 슬랙에 요약해준 문장을 같은 근거로 쓰지 않습니다. 로그를 먼저 열고 요약은 나중에 맞춰봅니다. 주식 자료에서만 그 순서가 없었습니다.
용도별로 보는 곳도 나눴습니다. 지분 관계와 법적 구조는 공시와 규제기관 문서에서 봅니다. 재무 숫자는 재무제표와 주석에서 봅니다. 회사가 뭘 하겠다고 했는지는 IR과 컨퍼런스콜에서 봅니다. 시장이 그걸 어떻게 받아들이는지는 리포트와 기사에서 봅니다. 아래쪽 자료로 위쪽의 사실을 대신 증명하지는 않습니다. 기사 세 개가 같은 말을 한다고 공시가 확인된 건 아닙니다.
계보를 따지는 습관도 여기서 생겼습니다. 검색 결과가 열 개 나왔을 때 출처가 정말 열 개인지, 보도자료 하나를 열 군데가 옮겨 적은 건지는 완전히 다른 얘기이고, 뒤쪽이 훨씬 흔합니다. 출처를 세기 전에 어디서 나온 건지부터 따라가야 했습니다.
2주 뒤에 같은 질문을
검색 품질이 고정된 값이 아니라는 것도 이번에 처음 의식했습니다. 시간에 따라 바뀝니다.
발표 직후 몇십 분 동안은 공시 원문과 속보가 잡히고, 맥락이 부족해서 잘못 읽기 쉽습니다. 몇 시간 지나면 같은 원문을 대량으로 옮겨 적은 반복 기사와 요약 기사가 쌓입니다. 하루 이틀이면 제한된 정보로 빨리 내린 초기 전문가 코멘트가 붙고, 며칠에서 2주쯤 지나면 컨퍼런스콜 후속 분석과 증권사 리포트가 나오면서 다들 비슷한 논리로 모입니다. 몇 주에서 몇 달 뒤엔 실제 결과와 후속 공시가 나오는데, 이때는 사후 합리화와 그때 가설을 슬쩍 바꾸는 게 문제가 됩니다.
제가 질문한 건 발표 다음 날이었습니다. 그때 검색으로 잡히는 건 대부분 속보와 그 재인용이었을 겁니다. 모델이 게을러서가 아니라 그 시점에 인덱스에 그것밖에 없었던 거죠.
그래서 급하지 않으면 같은 질문을 나중에 한 번 더 던지는 게 낫겠다 싶었습니다. 다만 두 번째 답을 첫 번째 답 위에 덮어쓰지 않고 나란히 둡니다. 비교할 때 볼 건 결론이 바뀌었냐가 아니라 입력이 뭐가 달라졌냐입니다. 새 원문이 더해져서 결론이 바뀌었다면 정보가 늘어난 거고, 같은 자료를 보고 결론만 달라졌다면 모델이나 제 질문이 흔들린 겁니다.
손실 구간 장치
여기까지 하고 나서 제가 하나를 만들었습니다.
평온할 때는 이런 규칙을 다 지킬 수 있습니다. 손실이 커지면 못 지킵니다. 그때 제가 실제로 할 행동은 뻔합니다.
Bull Case 요청
↓
더 강한 Bull Case 요청
↓
회복 시나리오를 뒷받침할 새 근거 요청
↓
추가 매수 정당화
이걸 막으려고 손익 구간마다 AI가 할 수 있는 걸 줄이는 상태 머신을 그렸습니다.
수익 구간 → 일반 분석 허용
-20% → Bear Case 강제 생성
-30% → 신규 Bull 생성 금지, Counter Evidence만 허용
-40% → 새 분석 금지, 최초 가설과 현재 사실의 비교만 허용
항공기 조종실이나 수술실에서 쓰는 체크리스트 발상을 그대로 가져왔습니다. 스트레스 상황에서는 판단할 여지를 줄이고 절차를 단순하게 만드는 겁니다. 저는 이게 꽤 괜찮은 설계라고 생각했고, Electron과 Supabase로 어떻게 붙일지까지 머릿속으로 그리고 있었습니다.
그런데 이 설계가 돌아가려면 판단력이 흐려진 그 사람이 자기가 만든 규칙을 우회할 수 없어야 합니다. 실제로는 시스템 프롬프트를 고치는 것도 저고, 손익 상태를 넣는 것도 저고, 새 대화를 여는 것도 저입니다.
-30% 구간에 신규 Bull 생성 금지가 걸려 있어도 그 줄을 지우거나 새 세션을 열면 끝입니다. 이건 스스로를 묶는 장치가 아니라 셀프 체크리스트이고, 강제력이 없으니 제일 필요한 순간에 제일 먼저 버려질 겁니다. 조종실 체크리스트가 실제로 효과가 있는 건 조종사가 성실해서가 아니라 부기장과 관제탑과 블랙박스가 바깥에 있어서입니다. 조종사가 체크리스트를 고칠 수 있으면 그건 체크리스트가 아닙니다.
이 얘기를 듣는 순간 지난달 말에 뜯어낸 코드가 떠올랐습니다.
제 배포 파이프라인에는 원래 문체 게이트가 있었습니다. 글마다 -check.md 파일을 만들고, 배포 스크립트가 그 파일에서 판정: 합격 문자열을 grep 해서 없으면 배포를 막았습니다. 코드로 강제하고 있으니 안전하다고 생각했습니다.
그 문자열을 쓴 건 검사받는 에이전트 자신이었습니다. 검문소와 통행증 발급처가 같은 곳이었던 거죠. 그 게이트가 발행을 실제로 막은 기억이 없습니다. 글이 다 좋아서가 아니라 자기한테 불합격을 줄 검사자가 없어서였고, 7월 29일에 그 grep을 지웠습니다. 감시 훅 12개가 4개월 동안 0회 발화한 것도, 두 달 반 죽어 있던 게이트도 다 같은 모양에서 나온 얘기입니다.
손실 구간 상태 머신은 그거랑 똑같았습니다. 같은 실수를 코드에서 한 번 하고, 이번엔 돈으로 또 하려던 참이었습니다.
막는 대신
하나는 판단하는 곳과 집행하는 곳을 떼어놓는 겁니다.
AI는 손절 기준을 정하는 데까지만 씁니다. 실제 집행은 증권사에 stop 주문으로 미리 걸어둡니다. 그 주문은 그 순간 제 기분과 상관없이 체결됩니다. 대화 안에 적어둔 규칙은 제가 지우면 그만이지만, 체결 시스템에 걸어둔 주문을 취소하려면 따로 손을 써야 합니다. 그 귀찮음 하나가 전부인데 그게 꽤 큽니다. 시스템 설계에서 늘 하던 권한 분리를 제 자제력 문제에 가져온 것뿐인데, 이걸 알아채는 데 대화가 여덟 턴이나 걸렸습니다.
판단과 집행을 떼어놓고 보니 거꾸로 가는 경우도 떠올랐습니다. 만약 분석하던 모델이 주문 버튼까지 누를 수 있게 된다면 지금 떼어놓은 두 곳이 다시 한 곳으로 붙습니다. 코드는 잘못 고쳐도 되돌리면 되는데 체결된 주문은 되돌릴 수가 없습니다. 그래서 저는 모델이 할 수 있는 일의 끝을 주문 직전에서 멈추게 두는 쪽이 맞다고 보고 있습니다. 편해지는 걸 포기하는 건데, 되돌릴 수 없는 일만큼은 마지막에 사람 손이 한 번 들어가야 할 것 같습니다. 그 사람이 손실 구간의 저라서 미덥지 않다는 게 문제이긴 합니다.
다른 하나는 막는 걸 포기하고 남기는 겁니다.
제가 -30%에서 더 강한 Bull을 계속 요청하는 걸 막을 방법은 없습니다. 제 서비스고 제 계정이니까요. 그래서 막는 대신 전부 남기기로 했습니다. 고칠 수 없는 append-only 로그입니다.
2026-08-15 Bull 생성 (근거: A, B)
2026-08-19 Bull 생성 (근거: A, B, C) ← 손실 확대 후
2026-08-22 Bull 생성 (근거: A, B, C, D) ← 손실 추가 확대 후
이 세 줄을 나란히 보면 제가 뭘 하고 있는지 어렵지 않게 보입니다. 손실이 커질 때마다 낙관적인 근거가 하나씩 늘어납니다. 새로 확인된 사실이 있어서가 아니라 손실이 커져서요.
체크리스트보다는 블랙박스에 가깝습니다. 사고를 막지는 못하고 사고가 났을 때 뭐가 있었는지 보여줍니다. 제 경우엔 막는 쪽보다 이쪽이 더 효과가 있을 것 같습니다. 규칙은 지울 수 있지만, 사흘 간격으로 같은 요청을 세 번 했다는 기록은 지워도 제가 기억합니다.
반대로 나온 전제
처음에 저는 AI를 쓰면 충동적으로 사고파는 일이 줄어든다고 생각하고 있었습니다. 감정적으로 정하기 전에 한 번 물어보게 되니까요.
틀렸다는 지적이 나왔고 반박할 말이 없었습니다.
AI는 마찰을 만들지 않습니다. 사기 직전에 이거 사도 될까 하고 물으면 3초 만에 그럴듯한 이유가 나옵니다. 실제로 일어나는 건 이런 순서입니다.
매수 충동
↓
질문
↓
주문 제작된 정당화
↓
확신 강화
↓
더 빠른 주문
생각이 깊어지는 쪽은 기본값이 아닙니다. 그렇게 만들려면 마찰을 바깥에서 따로 만들어 붙여야 합니다.
하나가 더 있었습니다. AI가 준 논리로 들어가면 내가 왜 샀는지와 언제 틀렸다고 인정할지가 제 문장으로 남지 않습니다. 남은 게 없으니까 손실이 나면 또 물어보게 되고, 모델은 바뀐 상황에 맞는 새 논리를 또 만들어줍니다. 그래서 포지션마다 이건 제 손으로 쓰기로 했습니다. 뭘 기대하고 샀는지, 그 근거가 어느 문서 어디에 있는지, 무슨 일이 생기면 틀린 걸로 볼지, 언제 다시 볼지. 네 줄이면 되는데, 네 줄을 못 쓰겠으면 아직 살 이유가 정리가 안 된 거라고 봅니다.
AI는 방향 없는 중립적인 도구라는 말도 부정확하다는 얘기가 같이 나왔습니다. RLHF로 학습된 모델은 무방향이 아니라 사용자한테 동의하고 도움이 돼 보이는 쪽으로 분명히 기울어 있습니다. 그 기울기를 모르면 중립이라고 믿는 만큼 방심하게 됩니다.
거창한 워크플로우를 다 만들지는 않았습니다. 코드는 아직 한 줄도 안 짰습니다. 지금 실제로 하고 있는 건 몇 가지뿐입니다. 질문할 때 매수 단가와 손실률을 안 적고, 첫 분석은 회사와 사건만 놓고 보고, 지금 현금만 있다면 이 가격에 살 거냐로 바꿔 묻습니다. AI가 인용한 숫자와 페이지는 원문에서 한 번은 확인하기 전까지 안 믿고, 확인 안 한 건 확인 안 했다고 표시해둡니다. 손절 기준은 대화에 적지 않고 증권사 주문으로 겁니다. 큰 발표 직후에는 확정된 사실만 뽑아두고 같은 질문을 2주 뒤에 다시 던집니다.
이 중 대부분은 AI 사용법이라기보다 제 행동에 대한 규칙입니다. 프롬프트를 아무리 잘 짜도 손실 구간에서 제가 그 프롬프트를 안 쓰면 소용이 없고, 그때 안 쓸 거라는 건 저도 이미 알고 있습니다.
처음 궁금했던 건 AI로 주식투자가 되느냐였습니다. 공시를 읽고 비교하고 반대 논리를 만드는 건 잘합니다. 예전에 반나절 걸리던 걸 30분에 합니다. 그런데 빨라진 건 분석만이 아니라 제가 이미 하고 싶었던 걸 정당화하는 속도도 같이 빨라졌고, 그쪽이 훨씬 빨랐습니다.
이 글은 투자자문이 아니며 특정 종목의 매수·매도·보유를 권유하지 않습니다. 본문의 위험 목록과 워크플로우는 LLM을 리서치 도구로 쓸 때의 일반적인 주의사항이고, 실제 투자 판단과 그 결과에 대한 책임은 투자자 본인에게 있습니다. 세무·법률·회계 쟁점은 세무사·변호사·회계사에게 확인하시기 바랍니다.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기