뻔한 벤치마크 돌리는 거 말고, 실제 소프트웨어 엔지니어링 파이프라인을 태워봤어. 구형 vBulletin 포럼용 비공식 REST API랑 MCP 서버를 만드는 거였지.
모델한테 타겟 사이트 구조 파악하라고 시켰어. 구조 분석, 긁어올 HTML 노드, 예상 JSON 페이로드, 스택 선정, 페이지네이션 로직, 세션 인증, 검색 엔드포인트까지 포함해서 약 1,500줄짜리 마크다운 명세서를 완벽하게 뽑아내더라. 내가 직접 썼으면 이 정도로 꼼꼼하게는 못 했을 듯.
프롬프트 2 (개발 아키텍처): 위에서 만든 명세서를 유일한 진실 공급원(Single Source of Truth)으로 삼아서, 9단계 실행 계획으로 나뉜 모듈형 NestJS API 구현 설계를 짰어.
1단계: 프로젝트 스캐폴딩
2단계: 도메인 모델
3단계: 스크래핑 코어 (HTTP + 속도 제한 + 재시도)
4단계: HTML 파서 (cheerio)
5단계: 캐시 레이어
6단계: 애플리케이션 서비스 + REST API
7단계: 인증 (쿠키 세션)
8단계: MCP 서버 (핵심 결과물)
9단계: 강화, 문서화 및 배포
프롬프트 3 (자율 에이전트 실행): 이게 진짜 테스트지. OpenCode(Qwen 3.8 27B 사용)한테 오케스트레이터 역할만 맡기고, 각 단계별로 서브 에이전트들을 생성하게 시켰어. 약 2시간 동안 알아서 돌아가더라. 컨텍스트 제한에 가까워지니까 OpenCode가 알아서 상태 요약하고 계속 빌드함. 유닛 테스트 짜고, 린팅 적용하고, 기능 완벽하게 돌아가는 코드까지 뽑아냈어. 엣지 케이스 raw HTML 페이로드 들어왔을 때 자동 수정 한 번 해준 거 빼고는 손댈 게 없었음.
llama.cpp 설정 파일
내가 쓰는 --models-preset 라우터 설정 파일이야. 27B 프로필에서 fit = off를 쓰면서도 ctx-size = 73728 (73k)이랑 q4_1 KV 캐시 양자화를 써서, 네이티브 MTP 성능은 챙기면서 VRAM 할당을 최대로 뽑아낸 거 보이지?
# ==============================================================================
# LLAMA.CPP — INFERENCE CONFIGURATION (router mode / --models-preset)
# ==============================================================================
# Hardware Target:
# GPU: 16 GB VRAM (RTX 5060 Ti)
# CPU: Intel N100, 4C/4T (Debian Headless)
# ------------------------------------------------------------------------------
# GLOBAL / BASELINE
# ------------------------------------------------------------------------------
[*]
# --- CPU THREADING -----------------------------------------------------------
# Reserve 1 core for OS/services during decode.
# Use all 4 threads during prompt prefill bursts.
threads = 3 threads-batch = 4
# --- SERVER / CONCURRENCY ---------------------------------------------------
# Single slot, disabled continuous batching for maximum single-user throughput.
parallel = 1 cont-batching = 0
--- GPU / VRAM FIT ---------------------------------------------------------