Streamlit은 데이터 과학자와 개발자가 빠르게 인터랙티브 웹 애플리케이션을 구축할 수 있게 해주는 인기 있는 오픈 소스 도구입니다. 하지만 애플리케이션을 개발하고 테스트하는 과정에서 지속적으로 실행 상태를 유지하고 관리하는 것은 도전적일 수 있습니다. MacOS 사용자를 위해, 우리는 Streamlit 애플리케이션을 효과적으로 실행하고 모니터링하는 데 사용할 수 있는 몇 가지 핵심 전략을 공유하고자 합니다. 이러한 전략은 개발 효율성을 높이고, 프로젝트의 진행 상황을 더 잘 파악할 수 있도록 도와줄 것입니다.

MacOS에서 Streamlit을 지속적으로 실행하기 위한 몇 가지 방법이 있습니다. 여기 가장 일반적인 두 가지 방법을 소개하겠습니다:

1. nohup을 사용한 백그라운드 실행(쉽고 간편)

nohup 명령어는 터미널이 닫혀도 프로세스가 계속 실행되도록 합니다. 이 방법은 간단하고 빠르게 설정할 수 있으며, 로컬 개발이나 테스트에 적합합니다.

  1. 터미널을 엽니다.
  2. Streamlit 앱을 실행하는 명령어 앞에 nohup을 추가하고, &을 명령어 끝에 붙여 백그라운드에서 실행하도록 합니다. 예를 들어, your_app.py가 Streamlit 앱이라면 다음과 같이 실행합니다:
  3. 이 명령은 nohup.out 파일에 앱의 출력을 저장합니다. 앱을 중지하려면 kill 명령어와 프로세스 ID를 사용하세요.

2. tmux를 사용한 세션 관리

tmux는 터미널 세션을 관리할 수 있는 도구로, 세션을 분리하고 나중에 다시 연결할 수 있습니다. 이는 개발 과정에서 유용하며, 여러 세션을 동시에 관리할 수 있습니다.

  1. tmux가 설치되어 있지 않다면, Homebrew를 사용해 설치할 수 있습니다:
  2. tmux 세션을 시작합니다. streamlit_session과 같은 이름을 줄 수 있습니다:
  3. 새로운 tmux 세션에서 Streamlit 앱을 실행합니다:
  4. 세션을 분리하려면 Ctrl-B를 누른 다음 D를 누릅니다. 이렇게 하면 tmux 세션에서 나오지만, 세션과 Streamlit 앱은 백그라운드에서 계속 실행됩니다.
  5. 나중에 다시 연결하려면 다음 명령어를 사용합니다: 이 두 방법은 MacOS에서 Streamlit 애플리케이션을 지속적으로 실행하는 데 유용합니다. 개인적인 필요와 환경에 맞는 방법을 선택하세요.

Streamlit 앱을 nohup을 사용해 백그라운드에서 성공적으로 실행한 후, 실행 상황을 모니터링하고 프로세스를 종료하는 방법은 다음과 같습니다:

실행 상황 모니터링

  • 로그 파일 확인: nohup 명령어는 기본적으로 출력을 nohup.out 파일에 저장합니다. 이 파일을 확인하여 앱의 실행 상황을 모니터링할 수 있습니다.
  • 프로세스 상태 확인: ps 명령어를 사용해 Streamlit 프로세스의 상태를 확인할 수 있습니다. 예를 들어, Streamlit과 관련된 프로세스를 찾으려면 다음과 같이 실행합니다:

프로세스 종료

  • 프로세스 ID를 사용한 종료: 앞서 ps aux | grep streamlit 명령어로 찾은 프로세스 ID(PID)를 사용하여 Streamlit 프로세스를 종료할 수 있습니다.
  • **pkill**** 명령어 사용**: pkill 명령어를 사용해 프로세스 이름으로 프로세스를 종료할 수도 있습니다. 이 방법은 특정 프로세스 ID를 찾지 않아도 됩니다. 위 방법을 사용하면 Streamlit 앱의 실행 상황을 모니터링하고 필요할 때 프로세스를 종료할 수 있습니다. 로그 파일을 주기적으로 확인하면 앱의 상태와 발생 가능한 오류를 파악하는 데 도움이 됩니다.

일반적인 케이스에서는…

로컬 터미널에서 Streamlit을 지속적으로 실행하려면 여러 방법이 있습니다. 가장 적합한 방법은 사용 중인 운영 체제와 필요에 따라 다릅니다. 여기 몇 가지 일반적인 접근 방식을 소개합니다: