챕터별 상세
프로젝트 구조 및 로깅 시스템 설정
프로젝트의 기본 폴더 구조를 생성하고 structlog 라이브러리를 활용한 커스텀 로깅 시스템을 구축했다. 표준 logging 모듈 대신 JSON 형식의 구조화된 로그를 생성하여 클라우드 환경에서도 쉽게 모니터링할 수 있도록 설계했다. 로그 파일은 타임스탬프 기반으로 자동 생성되며 콘솔과 파일에 동시에 기록된다.
python
import structlog
import logging
def configure_logger():
structlog.configure(
processors=[
structlog.processors.TimeStamper(fmt="iso"),
structlog.processors.JSONRenderer(),
],
logger_factory=structlog.stdlib.LoggerFactory(),
)
return structlog.get_logger()structlog를 사용하여 JSON 형식의 구조화된 로깅을 설정하는 코드
커스텀 예외 처리 모듈 구현
에이전트 실행 중 발생하는 런타임 오류를 상세히 추적하기 위해 ResearchAnalystException 클래스를 정의했다. 이 클래스는 오류가 발생한 파일명, 라인 번호 및 전체 트레이스백 정보를 캡처하여 반환한다. 이를 통해 복잡한 에이전트 워크플로 내에서 디버깅 효율성을 극대화했다.
python
class ResearchAnalystException(Exception):
def __init__(self, error_message, error_details):
super().__init__(error_message)
self.error_message = error_message
self.error_details = error_details
def __str__(self):
return f"Error in {self.error_details['file_name']} at line {self.error_details['line_number']}: {self.error_message}"오류 발생 위치와 상세 정보를 캡처하는 커스텀 예외 클래스 구현
YAML 기반 설정 로더 구축
모델 이름, 온도, 토큰 제한 등 에이전트 설정을 코드와 분리하기 위해 YAML 파일을 도입했다. config_loader.py를 통해 환경 변수 또는 로컬 경로에서 설정을 동적으로 읽어오는 기능을 구현했다. 이를 통해 코드 수정 없이 설정 파일만 변경하여 모델이나 파라미터를 교체할 수 있는 유연성을 확보했다.
python
import yaml
def load_config(config_path):
with open(config_path, 'r') as file:
return yaml.safe_load(file)YAML 설정 파일을 읽어 Python 딕셔너리로 변환하는 로더 함수
멀티 모델 로더 및 API 키 관리
OpenAI, Google Gemini, Groq 등 다양한 LLM 공급자를 지원하는 통합 모델 로더를 작성했다. ApiKeyManager를 통해 여러 서비스의 API 키를 안전하게 로드하고 관리하며, ModelLoader 클래스에서 LangChain 인터페이스를 사용하여 각 모델 인스턴스를 생성한다. 실제 테스트를 통해 프롬프트 응답과 로그 기록 과정을 확인했다.
용어 해설
- 구조화된 로깅 라이브러리(structlog)
- — Python에서 로그를 JSON과 같은 구조화된 데이터 형식으로 출력하도록 돕는 라이브러리이다. 로그를 기계가 읽기 쉬운 형태로 생성하여 클라우드 모니터링 시스템과의 연동 및 분석 효율성을 높인다.
- 트레이스백(Traceback)
- — 프로그램 실행 중 예외가 발생했을 때 호출 스택의 상태를 역순으로 보여주는 보고서이다. 오류가 발생한 파일 경로, 함수, 라인 번호를 포함하여 디버깅의 핵심 정보를 제공한다.
- 야멜(YAML)
- — 사람이 읽기 쉬운 데이터 직렬화 양식으로, 주로 설정 파일 작성에 사용된다. 계층 구조를 공백으로 표현하며 JSON보다 가독성이 좋아 복잡한 모델 파라미터 관리에 적합하다.
- 랭체인(LangChain)
- — LLM을 활용한 애플리케이션 개발을 돕는 프레임워크이다. 다양한 모델 공급자와의 통합 인터페이스를 제공하여 모델 교체 및 에이전트 워크플로 구성을 표준화한다.
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 02. 18.수집 2026. 02. 21.출처 타입 YOUTUBE
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.