diff --git a/book/300_architecture/311_FastAPI_구조_원칙.md b/book/300_architecture/311_FastAPI_구조_원칙.md index 76369ee..5309bbc 100644 --- a/book/300_architecture/311_FastAPI_구조_원칙.md +++ b/book/300_architecture/311_FastAPI_구조_원칙.md @@ -365,7 +365,14 @@ utils - **실제 테스트 필수**: 코드 수정 후 추측하지 말고 실제로 테스트 (curl, Slack 직접 사용, DB 조회) - **Git 커밋 확인**: 각 프로젝트 폴더에서 개별 확인 (루트에서 확인 금지) -## 19. 모범 사례 참고 +## 19. 스케줄러 모듈 import 오류 체크 원칙 + +- **문법 오류로 인한 조용한 실패**: 스케줄러 시작 시 모듈 import 과정에서 문법 오류가 있으면 작업이 등록되지 않음 +- **try-except 블록 구조 확인**: `try` 없이 `except`/`finally`만 있으면 문법 오류 발생 +- **로그 확인 필수**: 스케줄러 시작 로그에서 "Failed to register job" 에러 확인 (`docker logs [컨테이너] | grep -i "failed to register"`) +- **교훈**: 문법 오류로 인해 스케줄러 작업이 조용히 실패할 수 있음. 모듈 import 단계에서 오류 발생 시 전체 작업이 실행되지 않음 + +## 20. 모범 사례 참고 본 문서는 FastAPI 커뮤니티의 다음 모범 사례를 반영하였습니다: diff --git a/book/300_architecture/313_Gemini_프롬프트_설계_원칙.md b/book/300_architecture/313_Gemini_프롬프트_설계_원칙.md index 1eee6d8..351e465 100644 --- a/book/300_architecture/313_Gemini_프롬프트_설계_원칙.md +++ b/book/300_architecture/313_Gemini_프롬프트_설계_원칙.md @@ -211,6 +211,14 @@ The answer is: - 감정 기반 동적 프롬프트 조합 시 퓨샷 예시 활용 - 사용자별 개인화 프롬프트 오버라이드 시 컨텍스트 구조화 +## 11. LLM 생성 콘텐츠 이모지 제거 원칙 + +- **이모지 사용 금지**: LLM이 생성하는 모든 콘텐츠(일기, 응답, 요약 등)에서 이모지 사용 금지 +- **이중 방어 전략**: 프롬프트에 명시 + 후처리 함수로 제거 (프롬프트만으로는 LLM이 이모지를 사용할 수 있음) +- **후처리 함수 필수**: LLM 생성 결과에 이모지 제거 함수 적용 (`_remove_emojis` 등) +- **이모지 패턴**: `\U0001F300-\U0001F9FF`, `\U00002600-\U000027BF` 등 주요 이모지 범위 포함 +- **검증 방법**: 생성된 콘텐츠에서 이모지 패턴 정규식으로 확인 + --- ## 참고 자료