자연어만으로 알고리즘 트레이딩 전략 생성부터 검증까지
◉ 빠른 시작 • ◉ 자연어 예시 • ◉ 도구 목록 • ◉ 아키텍처
[서울대학교 빅데이터 핀테크 고급전문가 과정 X 교보증권] 캡스톤 프로젝트로 진행된 프로젝트입니다.
하단의 5명의 학생이 진행한 프로젝트입니다.
Copyright © 2026 Individual Contributors. All Rights Reserved.
![]() 김상훈 @shkim207 |
![]() 박정원 @p-garden |
![]() 심지용 @Jiyong2580 |
![]() 천인범 @bigdatafintech0819 |
![]() 황현상 @hyunsanghwang |
최종 업데이트: 2026.01.08.
자연어로 전략을 만드는 시대가 왔습니다. AlgoTrading Research MCP Server는 다음을 제공합니다:
✨ 전략 생성: 자연어로 계량 전략을 즉시 생성, 검증된 템플릿 기반
📊 백테스트: 다중 자산, 분할 진입, 부분 청산, 페어 트레이딩 등 고급 기능 지원
🎯 전략 최적화: 과적합 방지를 위한 강건한 검증 시스템
🔄 전략 생애주기 관리: 생성, 수정, 등록, 삭제, 복사를 자연어로 완전 제어
⚙️ 과적합 방지: Walk-Forward, CPCV, MRCV 교차검증으로 과최적화 방지
📈 포트폴리오 전략: 여러 전략을 조합한 메타전략 구축 및 백테스트
🔐 보안: 로컬 호스팅, 데이터 외부 유출 없음
⚡ 고성능 코어: 비동기 처리, Parquet 캐싱으로 5~10배 빠른 데이터 로드
🤖 AI 네이티브: Claude, GPT 등 MCP 호환 AI와 즉시 연동
💡 토큰 최적화: Proxy 패턴으로 82% 토큰 절감 (26개 → 8개 툴)
2분 안에 시작하기:
- Python 3.12+
- uv (권장) 또는 pip
# 로컬 실행
python main.py # http://localhost:8000
# 백그라운드 실행
python main.py & ngrok http 8000 원격 접속 (ngrok):
# 서버를 백그라운드로 실행
python main.py &
# ngrok으로 터널링
ngrok http 8000 # https://xxxx.ngrok-free.appClaude Desktop (권장):
설정 → Connectors → https://xxxx.ngrok-free.app/mcp 추가
이제 AI와 대화하듯 전략을 만들 수 있습니다:
"KOSDAQ150 선물로 RSI 14일 기준 과매도/과매수 평균 회귀 전략을 만들어서 2024년 백테스트해줘"
이 MCP 서버는 자연어 인터페이스를 위해 설계되었습니다. AI 어시스턴트에게 복잡한 금융 분석을 지시하세요.
"RSI(2) 기반 평균 회귀 전략을 만들어줘:
- 자산: KOSDAQ150 선물
- 진입: RSI < 30
- 청산: RSI > 70
- 2024년 전체 기간 백테스트하고 샤프 비율과 MDD 알려줘"
"다음과 같은 피라미딩 전략을 구현해줘:
1. 기본 설정
- 자산: KOSPI200 선물
- 타임프레임: 5분봉
2. 진입 로직 (분할 진입)
- 1차 진입: MACD 골든크로스 + RSI < 50, 포지션 30%
- 2차 진입: 1차 진입 후 가격 2% 상승 시, 추가 30%
- 3차 진입: 2차 진입 후 가격 3% 추가 상승 시, 마지막 40%
3. 청산 로직 (부분 청산)
- 50% 익절: 평균 진입가 대비 5% 상승
- 30% 익절: 평균 진입가 대비 8% 상승
- 20% 손절: 평균 진입가 대비 3% 하락
4. 백테스트: 2024년 1월 ~ 12월
5. 결과: 거래 횟수, 평균 보유 기간, 승률, 손익비, 샤프 비율 리포트"
"KOSPI200과 KOSDAQ150 선물 간 페어 트레이딩 전략 만들어줘:
1. 공적분 검정으로 두 자산이 장기 균형 관계인지 확인 (2023년 데이터)
2. Z-score 계산 (20일 롤링 윈도우)
3. 진입 조건:
- Z-score > 2: KOSPI200 숏 + KOSDAQ150 롱
- Z-score < -2: KOSPI200 롱 + KOSDAQ150 숏
4. 청산: Z-score가 0에 근접 (±0.5 이내)
5. 2024년 백테스트하고 각 자산별 수익률과 전체 포트폴리오 샤프 비율 보고"
"여러 전략을 결합한 메타전략 만들어줘:
1. 구성 전략:
- rsi2_mean_reversion (RSI 역추세)
- macd_obv_intraday (MACD + OBV)
- vwap_breakout (VWAP 돌파)
2. 포트폴리오 최적화:
- 방법: Sharpe Ratio 최대화
- 제약: 각 전략 최소 10%, 최대 50% 비중
- 리밸런싱: 월간
3. 백테스트 기간: 2023-2024년
4. 벤치마크: 동일 비중 포트폴리오 대비 성과 비교"
"RSI 전략의 최적 파라미터를 찾아줘:
1. 파라미터 그리드:
- rsi_period: [2, 5, 10, 14, 20]
- rsi_lower: [20, 25, 30]
- rsi_upper: [70, 75, 80]
- stop_loss: [1%, 2%, 3%]
2. 최적화 방법: Walk-Forward Analysis
- 인샘플: 6개월
- 아웃샘플: 3개월
3. 평가 지표: Sharpe Ratio
4. 과최적화 검증: PBO (Probability of Backtest Overfitting) 계산
5. 최종 선정: PBO < 50%, 아웃샘플 샤프 > 1.0인 파라미터 세트
6. HTML 리포트 생성 및 결과 요약"
실제 사용 사례를 영상으로 확인하세요. 자연어로 전략을 생성하고 백테스트하는 전 과정을 보여드립니다.
자연어 프롬프트로 즉시 전략 코드를 생성하고 검증하는 과정:
영상 내용: RSI 기반 평균 회귀 전략 생성, 코드 검증, 자동 등록
🎬 [전략 생성 시연 영상]
2.mp4
자연어 → 전략 코드 → 자동 검증 → 등록
등록된 전략을 실제 데이터로 백테스트하고 성과를 분석:
영상 내용: 전략 백테스트 실행, 수익률/MDD/샤프 비율 확인
🎬 [전략 백테스트 시연 영상]
2.mp4
백테스트 실행 → 성과 지표 → 리포트까지 즉시 확인
Walk-Forward 검증으로 최적 파라미터를 탐색하고 과적합을 방지:
영상 내용: 파라미터 그리드 설정, Walk-Forward 최적화, 최적 파라미터 선정 -> 등록
🎬 [전략 최적화 시연 영상]
2.mp4
파라미터 탐색 → Train/Test 검증 → 강건한 파라미터 선정 → 등록
여러 전략을 조합한 포트폴리오 메타전략 구축 및 백테스트:
영상 내용: 다중 전략 선택, 포트폴리오 가중치 최적화, 리밸런싱, 통합 성과 분석
🎬 [메타전략 백테스트 시연 영상]
2.mp4
NCO 전략으로 메타전략 백테스트 진행
이 서버는 Proxy 패턴을 사용하여 토큰 효율성을 극대화합니다.
토큰 최적화:
- 26개 개별 도구 → 8개 통합 도구 (82% 절감: 31.7k → 5.7k tokens)
- 내부 실제 도구: 29개 (기능 유지)
- get/call 패턴: 카테고리별 조회 + 통합 실행
| Tool | 설명 | 반환 내용 |
|---|---|---|
get_strategy_creation_tools |
전략 생성 도구 정보 | 4개 도구 (요구사항, 가이드, 검증, 저장) |
get_strategy_management_tools |
전략 관리 도구 정보 | 5개 도구 (조회, 수정, 인증, 삭제, 복사) |
get_meta_strategy_creation_tools |
메타전략 생성 도구 정보 | 4개 도구 (요구사항, 가이드, 검증, 저장) |
get_meta_strategy_management_tools |
메타전략 관리 도구 정보 | 5개 도구 (조회, 수정, 인증, 삭제, 복사) |
get_backtest_strategy_tools |
전략 백테스트 도구 정보 | 3개 도구 (백테스트, 상태, 자산목록) |
get_backtest_meta_strategy_tools |
메타전략 백테스트 도구 정보 | 3개 도구 (백테스트, 상태, 전략목록) |
get_optimization_tools |
최적화 도구 정보 | 5개 도구 (가이드, 그리드서치, CV 등) |
| Tool | 설명 | 핵심 파라미터 |
|---|---|---|
call_algotrading_research_tool |
모든 도구 통합 실행 | tool_name, params (dict) |
전략 생성 (4개)
confirm_strategy_requirements- [1/4] 요구사항 분석 및 확인get_strategy_guide- [2/4] 전략 코드 작성 가이드validate_strategy_implementation- [3/4] 작성 코드 검증save_strategy- [4/4] 사용자 승인 후 저장
전략 관리 (5개)
get_strategies_info- 전략 정보 조회 (목록/상세/코드/성과)update_strategy- 기존 전략 코드 수정certify_strategy- uncertificated → certificateddelete_strategy- 전략 삭제copy_strategy- 전략 복사
메타전략 생성 (4개)
confirm_meta_strategy_requirements- [1/4] 요구사항 분석get_meta_strategy_guide- [2/4] 메타전략 가이드validate_meta_strategy_implementation- [3/4] 코드 검증save_meta_strategy- [4/4] 저장
메타전략 관리 (5개)
get_meta_strategies_info- 메타전략 정보 조회update_meta_strategy- 메타전략 수정certify_meta_strategy- 인증delete_meta_strategy- 삭제copy_meta_strategy- 복사
전략 백테스트 (3개)
backtest_strategy- 전략 백테스트 실행get_backtest_status- 백테스트 상태 조회list_available_assets- 사용 가능 자산 목록
메타전략 백테스트 (3개)
backtest_meta_strategy- 메타전략 백테스트get_meta_backtest_status- 상태 조회list_available_strategy_data- 사용 가능 전략 목록
최적화 (5개)
get_search_space_guide- Search Space 가이드grid_search- 그리드 서치get_grid_search_status- 그리드 서치 상태cross_validation- 교차 검증 (WF/CPCV/MRCV)get_cv_status- 교차 검증 상태
지원 교차검증 방법:
none: Grid Search (단순 그리드 탐색)walk_forward: Walk-Forward Analysis (시간 기반 분할)cpcv: Combinatorial Purged Cross-Validation (조합론적 정화 교차검증)multiple_randomized: Multiple Randomized Cross-Validation (다중 랜덤 교차검증)
1단계: 카테고리 도구 정보 확인
# 전략 생성 도구 목록 조회
tools = get_strategy_creation_tools()
# → 4개 도구 정보 반환 (이름, 설명, 파라미터 스키마)2단계: 원하는 도구 실행
# 통합 실행 도구로 실제 작업 수행
result = call_algotrading_research_tool(
tool_name="get_strategy_guide",
params={}
)🗣️ 자연어 명령 예시
User: "전략 생성에 사용할 수 있는 도구들을 보여줘" AI:
get_strategy_creation_tools()호출
User: "get_strategy_guide로 전략 작성 가이드를 가져와줘" AI:
call_algotrading_research_tool(tool_name="get_strategy_guide", params={})호출
모든 전략은 Strategy 베이스 클래스를 상속받아 구현합니다:
from src.strategy import Strategy, EntryOrder, ExitOrder
import pandas_ta as ta
class MyStrategy(Strategy):
def __init__(self):
super().__init__(
name="my_strategy",
description="내 전략 설명",
assets=["KOSDAQ150F"],
default_params={
"rsi_period": 14,
"rsi_lower": 30,
"rsi_upper": 70
},
default_timeframe="5m",
filter="short-term"
)
def common(self) -> dict:
"""사전 계산 - 한 번만 실행"""
asset = self.assets[0]
df = self.trade_df[asset]
# RSI 계산 (pandas_ta 사용)
rsi = ta.rsi(df['close'], length=self.params['rsi_period'])
self.common_cache['rsi'] = rsi
return self.common_cache
def on_bar(self) -> Tuple[List[ExitOrder], List[EntryOrder]]:
"""매 봉마다 호출 - 주문 생성"""
exits = []
entries = []
asset = self.assets[0]
current_bar = self.trade_df[asset].iloc[self.current_idx]
current_rsi = self.common_cache['rsi'].iloc[self.current_idx]
# 청산 로직
for pos in self.positions.all:
if current_rsi > self.params['rsi_upper']:
exits.append(ExitOrder(
pos.position_id,
pos.current_size,
current_bar['close'],
"rsi_overbought"
))
# 진입 로직
if current_rsi < self.params['rsi_lower']:
if len(self.positions.all) == 0:
entries.append(EntryOrder(
direction="long",
asset=asset,
size=1.0,
price=current_bar['close'],
reason="rsi_oversold"
))
return exits, entries
# 전략 인스턴스 생성 (필수)
strategy = MyStrategy()◉ common() 메서드
- 백테스트 시작 시 한 번만 실행
- 모든 기술적 지표 사전 계산
self.common_cache에 저장하여on_bar()에서 접근
◉ on_bar() 메서드
- 매 봉(bar)마다 호출
- 청산 주문(
ExitOrder)과 진입 주문(EntryOrder) 반환 self.current_idx로 현재 봉 인덱스 접근self.positions로 현재 포지션 정보 접근
◉ 고급 기능
- ✨ 다중 자산 포지션 관리
- ✨ 분할 진입 (Pyramiding)
- ✨ 부분 청산 (Partial Exit)
- ✨ 멀티 단계 익절/손절
- ✨ 트레일링 스탑
- ✨ 페어 트레이딩
- ✨ 시간 기반 조건부 청산
메타전략은 여러 전략의 수익률을 조합하여 포트폴리오를 구성합니다.
from src.strategy import MetaStrategy, MetaEntryOrder, MetaExitOrder
class MyMetaStrategy(MetaStrategy):
def __init__(self):
super().__init__(
name="my_meta_strategy",
description="멀티 전략 포트폴리오",
strategy_names=[
"rsi2_mean_reversion",
"macd_obv_intraday",
"vwap_breakout"
],
default_params={
"rebalance_frequency": "monthly",
"risk_measure": "sharpe"
}
)
def common(self) -> dict:
"""전략별 수익률 데이터 준비"""
# self.strategies_df에 각 전략 수익률 자동 로드됨
return self.common_cache
def on_bar(self) -> Tuple[List[MetaExitOrder], List[MetaEntryOrder]]:
"""메타전략 리밸런싱 로직"""
exits = []
entries = []
# 월초 리밸런싱
if self._is_month_start(self.current_idx):
# 모든 포지션 청산
for pos in self.positions.all:
exits.append(MetaExitOrder(
pos.position_id,
pos.current_size,
reason="rebalancing"
))
# 새로운 비중으로 재진입
weights = self._calculate_weights() # 샤프 비율 기반 등
for strategy_name, weight in weights.items():
entries.append(MetaEntryOrder(
strategy_name=strategy_name,
weight=weight,
reason="monthly_rebalance"
))
return exits, entries
# 메타전략 인스턴스 생성
meta_strategy = MyMetaStrategy()전략의 수치 파라미터를 자동으로 탐색하고, 교차검증을 통해 과적합을 방지하며 강건한 파라미터를 선정합니다.
교차검증 방식:
| CV 방식 | 설명 | 사용 시점 |
|---|---|---|
| Walk-Forward | Rolling/Expanding Window 방식 | 시계열 특성 유지, 기본 검증 |
| CPCV | 모든 Train/Test 조합 평가 + PBO | 과적합 확률 정량화 필요 시 |
| MRCV | 시간/자산 서브샘플링 | 다양한 시장 환경 검증 |
| Grid Search | 단순 그리드 서치 (CV 없음) | 빠른 탐색, 검증 불필요 시 |
주요 기능:
- PBO (Probability of Backtest Overfitting): CSCV 방법론 기반 과적합 확률 (0~1)
- 복합 점수 랭킹: 수익률 50% + Sharpe 50% 가중 평균
- 강건성 분석: 이웃 파라미터 기반 안정성 평가
- HTML 보고서: CV 메서드별 상세 분석 보고서 자동 생성
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
strategy_name |
str | 필수 | 최적화할 전략 이름 |
search_space |
Dict | 필수 | 검색할 파라미터 공간 |
assets |
List[str] | None | 백테스트 자산 (None=전략 기본값) |
start_date |
str | None | 시작일 (YYYY-MM-DD) |
end_date |
str | None | 종료일 (YYYY-MM-DD) |
objective |
str | "composite_score" | 최적화 목표: "composite_score", "total_return_%", "sharpe_ratio" |
max_combinations |
int | 30 | 최대 파라미터 조합 수 (초과 시 랜덤 샘플링) |
cv_method |
str | "walk_forward" | CV 방식: "walk_forward", "cpcv", "multiple_randomized", "none" |
target_periods |
int | 4 | 워크포워드 구간 수 (walk_forward) |
n_splits |
int | 5 | CV 분할 수 (cpcv) |
n_test_splits |
int | 2 | 테스트 분할 수 (cpcv) |
n_subsamples |
int | 30 | 서브샘플 수 (multiple_randomized) |
window_size_days |
int | None | 서브샘플 윈도우 크기 (multiple_randomized) |
train_test_ratio |
float | 4.0 | Train:Test 비율 (4.0 = 4:1) |
purge_gap_days |
int | 0 | Train/Test 경계 제거 일수 |
embargo_days |
int | 0 | Test 이후 제외 일수 |
max_workers |
int | 5 | 병렬 백테스트 워커 수 |
# 값 리스트 방식 (권장)
search_space = {
"k": {"values": [0.3, 0.5, 0.7, 0.9]},
"lookback": {"values": [10, 20, 30]},
"rsi_length": {"values": [14, 21, 28]}
}
# 총 조합: 4 × 3 × 3 = 36개
# range 방식 (정수/실수)
search_space = {
"length": {"range": [10, 30], "type": "int", "step": 5}, # [10, 15, 20, 25, 30]
"threshold": {"range": [0.5, 1.5], "type": "float", "step": 0.25} # [0.5, 0.75, 1.0, 1.25, 1.5]
}"rsi2_mean_reversion 전략을 Walk-Forward 방식으로 최적화해줘.
파라미터 범위:
- rsi_period: 2, 5, 10, 14
- rsi_lower: 25, 30, 35
- rsi_upper: 65, 70, 75
목표: Sharpe Ratio 최대화
기간: 2023-2024년"
시간 순서를 유지하며 학습과 검증을 반복:
Train ─────▶ Test ─────▶
Train ─────▶ Test ─────▶
Train ─────▶ Test ─────▶
장점:
- 실전과 유사한 시간 흐름 반영
- Look-ahead bias 방지
다양한 시간대 조합으로 검증:
[Train─Test] [Train─Test] [Train─Test] ...
조합론적으로 모든 경우의 수 검증
장점:
- 강건성(robustness) 극대화
- 과최적화 탐지
랜덤 샘플링으로 다양한 시나리오 검증:
Random Split 1: [Train ─── Test]
Random Split 2: [Train ─── Test]
Random Split 3: [Train ──── Test]
...
장점:
- 다양한 시장 상황 반영
- 통계적 신뢰도 향상
과최적화 확률을 정량적으로 평가:
- PBO < 50%: 과최적화 위험 낮음 ✅
- PBO ≥ 50%: 과최적화 가능성 높음
⚠️
MCP/
├── ◆ main.py # FastMCP 서버 진입점 & 설정
├── ◆ pyproject.toml # 프로젝트 의존성 관리 (uv)
├── ◆ LICENSE # 독점 라이센스
├── ◆ README.md # 이 문서
│
├── ◆ src/ # 핵심 소스 코드
│ ├── ⚙ strategy/ # 전략 시스템
│ │ ├── ▪ strategy.py # Strategy 베이스 클래스
│ │ ├── ▪ meta_strategy.py # MetaStrategy 베이스 클래스
│ │ ├── ▪ registry.py # 전략 레지스트리 (file + temporary)
│ │ └── ▪ meta_registry.py # 메타전략 레지스트리
│ │
│ ├── ⚙ core/ # 핵심 백테스팅 엔진
│ │ ├── ▪ backtester.py # 전략 백테스팅 엔진
│ │ ├── ▪ meta_backtester.py # 메타전략 백테스팅 엔진
│ │ ├── ▪ optimize_engine.py # 파라미터 최적화 (WF, CPCV, MRCV)
│ │ ├── ▪ skfolio_optimization.py # skfolio 통합 + CV 시각화
│ │ ├── ▪ data_loader.py # 데이터 로드 + Parquet 캐시
│ │ ├── ▪ position.py # Position, PositionsInfo 클래스
│ │ ├── ▪ meta_positions.py # MetaPosition, MetaPositionsInfo
│ │ └── ▪ metrics.py # 성과 지표 계산 (Sharpe, MDD 등)
│ │
│ ├── ⚙ tools/ # MCP 도구 구현
│ │ ├── ▪ data_tools.py # 데이터 조회
│ │ ├── ▪ strategy_guide_tools.py # 전략 가이드
│ │ ├── ▪ strategy_management_tools.py # 전략 CRUD
│ │ ├── ▪ strategy_validation_tools.py # 전략 검증
│ │ ├── ▪ backtest_tools.py # 전략 백테스팅
│ │ ├── ▪ optimize_tools.py # 파라미터 최적화
│ │ ├── ▪ meta_strategy_guide_tools.py # 메타전략 가이드
│ │ ├── ▪ meta_strategy_management_tools.py # 메타전략 CRUD
│ │ └── ▪ meta_backtest_tools.py # 메타전략 백테스팅
│ │
│ ├── ◆ config/ # 시스템 설정
│ │ └── settings.py # MARKET_SPECS, DATA_SOURCES, 경로
│ │
│ ├── ◆ resources/ # 리소스 및 가이드
│ │ ├── strategy_guide_resources.py # 전략 템플릿 가이드
│ │ └── meta_strategy_guide_resources.py # 메타전략 템플릿 가이드
│ │
│ └── ◆ utils/ # 유틸리티
│ └── timeframe.py # 타임프레임 리샘플링 (1m, 5m, 1h, 1d)
│
├── ◆ user/ # 사용자 작업 공간
│ ├── files/
│ │ ├── strategies/ # 사용자 전략 파일 (.py)
│ │ └── meta_strategies/ # 사용자 메타전략 파일 (.py)
│ ├── results/
│ │ ├── backtests/ # 백테스트 결과 (HTML, CSV)
│ │ └── optimization/ # 최적화 결과 (HTML, JSON)
│ ├── strategy_registry.json # temporary 전략 레지스트리
│ └── meta_strategy_registry.json # temporary 메타전략 레지스트리
│
├── ◆ data/ # 데이터 저장소
│ ├── assets/ # OHLCV 원본 데이터 (.xlsx, .csv)
│ │ └── parquet/ # Parquet 캐시 (자동 생성)
│ ├── strategies/ # 전략 백테스트 결과 데이터
│ └── meta_strategies/ # 메타전략 데이터
│
│
└── ◆ docs/ # 문서
├── optimize_strategy_guide.md
├── ON_BAR_REFACTORING_REPORT.md
└── ...
◎ 모듈형 아키텍처: 각 컴포넌트가 독립적으로 동작하며 유지보수 용이
▪ 보안 우선: 로컬 호스팅, 외부 API 의존성 없음, 데이터 유출 방지
⚡ 비동기 성능: FastMCP의 async-first 설계로 동시 처리 최적화
◆ 타입 안전성: 전체 타입 어노테이션과 mypy 검증
⚙ 확장 가능: 플러그인 기반 아키텍처로 새 전략/도구 추가 용이
📊 데이터 효율성: Parquet 캐싱으로 5~10배 빠른 데이터 로드
💡 토큰 최적화: Proxy 패턴으로 82% 토큰 절감 (31.7k → 5.7k tokens)
서버 동작을 커스터마이즈할 수 있습니다:
| 변수 | 설명 | 기본값 | 예시 |
|---|---|---|---|
MCP_TRANSPORT |
전송 방법 | streamable-http |
stdio |
MCP_HOST |
서버 호스트 | 0.0.0.0 |
127.0.0.1 |
MCP_PORT |
서버 포트 | 8000 |
3000 |
MCP_PATH |
HTTP 엔드포인트 경로 | /mcp |
/api/v1/mcp |
LOG_LEVEL |
로깅 상세도 | WARNING |
DEBUG |
src/config/settings.py에서 각 자산의 거래 조건을 설정:
MARKET_SPECS = {
"KOSDAQ150F": {
"tick_size": 0.05, # 최소 가격 단위
"commission_rate": 0.00003, # 수수료율 (0.003%)
"slippage_ticks": 1 # 슬리피지 (틱)
},
# ... 다른 자산
}Copyright © 2026 Individual Contributors. All Rights Reserved.
이 소프트웨어는 독점 소유입니다. 다음에 의해 공동 소유됩니다:
개인:
- 김상훈 (shkim207@naver.com)
- 박정원 (j2982477j@gmail.com)
- 심지용 (all300sim@gmail.com)
- 천인범 (inbum111@gmail.com)
- 황현상 (nate01204@nate.com)
- ⛔ 무단 복제, 배포, 사용 엄격히 금지
- ⛔ 명시적 서면 허가 없이 재생산, 수정, 배포 불가
- ⛔ 역공학 또는 디컴파일 금지
- ⛔ 무단 사용 시 민형사상 처벌 대상
라이센스 문의:
위 저작자들에게 직접 연락
전체 조건은 LICENSE 파일을 참조하세요.




