Post

종속성을 쉽게 설치해보자

종속성을 미리 선언하여 쉽게 설치 가능하도록 모듈을 만들어보자

종속성을 쉽게 설치해보자

종속성을 쉽게 설치해보자

종속성을 미리 선언하여 쉽게 설치 가능하도록 모듈을 만들어보자

1. 서론 (Introduction)

  • 문제/상황 (Problem):
    • 프로젝트를 처음 시작할 때 수동으로 라이브러리를 설치하거나 OS별로 다른 명령어를 입력해야 하는 번거로움이 존재한다.
  • 목적 (Purpose):
    • 쉘 명령어를 기반으로 종속성을 자동으로 검증하고 설치하는 통합 모듈을 구축하여 개발 환경 설정 시간을 단축한다.
  • 대상 (Target Audience):
    • 일관된 개발 환경 구성이 필요한 팀이나 다양한 운영체제에서 동작하는 도구를 개발하는 엔지니어

2. 방법 및 과정 (Methods & Process)

  • 배경 조사 및 데이터 (Data Collection):
    • 기존의 requirements.txt 방식보다 강력한 OS 패키지 관리자와의 연동 가능성을 조사하였다.
기능설명장점
OSMap 구조Windows, Linux, Mac 전용 명령어 매핑플랫폼에 상관없는 유연한 실행 지원
쉘 명령어 직접 실행서브프로세스를 통한 직접적인 제어라이브러리 외에 시스템 바이너리 관리 가능
환경 변수 자동 갱신Windows PATH 레지스트리 실시간 반영설치 후 재시작 없는 즉각적인 사용 가능
Python 인터프리터 연동현재 실행 중인 Python 경로 자동 치환가상 환경 및 다양한 실행 환경 최적화
검증 로직 내장설치 전후 상태 코드 확인을 통한 무결성 확보안정적인 런타임 환경 보장
  • 접근 방법 (Approach Methods):
    • [방법 1]: namedtuple을 활용하여 가독성 높은 종속성 정의 데이터 구조를 설계한다.
    • [방법 2]: subprocess 모듈을 활용하여 표준 출력 억제 및 에러 처리가 포함된 실행기를 구현한다.
  • 분석 및 해결 프로세스 (Analysis Flow):
    • 도구/기술: Python, subprocess, winreg
    • 주요 단계: OS 식별 로직 구현 $\rightarrow$ Dependency 클래스 정의 $\rightarrow$ 쉘 명령어 실행기 개발 $\rightarrow$ Windows 환경 변수 갱신 기능 추가 $\rightarrow$ 자동 설치 루프 완성
    • 결과 도출 및 검증: tqdm 및 numpy 설치 테스트를 통해 자동 설치와 검증 프로세스가 정상 작동함을 확인한다.

3. 결과 (Results)

  • 분석 결과 요약:
    • 작성된 모듈은 Python 패키지뿐만 아니라 FFmpeg, 7-Zip과 같은 시스템 바이너리까지 통합 관리가 가능하다.
    • 특히 Windows 환경에서 winget과 연동 시 설치 직후 환경 변수를 갱신하여 별도의 설정 없이 바로 사용 가능한 수준의 편의성을 제공한다.

4. 인사이트 및 액션 (Insights & Action)

  • 인사이트 (Insight):
    • 코드 내에 명시적으로 종속성을 선언함으로써 문서화와 자동화를 동시에 달성할 수 있다.
    • 시스템 명령어를 추상화하면 인프라 설정에 소요되는 리소스를 혁신적으로 줄일 수 있다.
  • 실행 방안 (Action Plan):
    • 모든 사내 자동화 스크립트에 이 bootstrap 최적화 모듈을 적용하여 환경 일관성을 확보한다.
  • 한 줄 결론 (Key Takeaway):
    • dependency 모듈로 복잡한 환경 설정을 코드 한 줄로 단순화할 수 있다. 샘플 코드
  • 다음 스텝 (Next Step):
    • 도커 컨테이너 빌드 과정에서도 이 모듈을 활용하여 베이스 이미지 구성을 자동화한다.
This post is licensed under CC BY 4.0 by the author.