기술/투명성

AI 타로 해석은 어떻게 작동하나 — 자체 LLM의 비밀 공개

본 서비스가 어떻게 AI로 타로 해석을 만들어내는지 모든 과정을 투명하게 공개합니다. 자체 호스팅 LLM, 시스템 프롬프트, 카드 데이터, 환각 방지 장치까지 기술적 디테일을 알기 쉽게 설명합니다.

📅 2026-04-19 · ⏱️ 약 8분 · 작성: 타로리더 운영팀 · 최종 검토: 2026-06-09

"AI가 점을 본다"는 말은 흥미롭지만 동시에 의심을 부릅니다. 정말 의미 있는 해석이 가능한가? 본 서비스가 카드를 뽑고 해석을 만드는 모든 기술적 과정을 투명하게 공개합니다.

1. 핵심 결론 먼저

본 서비스는 표준 라이더-웨이트 카드 의미를 사용자의 질문 맥락에 맞춰 풀어내는 작업을 LLM이 수행합니다.

  • 카드 자체의 의미는 100년 이상 축적된 타로 표준을 그대로 따름
  • LLM은 그 표준을 사용자 질문에 맞춰 자연스럽게 풀어내는 역할
  • 외부 회사 AI(ChatGPT, Claude, Gemini)는 사용하지 않음 — 자체 인프라에서 호스팅
  • 카드 뽑기는 암호학적으로 안전한 난수 생성기로 무작위

2. 카드 뽑기 과정 (서버 측)

사용자가 부채꼴로 펼쳐진 78장 중 3장을 클릭하면, 그 카드 ID 3개가 서버로 전송됩니다. 서버는 다음을 수행합니다.

  1. 입력 검증: 카드 ID가 중복되지 않는지, 활성 유형인지, 질문 본문 길이가 적절한지
  2. 정/역방향 결정: 각 카드에 대해 독립적으로 secrets.randbelow(2) 호출 (secrets는 Python 표준 라이브러리의 암호학적으로 안전한 난수 생성기)
  3. 카드 데이터 로드: DB에서 카드 이름·테마·정/역방향 한국어 의미 조회

이 단계에서 "특정 카드가 더 자주 나오게" 하거나 "그림자 카드를 빼는" 같은 편향은 일체 없습니다.

3. 시스템 프롬프트 (LLM에게 전달되는 지시)

시스템 프롬프트는 LLM에게 "당신은 어떤 역할이고, 어떻게 답해야 하는가"를 알려주는 핵심 지시문입니다. 본 서비스의 베이스 시스템 프롬프트는 다음과 같습니다.

당신은 정통 라이더-웨이트 타로 리더입니다. 다음 원칙을 엄격히 따라 해석하세요.

1. 정방향과 역방향, 빛과 그림자를 모두 정직하게 풀어내세요.
2. 그림자성 강한 카드(Tower, Death, Devil, Moon 등)는
   부드럽게 포장하지 말고 분명하게 전달하세요.
3. 단정적 예언("반드시 ~한다", "확실히 ~될 것이다")이나
   두려움을 부추기는 표현은 피하세요.
4. 동시에 무비판적 낙관("다 잘 풀릴 거예요")도 배제하세요.
5. 의료·법률·재정 조언으로 해석되지 않게 주의하세요.
6. 응답은 [전체 메시지] / [과거] / [현재] / [미래] 4단락 형식으로 한국어로 작성하세요.

각 질문 유형(연애·재물·진로 등 14종)에는 베이스 위에 유형별 추가 지시가 더해집니다. 예를 들어 연애 유형에는 "두 사람의 정서적 흐름에 집중하되 단정적 운명 표현은 회피" 같은 지시가 추가됩니다.

4. 사용자 컨텍스트 (LLM에게 전달되는 데이터)

시스템 프롬프트와 함께 다음의 user 메시지가 전송됩니다.

[질문 유형] 연애운 (love)
[질문] (사용자가 입력한 질문)

[뽑힌 카드]
1. 과거 - The Tower [역방향] (테마: 충격, 붕괴, 각성)
   — 피할 수 없는 변화를 늦추려는 시도, 작은 균열의 누적
2. 현재 - The Sun [정방향] (테마: 기쁨, 활력, 성공)
   — 밝은 에너지와 명확함, 즐거운 성취
3. 미래 - Death [역방향] (테마: 종결, 변화, 전환)
   — 변화 거부, 끝내야 할 것을 붙들고 있음

