-
Notifications
You must be signed in to change notification settings - Fork 10
Closed
Description
현재 cli/init.py 파일에는 다음과 같은 다양한 역할이 한 곳에 혼재되어 있습니다:
- CLI 엔트리포인트 정의 (click.group, 글로벌 옵션 처리)
- 환경 변수 로딩 로직 (.env, 프롬프트 디렉토리, VectorDB 설정)
- Streamlit 실행 관련 함수 및 커맨드 (run_streamlit_command, run-streamlit 서브커맨드)
- Query 실행 관련 커맨드 (query 서브커맨드, SQL 변환 로직)
이로 인해 파일이 지나치게 커지고 복잡해져 유지보수성과 가독성이 떨어집니다.
따라서 기능별로 파일을 분리하여 코드 구조를 개선할 필요가 있습니다.
개선 방향(Proposed Changes):
- cli/init.py
- CLI 엔트리포인트(click.group)와 커맨드 등록만 남김
- cli/commands/query.py
- query_command 정의 (자연어 → SQL 변환 로직)
- cli/commands/streamlit.py
- run_streamlit_command, run_streamlit_cli_command 정의
- cli/utils/env_loader.py
- .env 파일 로드, 프롬프트 디렉토리 설정, VectorDB 환경 변수 설정 로직 이동
- (선택) cli/utils/logging.py
- 로깅 설정 관련 공통 유틸 분리
기대 효과(Benefits):
- 관심사 분리(Separation of Concerns): CLI 진입점, 쿼리 실행, Streamlit 실행, 환경 변수 로직이 명확히 분리됨
- 테스트 용이성: 각 기능을 독립적으로 단위 테스트 가능
- 확장성 확보: 새로운 CLI 커맨드를 추가할 때 cli/commands/ 디렉토리에만 추가하면 됨
- 가독성 개선: 코드 리뷰와 유지보수가 쉬워짐
ehddnr301
Metadata
Metadata
Assignees
Labels
No labels