# router._call_internal_llm 서비스 계층 이동

**날짜**: 2025-12-23
**작성자**: happybell80
**관련 파일**: `app/router/router.py:321`, `app/services/llm/internal_llm_service.py`

---

## 문제 상황

- `router.py`에 `_call_internal_llm` 메서드가 비즈니스 로직 포함
- 계층 분리 원칙 위반: router는 HTTP 처리만, 비즈니스 로직은 services에

## 해결 방안

- `app/services/llm/internal_llm_service.py` 생성
- `call_internal_llm` 함수로 이동 (감정 분석, 윤리 확인, 이모지 제거 포함)
- 호출부 수정: `message_service.py:500,616`, `main.py:121,536,583`, `llm_endpoint.py:35,73,104`, `dm_skill.py:337`
- `router.py:321-442`에서 `_call_internal_llm` 제거

## 구현 완료

- 서비스 생성 완료
- 모든 호출부 수정 완료
- router에서 제거 완료
- 테스트 통과 확인

## 교훈

- 계층 분리 원칙 준수: router는 라우팅만, 비즈니스 로직은 services로
- TDD 접근: 테스트 작성 → 구현 → 리팩토링 순서로 진행
- 문서 작성 원칙 준수: 파일명:줄번호로 위치 명시, 핵심만 간결하게

