뻔한 벤치마크 돌리는 거 말고, 실제 소프트웨어 엔지니어링 파이프라인을 태워봤어. 구형 vBulletin 포럼용 비공식 REST API랑 MCP 서버를 만드는 거였지.
프롬프트 1 (사이트 아키텍처 및 분석): 모델한테 타겟 사이트 구조 파악하라고 시켰어. 구조 분석, 긁어올 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 ---------------------------------------------------------