

최근 AI와 전통적인 점술의 융합이 주목받고 있습니다. 개발자로서 타로 카드 기능을 웹 애플리케이션에 통합하고 싶다면, tarotap npm 패키지가 완벽한 솔루션이 될 수 있습니다.
tarotap은 완전한 78장의 타로 카드 덱을 제공하는 JavaScript/TypeScript 라이브러리입니다. 12개 언어를 지원하며, 의존성이 전혀 없는 가벼운 패키지입니다.
npm install tarotap
import { getRandomCard, drawCards, TarotCard } from 'tarotap';
// 랜덤 카드 뽑기 (기본: 영어)
const card: TarotCard = getRandomCard();
console.log(card.name); // "The Fool"
// 한국어로 랜덤 카드 뽑기
const koreanCard: TarotCard = getRandomCard('ko');
console.log(koreanCard.name); // "바보"
// 여러 장 뽑기 (중복 없이 3장)
const cards: TarotCard[] = drawCards(3, false, 'ko');
import { getCardById, getMajorArcana, getCardsBySuit } from 'tarotap';
// ID로 특정 카드 가져오기
const fool = getCardById('the-fool', 'ko');
// 메이저 아르카나만 가져오기
const majorCards = getMajorArcana('ko');
// 특정 수트의 카드들 가져오기
const cupsCards = getCardsBySuit('cups', 'ko');
import React, { useState } from 'react';
import { getRandomCard, TarotCard } from 'tarotap';
const TarotCardComponent: React.FC = () => {
const [currentCard, setCurrentCard] = useState<TarotCard | null>(null);
const drawNewCard = () => {
const card = getRandomCard('ko');
setCurrentCard(card);
};
return (
<div className="tarot-container">
{currentCard ? (
<div className="card-display">
<h2>{currentCard.name}</h2>
<p>카드 ID: {currentCard.id}</p>
</div>
) : (
<p>카드를 뽑아보세요!</p>
)}
<button onClick={drawNewCard}>
카드 뽑기
</button>
</div>
);
};
const express = require('express');
const { getRandomCard, drawCards } = require('tarotap');
const app = express();
// 단일 카드 API
app.get('/api/card/random/:lang?', (req, res) => {
const language = req.params.lang || 'ko';
const card = getRandomCard(language);
res.json(card);
});
// 타로 스프레드 API (3장)
app.get('/api/spread/three/:lang?', (req, res) => {
const language = req.params.lang || 'ko';
const cards = drawCards(3, false, language);
res.json({
past: cards[0],
present: cards[1],
future: cards[2]
});
});
app.listen(3000, () => {
console.log('타로 API 서버가 포트 3000에서 실행 중입니다.');
});
import { drawCards, TarotCard } from 'tarotap';
class TarotSpread {
static celticCross(language = 'ko'): Record<string, TarotCard> {
const cards = drawCards(10, false, language);
return {
situation: cards[0], // 현재 상황
challenge: cards[1], // 도전
pastInfluence: cards[2], // 과거의 영향
possibleOutcome: cards[3], // 가능한 결과
crownCard: cards[4], // 관심사
nearFuture: cards[5], // 가까운 미래
yourApproach: cards[6], // 당신의 접근법
externalInfluence: cards[7], // 외부 영향
hopesAndFears: cards[8], // 희망과 두려움
finalOutcome: cards[9] // 최종 결과
};
}
}
// 사용 예시
const reading = TarotSpread.celticCross('ko');
console.log('현재 상황:', reading.situation.name);
import { getAllCards } from 'tarotap';
class TarotCache {
private static cache: Map<string, TarotCard[]> = new Map();
static getCards(language: string): TarotCard[] {
if (!this.cache.has(language)) {
this.cache.set(language, getAllCards(language));
}
return this.cache.get(language)!;
}
}
tarotap은 의존성이 없는 가벼운 라이브러리이지만, 필요한 함수만 import하여 번들 크기를 더욱 줄일 수 있습니다:
// 전체 import 대신
import * as tarotap from 'tarotap';
// 필요한 함수만 import
import { getRandomCard, drawCards } from 'tarotap';
이 패키지는 실제로 Tarotap.com에서 활용되고 있습니다. 전 세계적으로 사용되는 AI 타로 서비스에서 이 라이브러리의 안정성과 성능이 검증되었습니다.
tarotap npm 패키지는 타로 카드 기능을 웹 애플리케이션에 쉽게 통합할 수 있게 해주는 강력하면서도 가벼운 도구입니다. 다국어 지원과 완전한 TypeScript 지원으로 국제적인 서비스 개발에도 적합합니다.
개발자라면 한 번쯤 신비로운 타로의 세계를 코드로 구현해보는 것도 흥미로운 경험이 될 것입니다. tarotap과 함께 여러분만의 독특한 타로 애플리케이션을 만들어보세요!
#타로 #npm #JavaScript #TypeScript #React #점술 #AI #웹개발