개발일지 30(수정필요) - 명령줄 인수 기능 추가

tk7580·2025년 6월 26일

개발일지 29.5: 데이터 처리 스크립트 실행 방식 통일 (명령줄 인수 적용)

날짜

2025년 6월 26일

작업자

(사용자 닉네임)

1. 변경 목표

기존의 Python 데이터 처리 스크립트들은 처리할 데이터의 양을 조절하는 방식이 서로 달랐다. tmdb_collector.py는 명령줄 인수를 사용한 반면, anilist_collector.py, type_fixer.py, llm_enricher.py 등은 코드 내부에 하드코딩된 변수 값을 직접 수정해야 했다.

이러한 비일관성은 스크립트 사용의 불편함을 초래하고 오류를 유발할 수 있으므로, 모든 데이터 파이프라인 스크립트의 실행 방식을 명령줄 인수(Command-line Argument)로 통일하여 사용성과 유연성을 높이는 것을 목표로 한다.

2. 주요 수정 내용

Python의 argparse 라이브러리를 활용하여 아래 스크립트들의 실행 방식을 수정했다.

  • anilist_collector.py:

    • main() 함수 내부에 하드코딩되어 있던 TOTAL_PAGES_TO_FETCH 변수를 제거했다.
    • --pages 인수를 추가하여, 실행 시 python anilist_collector.py --pages 3과 같이 수집할 페이지 수를 동적으로 지정할 수 있도록 변경했다.
  • type_fixer.py:

    • main() 함수 내부에 하드코딩되어 있던 PROCESS_LIMIT 변수를 제거했다.
    • --limit 인수를 추가하여, 한 번에 교정 작업을 시도할 최대 작품 개수를 외부에서 지정할 수 있도록 개선했다.
  • llm_enricher.py:

    • type_fixer.py와 동일하게, 하드코딩된 PROCESS_LIMIT 변수를 제거하고 --limit 명령줄 인수를 사용하도록 수정했다.

3. 사용법 변경 예시

이번 수정을 통해 모든 스크립트의 대량 처리 실행 방식이 일관성 있게 변경되었다.

  • 변경 전: 스크립트 파일을 열어 내부 변수 TOTAL_PAGES_TO_FETCH = 3 과 같은 라인을 직접 수정해야 했다.
  • 변경 후: 파일을 수정할 필요 없이, 터미널에서 실행 시 인수를 통해 동적으로 처리량을 제어할 수 있다.

# 예시 1: tmdb에서 영화 타입 페이지 3개 수집
python tmdb_collector.py --pages 3 --type movie 

# 예시 2: tmdb에서 tv시리즈 타입 페이지 3개 수집
python tmdb_collector.py --pages 3 --type tv 

# 예시 3: AniList에서 5페이지 분량의 애니메이션 수집
python anilist_collector.py --pages 5

# 예시 4: 타입 교정 스크립트를 100개 작품에 대해 실행
python type_fixer.py --limit 100

# 예시 5: 데이터 보강 스크립트를 50개 작품에 대해 실행
python llm_enricher.py --limit 50

4. 결론 및 기대 효과

든 데이터 파이프라인 관련 스크립트의 실행 인터페이스를 명령줄 인수를 사용하는 방식으로 통일했다. 이를 통해 코드 수정 없이도 유연하게 데이터 처리 규모를 조절할 수 있게 되어, 향후 테스트 데이터 생성 및 유지보수의 편의성과 안정성이 크게 향상되었다.

본문에 하드코딩된 페이지 변수를 제거하고
데이터를 수집할 때 실행 코드에서 수집할 페이지를 설정할 수 있게 명령줄 인수 기능을 추가하였다

0개의 댓글