암호화폐 고빈도 거래(HFT) 전략을 구축하는 개발자라면, Funding Rate와 Liquidation 데이터의 중요성은 의심의 여지가 없습니다. 이 튜토리얼에서는 Tardis API를 활용하여 BTCUSDT 페어의 핵심 데이터를 확보하고, HolySheep AI 게이트웨이를 통해 최적의 비용으로 AI 모델과 통합하는 방법을 설명드리겠습니다.
핵심 결론
- Tardis API는 Binance, Bybit, OKX 등 35개 이상 거래소의 원시 시장 데이터를 제공하며, Funding Rate와 Liquidation 데이터의 지연 시간이 100ms 이하입니다.
- HolySheep AI를 통해 단일 API 키로 Tardis 데이터와 GPT-4.1, Claude Sonnet 4.5 등 주요 AI 모델을 통합하면, 데이터 분석 파이프라인 비용을 최대 60% 절감할 수 있습니다.
- 고빈도 백테스팅 환경에서는 WebSocket 스트리밍보다 RESTful 배치 쿼리가 더 효율적이며, 데이터 캐싱 전략이 필수입니다.
Tardis API vs HolySheep AI vs 공식 API 비교
| 비교 항목 | HolySheep AI | Tardis API | 공식 Binance API | GMO Coin API |
|---|---|---|---|---|
| 기본 사용료 | 무료 크레딧 제공 | 월 $99부터 | 무료 ( Rate Limit 적용) | 무료 (Rate Limit 적용) |
| Funding 데이터 비용 | 통합 과금 | 월 $199 (전체 거래소) | 제한적 제공 | 미지원 |
| Liquidation 데이터 | AI 분석 통합 | 실시간 WebSocket | WebSocket만 | 미지원 |
| 평균 지연 시간 | 120ms | 80ms | 200ms | 350ms |
| 지원 모델 수 | 50개 이상 | 시장 데이터만 | 시장 데이터만 | 시장 데이터만 |
| 결제 방식 | 로컬 결제 + 해외 카드 | 해외 카드만 | 거래소 계정 | 국내 카드만 |
| 적합한 팀 | AI + 데이터 통합 필요 | 데이터 전문 팀 | 단일 거래소 개발 | 일본 시장 특화 |
이런 팀에 적합
✅ HolySheep AI가 적합한 팀
- AI 트레이딩 파이프라인 구축 팀: Funding Rate와 Liquidation 데이터를 AI로 분석하고 자동 거래 신호 생성까지 한 번에 처리하고 싶은 경우
- 다중 거래소 데이터 통합 팀: Binance, Bybit, OKX 데이터를 통일된 인터페이스로 관리하고 싶은 개발자
- 비용 최적화를 원하는 스타트업: 해외 신용카드 없이 로컬 결제를 지원하므로 계약 및 청구 관리가 간편
- 빠른 프로토타이핑이 필요한 팀: 단일 API 키로 여러 모델을切り替えながら 백테스팅 가능
❌ HolySheep AI가 비적합한 팀
- 순수 시장 데이터만 필요한 팀: Tardis API의 전문적인 시계열 스토어와 백필 기능이 필수적인 경우
- 극단적 저지연이 요구되는 HFT 팀: 딜레이 감수가 전혀 불가능한 나노초 단위 전략의 경우 전문 데이터 공급사 직접 계약 권장
- 단일 거래소 전용 전략만 개발하는 팀: Binance 공식 API로 충분한 기능
가격과 ROI
HolySheep AI의 가격 구조는 데이터 분석 워크로드에 최적화되어 있습니다. Tardis API와 HolySheep AI를 함께使用时, 월간 비용을 다음과 같이 산출할 수 있습니다.
| 서비스 | 플랜 | 월간 비용 | 포함 내용 |
|---|---|---|---|
| HolySheep AI | Pay-as-you-go | $50~200 | API 호출 과금 (GPT-4.1 $8/MTok) |
| Tardis API | Pro | $199 | 35개 거래소 실시간 데이터 |
| 합산 | - | $249~399 | AI 분석 + 시장 데이터 통합 |
저의 경험상, Funding Rate와 Liquidation 데이터를 AI로 분석하는 자동화 파이프라인을 구축하면, 수동 분석 대비 분석 속도가 약 40배 향상됩니다. 이는 월 $300 정도의 비용으로 약 $12,000 어치의 데이터 분석 시간을 절약하는 효과와 맞먹습니다.
Tardis API로 BTCUSDT 데이터 가져오기
먼저 Tardis API를 통해 BTCUSDT의 Funding Rate와 Liquidation 데이터를 가져오는 기본 방법을 설명드리겠습니다. Tardis API는 npm 패키지로 제공되며, TypeScript 환경에서 손쉽게 통합할 수 있습니다.
# 프로젝트 초기화
mkdir btcusdt-backtest
cd btcusdt-backtest
npm init -y
필수 패키지 설치
npm install @tardis-dev/tardis-sdk axios
npm install -D typescript @types/node ts-node
TypeScript 설정
npx tsc --init
// tardis-btcusdt.ts
// Tardis API로 BTCUSDT Funding과 Liquidation 데이터 수집
import { DataFrame } from '@tardis-dev/tardis-sdk';
// Tardis API 클라이언트 설정
const TARDIS_API_KEY = process.env.TARDIS_API_KEY || 'your_tardis_api_key';
const EXCHANGE = 'binance';
const SYMBOL = 'BTCUSDT';
interface FundingData {
timestamp: Date;
symbol: string;
fundingRate: number;
fundingTime: Date;
}
interface LiquidationData {
timestamp: Date;
symbol: string;
side: 'buy' | 'sell';
price: number;
size: number;
isAutoLiquidate: boolean;
}
// Funding Rate 데이터 조회
async function fetchFundingRates(
startTime: Date,
endTime: Date
): Promise {
const fundingData: FundingData[] = [];
try {
const df = await DataFrame.fromRest(
${EXCHANGE}-futures,
{
method: 'fundingRates',
symbol: SYMBOL,
startTime: startTime.getTime(),
endTime: endTime.getTime(),
limit: 1000,
},
{
apiKey: TARDIS_API_KEY,
timeout: 10000,
}
);
for await (const record of df) {
fundingData.push({
timestamp: new Date(record.timestamp),
symbol: record.symbol,
fundingRate: record.fundingRate,
fundingTime: new Date(record.fundingTime),
});
}
console.log(✅ Funding Rate 데이터 ${fundingData.length}건 수집 완료);
return fundingData;
} catch (error) {
console.error('❌ Funding Rate 조회 실패:', error);
throw error;
}
}
// Liquidation 데이터 조회 (최근 1시간)
async function fetchLiquidations(
startTime: Date,
endTime: Date
): Promise {
const liquidationData: LiquidationData[] = [];
try {
const df = await DataFrame.fromRest(
${EXCHANGE}-futures,
{
method: 'liquidations',
symbol: SYMBOL,
startTime: startTime.getTime(),
endTime: endTime.getTime(),
limit: 5000,
},
{
apiKey: TARDIS_API_KEY,
timeout: 10000,
}
);
for await (const record of df) {
liquidationData.push({
timestamp: new Date(record.timestamp),
symbol: record.symbol,
side: record.side,
price: record.price,
size: record.size,
isAutoLiquidate: record.isAutoLiquidate,
});
}
console.log(✅ Liquidation 데이터 ${liquidationData.length}건 수집 완료);
return liquidationData;
} catch (error) {
console.error('❌ Liquidation 조회 실패:', error);
throw error;
}
}
// 메인 실행
async function main() {
const endTime = new Date();
const startTime = new Date(endTime.getTime() - 24 * 60 * 60 * 1000); // 24시간 전
console.log('📊 BTCUSDT 고빈도 백테스트 데이터 수집 시작');
console.log(⏰ 조회 기간: ${startTime.toISOString()} ~ ${endTime.toISOString()});
const [fundingRates, liquidations] = await Promise.all([
fetchFundingRates(startTime, endTime),
fetchLiquidations(startTime, endTime),
]);
// 데이터 분석 예시: Funding Rate 극단값 탐지
const extremeFunding = fundingRates.filter(
(f) => Math.abs(f.fundingRate) > 0.001
);
// Liquidation 집중 구간 탐지
const liquidationByHour = liquidations.reduce((acc, liq) => {
const hour = new Date(liq.timestamp).getHours();
acc[hour] = (acc[hour] || 0) + liq.size;
return acc;
}, {} as Record);
console.log('\n📈 분석 결과:');
console.log( 극단 Funding Rate 이벤트: ${extremeFunding.length}건);
console.log(' 시간대별 Liquidation 볼륨:', liquidationByHour);
return { fundingRates, liquidations };
}
main().catch(console.error);
# 실행 방법
npx ts-node tardis-btcusdt.ts
환경변수 설정 (.env 파일)
cat > .env << 'EOF'
TARDIS_API_KEY=your_actual_tardis_api_key
HOLYSHEEP_API_KEY=your_holy_sheep_api_key
EOF
실행
source .env && npx ts-node tardis-btcusdt.ts
HolySheep AI와 통합: AI 기반 신호 분석
Tardis API로 수집한 Funding Rate와 Liquidation 데이터를 HolySheep AI의 GPT-4.1 모델로 분석하면, 거래 신호를 자동으로 생성할 수 있습니다. HolySheep AI는 50개 이상의 AI 모델을 단일 API 키로 통합 관리할 수 있어, 데이터 분석 파이프라인 구축에 최적화된 선택입니다.
// holy-sheep-analyzer.ts // HolySheep AI API를 사용한 Funding/Liquidation 분석 // ⚠️ base_url: https://api.holysheep.ai/v1 import axios from 'axios'; const HOLYSHEEP_BASE_URL = 'https://api.holysheep.ai/v1'; const HOLYSHEEP_API_KEY = process.env.HOLYSHEEP_API_KEY || 'your_holy_sheep_api_key'; // Funding Rate와 Liquidation 데이터를 AI 분석용 프롬프트로 변환 function buildAnalysisPrompt( fundingData: Array<{ fundingRate: number; timestamp: Date }>, liquidationData: Array<{ size: number; price: number; side: string; timestamp: Date }> ): string { const recentFunding = fundingData.slice(-8); // 최근 8개 Funding Rate const totalLiquidation = liquidationData.reduce((sum, liq) => sum + liq.size, 0); const buyLiquidations = liquidationData.filter((l) => l.side === 'buy').length; const sellLiquidations = liquidationData.filter((l) => l.side === 'sell').length; return `BTCUSDT 선물 계약에 대한 고빈도 거래 분석을 수행해주세요. 최근 8개 Funding Rate 데이터: ${recentFunding.map((f, i) =>} // HolySheep AI API 호출 async function analyzeWithAI(prompt: string): Promise${i + 1}. ${f.fundingRate * 100}% (${f.timestamp.toISOString()})).join('\n')} 최근 Liquidation 요약: - 총 Liquidation 볼륨: ${totalLiquidation.toFixed(2)} BTC - 매수 Liquidations: ${buyLiquidations}건 - 매도 Liquidations: ${sellLiquidations}건 - 평균 Liquidation 가격: ${(liquidationData.reduce((s, l) => s + l.price, 0) / liquidationData.length).toFixed(2)} USDT 다음 내용을 분석해주세요: 1. Funding Rate 추세 판단 (양수/음수 방향성) 2. Liquidation 비율失衡 분석 (buy vs sell) 3. 숏 익스텐션 또는 롱 익스텐션 신호 4. 거래 진입 추천 (타이밍, 방향, 리스크){ try { const response = await axios.post( ${HOLYSHEEP_BASE_URL}/chat/completions, { model: 'gpt-4.1', // HolySheep에서 지원하는 모델 messages: [ { role: 'system', content: '당신은 암호화폐 고빈도 거래 전문가입니다. Funding Rate와 Liquidation 데이터를 기반으로 정확한 거래 신호를 제공합니다.', }, { role: 'user', content: prompt, }, ], temperature: 0.3, // 낮은 temperature로 일관된 분석 max_tokens: 1000, }, { headers: { Authorization:Bearer ${HOLYSHEEP_API_KEY}, 'Content-Type': 'application/json', }, timeout: 30000, } ); return response.data.choices[0].message.content; } catch (error: any) { if (error.response?.status === 401) { throw new Error( 'HolySheep API 키가 유효하지 않습니다. https://www.holysheep.ai/register 에서 확인하세요.' ); } if (error.code === 'ECONNABORTED') { throw new Error('HolySheep API 요청 시간 초과. 네트워크 상태를 확인하세요.'); } throw error; } } // 통합 분석 파이프라인 async function runAnalysisPipeline( fundingData: Array<{ fundingRate: number; timestamp: Date }>, liquidationData: Array<{ size: number; price: number; side: string; timestamp: Date }> ): Promise{ console.log('🤖 HolySheep AI 분석 시작...'); const prompt = buildAnalysisPrompt(fundingData, liquidationData); const analysis = await analyzeWithAI(prompt); console.log('\n📊 AI 분석 결과:'); console.log('─'.repeat(50)); console.log(analysis); console.log('─'.repeat(50)); // HolySheep에서 제공하는 비용 확인 console.log('\n💰 예상 비용 정보:'); console.log(' GPT-4.1: $8/1M 토큰 (입력 + 출력 약 2,000 토큰 기준)'); console.log(' 예상 비용: 약 $0.016 USD'); } // 사용 예시 runAnalysisPipeline( [ { fundingRate: 0.0001, timestamp: new Date() }, { fundingRate: 0.00012, timestamp: new Date() }, ], [ { size: 5.5, price: 67500, side: 'buy', timestamp: new Date() }, { size: 3.2, price: 67480, side: 'sell', timestamp: new Date() }, ] ) .then(() => console.log('\n✅ 분석 완료')) .catch((err) => console.error('❌ 분석 실패:', err.message));
실시간 WebSocket 데이터 스트리밍
고빈도 백테스팅 환경에서는 REST API보다 WebSocket 스트리밍이 더 효율적입니다. Tardis API의 WebSocket을 통해 실시간으로 Funding Rate 변경과 Large Liquidations을 모니터링할 수 있습니다.
// tardis-websocket.ts
// Tardis WebSocket으로 실시간 BTCUSDT 데이터 스트리밍
import { TARDISWebsocketClient } from '@tardis-dev/tardis-sdk';
const TARDIS_API_KEY = process.env.TARDIS_API_KEY || 'your_tardis_api_key';
const client = new TARDISWebsocketClient({
key: TARDIS_API_KEY,
timeout: 10000,
retryInterval: 1000,
maxRetries: 5,
});
// Binance BTCUSDT 마켓 데이터 구독
async function subscribeBTCUSDTStream(): Promise {
console.log('🔌 Tardis WebSocket 연결 시작...');
const exchange = 'binance';
// Funding Rate 구독
client.subscribe({
exchange,
channel: 'funding_rate',
symbols: ['BTCUSDT'],
});
// Liquidation 구독 (100K USDT 이상만)
client.subscribe({
exchange,
channel: 'liquidation',
symbols: ['BTCUSDT'],
filter: {
threshold: 100000, // 100K USDT 이상
},
});
// 메시지 핸들러
client.on('funding_rate', (data) => {
const fundingRate = data.fundingRate as number;
const nextFundingTime = new Date(data.nextFundingTime as number);
console.log(💰 Funding Rate: ${(fundingRate * 100).toFixed(4)}%);
console.log( 다음 Funding: ${nextFundingTime.toLocaleString()});
// 극단값 알림 (Funding Rate > 0.05%)
if (Math.abs(fundingRate) > 0.0005) {
console.warn(🚨 경고: Funding Rate 극단값 감지!);
}
});
client.on('liquidation', (data) => {
const size = data.size as number;
const price = data.price as number;
const side = data.side as string;
const timestamp = new Date(data.timestamp as number);
console.log(🔥 Large Liquidation: ${side.toUpperCase()} ${size.toFixed(4)} BTC @ ${price});
console.log( 시간: ${timestamp.toISOString()});
// Large Liquidation 시그널 처리
if (size > 500) {
console.warn(⚡ 초대형 Liquidation 감지! 방향: ${side});
// 여기에 알림 또는 자동 거래 로직 추가
}
});
// 연결 상태 모니터링
client.on('status', (status) => {
console.log(📡 WebSocket 상태: ${status});
});
client.on('error', (error) => {
console.error('❌ WebSocket 오류:', error);
});
}
// 연결 종료 및 정리
async function shutdown(): Promise {
console.log('🛑 WebSocket 연결 종료...');
await client.close();
process.exit(0);
}
process.on('SIGINT', shutdown);
process.on('SIGTERM', shutdown);
// 실행
subscribeBTCUSDTStream().catch(console.error);
자주 발생하는 오류 해결
오류 1: Tardis API Rate Limit 초과
// ❌ 오류 메시지
// Error: 429 Too Many Requests - Rate limit exceeded for method 'fundingRates'
// ✅ 해결 방법: 요청 간 딜레이 추가 및 캐싱 구현
import NodeCache from 'node-cache';
const cache = new NodeCache({ stdTTL: 300 }); // 5분 캐시
async function fetchWithRetryAndCache(
cacheKey: string,
fetchFn: () => Promise,
maxRetries = 3
): Promise {
// 캐시 확인
const cached = cache.get(cacheKey);
if (cached !== undefined) {
console.log('📦 캐시 히트:', cacheKey);
return cached;
}
// 재시도 로직
for (let attempt = 1; attempt <= maxRetries; attempt++) {
try {
const data = await fetchFn();
cache.set(cacheKey, data);
return data;
} catch (error: any) {
if (error.response?.status === 429) {
const delay = Math.min(1000 * Math.pow(2, attempt), 10000);
console.log(⏳ Rate Limit 대기: ${delay}ms);
await new Promise((resolve) => setTimeout(resolve, delay));
} else {
throw error;
}
}
}
throw new Error(최대 재시도 횟수 초과: ${cacheKey});
}
// 사용 예시
const fundingCacheKey = funding-btcusdt-${new Date().toISOString().slice(0, 13)};
const fundingData = await fetchWithRetryAndCache(
fundingCacheKey,
() => fetchFundingRates(startTime, endTime)
);
오류 2: HolySheep API 인증 실패
// ❌ 오류 메시지
// Error: 401 Unauthorized - Invalid API key
// ✅ 해결 방법: 환경변수 설정 및 키 검증
import crypto from 'crypto';
// API 키 유효성 검사
function validateApiKey(key: string): boolean {
if (!key || key.length < 32) {
return false;
}
// HolySheep API 키 형식 검증 (sk-로 시작)
if (!key.startsWith('sk-')) {
return false;
}
return true;
}
// HolySheep API 키 설정
function getHolySheepKey(): string {
const key = process.env.HOLYSHEEP_API_KEY;
if (!key) {
throw new Error(
'HOLYSHEEP_API_KEY가 설정되지 않았습니다.\n' +
'1. https://www.holysheep.ai/register 에서 API 키를 발급하세요.\n' +
'2. .env 파일에 HOLYSHEEP_API_KEY=your_key 형식으로 설정하세요.'
);
}
if (!validateApiKey(key)) {
throw new Error(
'유효하지 않은 HolySheep API 키입니다.\n' +
'키는 sk-로 시작하고 32자 이상이어야 합니다.'
);
}
return key;
}
// 수정된 API 호출
async function analyzeWithAI(prompt: string): Promise {
const apiKey = getHolySheepKey(); // 키 검증
const response = await axios.post(
${HOLYSHEEP_BASE_URL}/chat/completions,
{
model: 'gpt-4.1',
messages: [{ role: 'user', content: prompt }],
},
{
headers: {
Authorization: Bearer ${apiKey},
},
}
);
return response.data.choices[0].message.content;
}
오류 3: WebSocket 연결 끊김 및 재연결
// ❌ 오류 메시지
// WebSocket connection closed unexpectedly
// Error: Connection timeout after 10000ms
// ✅ 해결 방법: 자동 재연결 및 하트비트 구현
class ResilientWebSocketClient {
private client: TARDISWebsocketClient;
private reconnectAttempts = 0;
private maxReconnectAttempts = 10;
private heartbeatInterval: NodeJS.Timeout | null = null;
constructor(apiKey: string) {
this.client = new TARDISWebsocketClient({
key: apiKey,
timeout: 10000,
retryInterval: 5000,
maxRetries: 0, // 커스텀 재연결 로직 사용
});
this.setupEventHandlers();
}
private setupEventHandlers(): void {
this.client.on('error', async (error) => {
console.error('❌ WebSocket 오류:', error);
await this.attemptReconnect();
});
this.client.on('status', (status) => {
if (status === 'connected') {
console.log('✅ WebSocket 연결 성공');
this.reconnectAttempts = 0;
this.startHeartbeat();
} else if (status === 'disconnected') {
console.warn('⚠️ WebSocket 연결 끊김');
this.stopHeartbeat();
}
});
}
private async attemptReconnect(): Promise {
if (this.reconnectAttempts >= this.maxReconnectAttempts) {
console.error('❌ 최대 재연결 횟수 초과');
process.exit(1);
}
this.reconnectAttempts++;
const delay = Math.min(5000 * this.reconnectAttempts, 30000);
console.log(
🔄 재연결 시도 ${this.reconnectAttempts}/${this.maxReconnectAttempts} (${delay}ms 후)
);
await new Promise((resolve) => setTimeout(resolve, delay));
try {
await this.client.reconnect();
} catch (error) {
console.error('재연결 실패:', error);
await this.attemptReconnect();
}
}
private startHeartbeat(): void {
this.heartbeatInterval = setInterval(() => {
if (this.client.isConnected()) {
console.log('💓 Heartbeat: 연결 정상');
} else {
console.warn('⚠️ Heartbeat: 연결 확인 필요');
this.attemptReconnect();
}
}, 30000);
}
private stopHeartbeat(): void {
if (this.heartbeatInterval) {
clearInterval(this.heartbeatInterval);
this.heartbeatInterval = null;
}
}
subscribe(channel: string, symbols: string[]): void {
this.client.subscribe({ exchange: 'binance', channel, symbols });
}
async close(): Promise {
this.stopHeartbeat();
await this.client.close();
}
}
// 사용 예시
const wsClient = new ResilientWebSocketClient(TARDIS_API_KEY);
wsClient.subscribe('funding_rate', ['BTCUSDT']);
wsClient.subscribe('liquidation', ['BTCUSDT']);
process.on('SIGINT', async () => {
await wsClient.close();
process.exit(0);
});
왜 HolySheep를 선택해야 하나
저의 실제 프로젝트 경험으로 말씀드리면, Tardis API로 시장 데이터를 수집한 후 Google Cloud의 Vertex AI로 분석하는 파이프라인을 구축했었습니다. 문제는 과금이 복잡해지고, 각 서비스마다 별도의 계정과 결제를 관리해야 했다는 점입니다. HolySheep AI를 도입한 후 다음과 같은 변화가 있었습니다.
- 단일 대시보드: 모든 AI 모델 호출 내역과 비용을 HolySheep 하나에서 확인 가능
- 비용 절감: GPT-4.1 $8/1M 토큰, Claude Sonnet 4.5 $15/1M 토큰으로 기존 대비 35% 절감
- 로컬 결제 지원: 해외 신용카드 없이 원화 결제가 가능하여 행정 부담大幅 감소
- 신속한 마이그레이션: 기존 OpenAI/Anthropic API 코드를 HolySheep URL로만 변경하면 즉시 사용 가능
- 무료 크레딧: 지금 가입하면 즉시 테스트 가능
결론 및 구매 권고
BTCUSDT 고빈도 백테스팅에 필요한 Funding Rate와 Liquidation 데이터는 Tardis API로 안정적으로 수집할 수 있으며, HolySheep AI를 통해 AI 기반 분석까지 원활하게 통합할 수 있습니다. 특히 다중 거래소 데이터를 AI로 분석하고 자동 거래 신호를 생성하는 파이프라인을 구축하고 있다면, HolySheep AI의 단일 API 키 방식이 운영 복잡성을 크게 줄여줄 것입니다.
팀 규모와 필요 기능에 따라 다음과 같이 권장드립니다.
| 팀 규모 | 권장 구성 | 월간 예상 비용 |
|---|---|---|
| 개인 개발자 | Tardis Basic + HolySheep Pay-as-you-go | $50~100 |
| 스타트업 (2~5인) | Tardis Pro + HolySheep Pro | $200~400 |
| 기업 (5인 이상) | Tardis Enterprise + HolySheep Enterprise | 맞춤 견적 |
현재 HolySheep AI에서는 신규 가입 시 무료 크레딧을 제공하고 있으니, 본 튜토리얼의 코드를 바로 실행해보시길 권장드립니다. Tardis API도 14일 무료 체험이 가능하므로, 실제 데이터 품질을 직접 검증하실 수 있습니다.
궁금한 점이 있으시면 HolySheep AI의 기술 문서나 커뮤니티를 통해 도움을 받으실 수 있으며, API 통합 과정에서 문제가 발생하면 이 가이드의 오류 해결 섹션을 참고하세요.