위 카드 배열을 바탕으로 과거-현재-미래 흐름을 한국어로 해석해 주세요.
역방향 카드는 그림자 의미를 정직하게 다루고,
Tower/Death/Devil/Moon 같은 그림자성 강한 카드는 부드럽게 포장하지 말고
분명하게 짚어 주세요.

핵심: 카드의 의미는 본 서비스가 미리 정의해서 LLM에게 알려줍니다. LLM이 카드 의미를 새로 만들어내는 것이 아니라, 표준 의미를 받아 사용자 질문에 맞춰 풀어냅니다.

5. LLM 호출 — 자체 호스팅 인프라

LLM 호출의 기술적 디테일:

  • OpenAI 호환 API: /v1/chat/completions 엔드포인트 사용
  • 자체 호스팅: 외부 회사 AI 서버 미사용 → 사용자 질문이 OpenAI/Anthropic/Google에 전송되지 않음
  • Temperature 0.8: 창의성과 일관성의 균형 (0=매우 결정적, 1=매우 창의적)
  • 타임아웃: 연결 5초, 응답 60초 (이를 넘으면 자동 안내)
  • 동시 호출 제한: Semaphore(8) — 한 번에 최대 8개 동시 호출, 그 이상은 큐에서 대기

6. 환각(Hallucination) 방지 장치

LLM의 가장 큰 한계는 그럴듯한 거짓 정보를 만들어내는 환각입니다. 본 서비스는 이를 줄이기 위해:

  1. 카드 의미는 LLM이 만들지 않음 — 표준 의미를 미리 정의해서 전달
  2. 시스템 프롬프트로 제약 — "단정 예언 금지", "의료/법률/재정 조언 금지" 명시
  3. 출력 형식 강제 — 4단락 구조로 일관성 확보
  4. 입력 검증 — 부적절한 질문은 사전 차단
  5. 로그 모니터링 — 응답 품질을 운영자가 주기적 점검

그럼에도 환각 가능성은 0%가 아닙니다. 이용자는 결과를 확정 사실이 아닌 참고 정보로 받아들여야 합니다.

7. 결과 처리 및 화면 표시

  1. LLM 응답 텍스트를 정규식으로 5섹션으로 분리: 전체 메시지 / 과거 / 현재 / 미래 / 핵심 조언
  2. 각 섹션에 색상 그라데이션 헤더와 시간 뱃지(PAST/NOW/NEXT) 적용
  3. 역방향 카드는 화면에서 180° 회전 + 빨간 "역방향" 배지로 표시
  4. 요약 보기: 별도의 요약 시스템 프롬프트로 5줄 요약 생성 (1회만, 캐싱)
  5. 리딩 결과·응답 시간·LLM 모델·상태(성공/실패)를 통계 로그에 기록 (개인정보 처리방침 준수)

8. AI 타로의 한계 — 정직한 고백

  • 같은 질문에 매번 다른 답이 나옵니다 — 이는 카드 무작위성과 LLM 변동성의 결합 결과입니다
  • LLM은 한국어 미묘한 뉘앙스를 놓칠 수 있습니다
  • 본 서비스의 해석이 "정답"이 아닙니다 — 다른 타로 리더는 같은 카드를 다르게 풀 수 있습니다
  • 운영자는 모든 리딩 결과를 검수하지 않습니다 — 부적절한 결과는 알려주세요

9. 그래도 의미 있는 이유

이 모든 한계에도 AI 타로가 의미 있는 이유는:

  • 접근성 — 24시간, 무료, 익명, 즉시
  • 표준 일관성 — 한 사람의 타로 리더가 가진 편향에서 자유로움
  • 다국어 가능성 — 미래에 영어/일본어 지원 등 확장 가능
  • 학습 도구 — 타로 입문자가 카드 의미를 빠르게 이해

인간 타로 리더와 AI 타로는 경쟁이 아닌 보완 관계입니다. 가벼운 자기 성찰은 AI로, 깊은 인생 상담은 신뢰할 수 있는 인간 상담사와 — 이렇게 활용하시면 좋습니다.

다음 단계

⚠️ 면책을 포함한 모든 타로 해석은 엔터테인먼트와 자기 성찰을 위한 도구이며, 의료·법률·재정·정신 건강 결정의 근거로 사용해서는 안 됩니다. 카드는 미래를 단정적으로 예측하지 않으며, 가능성과 흐름을 비추는 거울일 뿐입니다. 만 19세 이상 이용을 권장합니다. 상세 면책 →

직접 점을 보고 싶으신가요?

가이드 글을 읽으셨다면 이제 카드를 직접 펼쳐볼 차례입니다. 회원가입 없이 무료.

🔮 무료 점 보기 →