Ghost에서 Zulip까지: WSL2에서 Zulip을 로컬로 설정하기 (그리고 까다로운 Python 문제 해결)

발행: (2025년 12월 18일 오후 12:45 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

From Ghost to Zulip: WSL2에서 Zulip을 로컬에 설정하고 까다로운 Python 문제 해결하기의 표지 이미지

Abdul Talha


소개

Ghost에 기여한 뒤, 더 크고 복잡한 백엔드 시스템에 도전하고 싶었습니다.

그 호기심이 저를 Zulip으로 이끌었습니다. Zulip은 주제 기반 스레딩과 프로덕션 급 아키텍처로 유명한 오픈소스 팀 협업 도구입니다.

Zulip은 다음으로 구성됩니다:

  • Django
  • Tornado
  • PostgreSQL
  • RabbitMQ

Zulip을 로컬에 설정하는 것은 어렵지 않지만, 일반적인 Django 프로젝트와는 매우 다릅니다. 특히 Python 가상 환경과 WSL 설정과 관련해서 몇 가지 예상치 못한 문제에 부딪혔습니다.

이 글에서는 다음 내용을 다룹니다:

  • WSL2에서 Zulip을 로컬에 설정한 방법
  • 설정 중에 마주한 문제들
  • activate_this.py 문제를 포함한 해결 방법

Zulip을 처음 사용하거나 더 큰 백엔드 시스템으로 옮겨가는 경우, 이 가이드를 통해 흔히 겪는 설정 장애를 피할 수 있을 것입니다.

이 게시물이 대상인 사람

  • Zulip에 처음 기여하는 개발자
  • 작은 프로젝트를 넘어 오픈소스에 기여하는 사람
  • Windows에서 WSL2를 사용하는 모든 사람
  • Python 3.12 또는 activate_this.py 오류에 갇힌 개발자

Prerequisites

General

  • 2 GB+ RAM
  • Stable internet connection
  • GitHub account

Windows

  • Windows 10/11 (64‑bit)
  • Virtualisation enabled (VT‑x / AMD‑V)
  • Admin access

Git and GitHub Setup

If Git is already configured, you can skip this section.

  1. Generate an SSH key

    ssh-keygen -t ed25519 -C "your_email@example.com"
  2. Copy the public key

    cat ~/.ssh/id_ed25519.pub
  3. Add it to GitHub → Settings → SSH and GPG Keys.

Zulip용 WSL2 설정

이미 네이티브 Ubuntu 또는 WSL2를 사용하고 있다면, 바로 다음 단계로 넘어가세요.

가상화 활성화

BIOS에서 VT‑x / AMD‑V가 활성화되어 있는지 확인합니다.

WSL2 설치

wsl --install

이 명령으로 Ubuntu가 자동으로 설치됩니다.

systemd 활성화 (필수)

Zulip은 PostgreSQL, Redis, RabbitMQ와 같은 백그라운드 서비스에 의존합니다.

sudo nano /etc/wsl.conf

다음 내용을 추가합니다:

[boot]
systemd=true

WSL을 재시작합니다:

wsl --shutdown

필수 서비스 설치

sudo apt update && sudo apt upgrade
sudo apt install rabbitmq-server memcached redis-server postgresql

RabbitMQ 설정

sudo nano /etc/rabbitmq/rabbitmq-env.conf

다음 내용을 추가합니다:

NODE_IP_ADDRESS=127.0.0.1
NODE_PORT=5672

Zulip 저장소 복제

  1. GitHub에서 Zulip을 포크한 뒤 포크를 복제합니다:

    git clone --config pull.rebase git@github.com:YOURUSERNAME/zulip.git
    cd zulip
    git remote add -f upstream https://github.com/zulip/zulip.git

Zulip 로컬 실행

  1. 의존성 설치

    ./tools/provision
  2. 가상 환경 활성화

    source .venv/bin/activate
  3. 개발 서버 시작

    ./tools/run-dev
  4. 접속

    http://localhost:9991

내가 겪은 일반적인 문제들 (그리고 해결 방법)

문제 1: activate_this.py 누락

오류

FileNotFoundError: No such file or directory ... activate_this.py

이유

Zulip이 이제 uv를 사용하기 때문에 activate_this.py 파일을 자동으로 생성하지 않습니다. 일부 스크립트는 여전히 이 파일이 존재하기를 기대합니다.

해결 방법

파일을 직접 만들기:

cat > .venv/bin/activate_this.py   
- Zulip Dev Docs:   
- Zulip Community Chat:   
- WSL Docs:   
- uv:
Back to Blog

관련 글

더 보기 »

Zulip에서 stdlib 커뮤니티와 연결하기

왜 Zulip? Zulip https://zulip.com/ 은 오픈 소스이며, 우리와 같은 오픈‑소스 프로젝트를 https://zulip.com/for/open-source 에서 무료 클라우드 플랜으로 관대하게 지원합니다.