도메인 특화 (LoRA + RAG)
2026-04-04 작성2026-07-17 수정10분 읽기
범용 LLM을 금융/통신/제조 등 특정 도메인에 최적화하여 코딩 퀄리티를 대폭 향상시키는 3단계 전략을 제공합니다.
핵심 질문
"왜 Claude나 GPT로 생성한 코드가 우리 회사 표준을 따르지 않을까?" → 모델이 여러분의 도메인 지식을 학습하지 못했기 때문입니다.
3개 레이어 상세
도메인 특화는 Steering → RAG → LoRA 순으로 점진적으로 적용합니다.
Layer 1: Steering (즉시 적용)
정의: spec 파일로 코딩 규칙을 명시적으로 정의하여 LLM에게 지시합니다.
장점:
- 즉시 적용 가능
- 비용 없음
- 유지보수 간편 (spec 파일만 수정)
단점:
- 복잡한 도메인 로직은 한계
- 컨텍스트 윈도우 낭비
예시:
# coding-standards.md
## 코딩 컨벤션
- 클래스명: PascalCase
- 메서드명: camelCase
- 상수: UPPER_SNAKE_CASE
## 트랜잭션 처리
- 모든 DB 작업은 @Transactional 필수
- 롤백 조건: RuntimeException 발생 시
## 로깅 표준
- 진입점: log.info("Method {} started", methodName)
- 예외: log.error("Error in {}: {}", methodName, e.getMessage())
Layer 2: RAG (1-2주)
정의: 내부 문서를 벡터 DB에 임베딩하여 실시간으로 검색, 관련 정보를 프롬프트에 포함합니다.
장점:
- 최신 문서 자동 반영 (재학습 불필요)
- 내부 API 스펙 정확도 높음
- 모델 가중치 변경 없음
단점:
- 인프라 필요 (Milvus, Neo4j)
- 검색 품질이 출력 품질에 직결
- 임베딩 비용
예시:
from langchain.vectorstores import Milvus
from langchain.embeddings import OpenAIEmbeddings
# 1. 내부 API 문서 임베딩
embeddings = OpenAIEmbeddings()
vectorstore = Milvus.from_documents(
documents=internal_api_docs,
embedding=embeddings,
connection_args={"host": "milvus.cluster.local", "port": 19530}
)
# 2. 질문과 관련된 문서 검색
query = "사용자 인증 API 호출 방법은?"
docs = vectorstore.similarity_search(query, k=3)
# 3. 검색 결과 + 질문을 LLM에 전달
prompt = f"Context: {docs}\n\nQuestion: {query}"
Layer 3: LoRA (1-2개월)
정의: 모델 가중치 자체를 도메인 데이터로 조정하여 도메인 전문가 수준의 출력을 생성합니다.
장점: 일관된 코드 스타일, 도메인 용어 정확도 최고, 복잡한 패턴 학습 단점: GPU 학습 비용 ($2,000), 학습 데이터 수집 필요
Kiro GLM-5 vs 자체 호스팅
Kiro IDE는 2026년 4월부터 GLM-5를 네이티브 지원하며 즉시 사용 가능합니다. 하지만 LoRA Fine-tuning, 멀티 고객 LoRA 핫스왑, 컴플라이언스 자체 통제는 자체 호스팅에서만 가능합니다. 권장: 프로토타이핑은 Kiro, 프로덕션 도메인 특화는 자체 호스팅
실제 LoRA 학습·배포 파이프라인 구현은 커스텀 모델 파이프라인 — LoRA 학습·배포 파이프라인 (도메인 특화)를 참조하세요. QLoRA GPU 절감, 학습 데이터 형식, NeMo/Unsloth 프레임워크, 체크포인트 관리, Multi-LoRA 핫스왑 배포 설정이 포함되어 있습니다.
시나리오별 필요 레이어 테이블
| 요구사항 | Layer 1 (Steering) | Layer 2 (RAG) | Layer 3 (LoRA) | 권장 조합 |
|---|---|---|---|---|
| 코딩 컨벤션 | ✅ 충분 | △ 과도 | ❌ 불필요 | Layer 1 |
| 내부 API 사용 | △ 부족 | ✅ 필수 | ❌ 불필요 | Layer 1 + 2 |
| 도메인 전문 용어 | ❌ 한계 | △ 보조 | ✅ 필요 | Layer 2 + 3 |
| SOC2 절차 | ✅ Playbook으로 충분 | ❌ 불필요 | ❌ 불필요 | Layer 1 |
| 일관된 코드 스타일 | △ 기본만 | △ 보조 | ✅ 가장 효과적 | Layer 1 + 3 |
| 레거시 전환 패턴 | ❌ 불가능 | △ 예시 제공 | ✅ 핵심 | Layer 2 + 3 |
비용 대비 효과
- Layer 1만: 무료, 60% 개선
- Layer 1 + 2: 인프라 비용, 80% 개선
- Layer 1 + 2 + 3: $2,000, 95% 개선