Python working directory 의미

Python 프로젝트를 위한 IDE 설정과 CLI 실행의 차이

IDEA에서 python 프로젝트를 실행하다보면,

Add content roots to PYTHONPATH
Add source roots to PYTHONPATH

와 같은 옵션들로 module import에 대한 고민이 별로 없어지게 된다.
뿐만 아니라 working directory 설정까지 있어서 더 대충해도 잘 돌아간다.

실제 서비스로 배포하기 위해서는 CLI(Command Line Interface)를 통해 실행되어야 할 때가 많다.
Linux 시스템에서 서비스로 등록하거나, 특정 스크립트를 cron 작업으로 실행하는 경우이다.

클라이언트가 특정 디렉토리에서 실행되어야 할 때,
프로그램이 그 디렉토리를 알고 있어야 한다.
IDE에서는 이러한 설정을 자동으로 처리해주지만, CLI에서는 그렇지 않다.

그래서 개발자는 sys.path.append()와 같은 방법을 사용하여 현재 작업 디렉토리를 명시적으로 지정해주어야 한다.

그래서 sys.path.append() 를 통해서, 현재 working directory를 명시적으로 적어서 전달할 필요가 있다.

import os, sys

pwd = os.getcwd()
sys.path.append(pwd)

이렇게 하면 프로그램이 해당 디렉토리를 참조하여 필요한 파일을 찾을 수 있다.
이렇게 명시적으로 작업 디렉토리를 지정해주는 것은 CLI에서 프로그램이 올바르게 실행되도록 보장하는 중요한 단계이다.

Python 프로젝트를 개발할 때는 IDE에서의 설정과 CLI에서의 실행 환경 간의 차이를 고려하여 작업하는 것이 중요하다.
IDE는 개발을 편리하게 해주지만, 실제로 배포 및 실행되어야 할 환경을 고려하여 코드를 작성하는 것이 더욱 중요하다는 점을 명심해야 한다.