지식 베이스

zinnector dev를 이용한 로컬 개발

zinnector dev가 자신의 컴퓨터에서 실제 WordPress를 실행하는 방식: 두 가지 런타임(Docker 없는 WebAssembly 또는 Docker의 네이티브 PHP), PHP 및 WordPress 버전 선택, 프로젝트에서 제공되는 내용, 570 MB 런타임의 저장 위치, Node 26에서의 동작.

zinnector dev 명령어는 사용자의 컴퓨터에서 실제 WordPress를 실행하며, 선택한 PHP 버전으로 프로젝트의 플러그인과 테마를 서비스합니다. 본 기사에서는 이 명령어가 사용할 수 있는 두 가지 런타임, 버전 선택 방법, 서비스 제공 방식, 그리고 디스크 상에서 런타임이 위치하는 곳을 설명합니다. 이를 통해 로컬에서 테스트한 내용이 그대로 배포되도록 합니다.

두 가지 런타임과 둘 다 실제 작동하는 이유

Playground는 기본값입니다. WordPress Playground는 PHP를 WebAssembly로 컴파일하여 Node 내부에서 실행하므로, Node 외에는 아무것도 설치되지 않은 노트북에서도 몇 초 만에 WordPress를 부팅할 수 있습니다. 5.2부터 8.5까지의 모든 PHP 버전을 사용할 수 있습니다. 현재 빌드 기준으로 측정된 소수의 PHP 확장(intl, redis, memcached)을 포함하며, 이는 대부분의 플러그인 및 테마 작업에 충분합니다.

Docker는 네이티브 php-fpm 및 MariaDB 컨테이너를 실행합니다. 속도가 더 느리고, Docker 데몬과 약 1.2 GB의 이미지가 필요하며, PHP 7.4부터 8.5를 지원합니다. 하지만 imagickgd를 포함한 전체 확장 세트가 포함된 네이티브 PHP를 실행합니다. WebAssembly 빌드에 포함되지 않은 확장을 테스트해야 할 때 필요한 확실한 대안입니다.

zinnector dev                       # playground
zinnector dev --runtime docker      # native PHP + MariaDB

Docker로 자동 전환되는 일은 절대 없습니다. WebAssembly를 사용하고 있다고 생각하지만 실제로 Docker를 사용 중인 개발자는 도구의 임의적인 지원으로 인해 잘못된 정보를 얻게 될 수 있으므로, 반드시 이름을 명시하여 요청해야 합니다.

PHP 및 WordPress 버전 선택

zinnector dev --php 8.1 --wp 6.7    # 특정 버전을 조합하여 개발
zinnector dev --port 9401           # 9400 포트가 사용 중일 때
zinnector dev --no-login            # wp-admin에 자동으로 로그인하지 않음
zinnector dev --verbose             # 런타임 자체의 출력 표시

기본값은 프로젝트 내의 zinnector.json(php, wordpress, runtime, port)에서 가져옵니다. 이 파일은 zinnector new를 통해 작성되며 프로젝트에 커밋해야 하므로, 프로젝트의 모든 개발자가 동일한 버전을 실행할 수 있습니다. 명령어 줄에 지정한 플래그는 해당 실행 시 파일의 설정보다 우선 적용됩니다.

선언한 버전과 실행되는 버전은 서로 다릅니다. zinnector dev --once는 런타임을 부팅하고, 실제 보고되는 내용(PHP 버전, WordPress 버전, 로드된 확장)을 출력한 뒤 중지합니다. zinnector check --probe는 프로젝트를 호스팅 슬롯과 비교할 때 동일한 측정 방식을 사용합니다.

프로젝트에서 서비스되는 내용

런타임은 프로젝트의 wp-content/plugins, wp-content/themes, wp-content/mu-plugins 디렉토리를 직접 마운트하므로, 저장한 파일은 다음 새로고침 시 바로 반영됩니다. 실제 내용이 없는 디렉토리는 의도적으로 마운트되지 않습니다. 런타임 자체의 테마 위에 비어 있는 themes/를 마운트하면 WordPress에 테마가 완전히 없어지므로, 사이트 내용 대신 빈 500 오류가 발생하게 됩니다. 이것이 바로 스캐폴드가 .gitkeep과 함께 빈 디렉토리를 유지하며, 테마를 넣기 전까지는 어떤 파일도 덮어쓰지 않는 이유입니다.

런타임의 위치

WordPress 런타임은 CLI에 포함되어 제공되는 대신 최초 사용 시 다운로드됩니다. 모든 PHP 빌드를 포함하는 패키지는 약 570 MB이므로, 단순히 사이트 목록만 조회하는 개발자가 이를 감당할 필요는 없습니다. 이 파일은 프로젝트 내에 저장되지 않고 Zinnector®의 자체 캐시인 ~/.cache/zinnector/runtimes/playground/<version>(또는 ZINNECTOR_CACHE_DIR가 가리키는 위치)에 보관되므로, 리포지토리나 zinnector push가 측정하는 트리 구조에 포함되지 않습니다. 다운로드는 셸을 거치지 않고 node npm-cli.js로 실행되는 사용자의 npm을 통해 수행됩니다.

런타임 버전은 CLI 버전과 고정되어 있으므로, 한 프로젝트의 두 개발자는 동일한 PHP 빌드를 실행하게 됩니다. zinnector dev --reset-runtime은 설치된 런타임을 삭제하고 다시 설치하며, 이는 설치되었으나 부팅되지 않는 런타임을 해결하기 위한 방법입니다.

Node 26 이상 버전 사용 시

CLI 자체는 Node 24 이상 버전에서 실행됩니다. 그러나 런타임의 네이티브 모듈은 Node 24 및 25에 대해서만 사전 빌드된 바이너리를 제공합니다(2026년 9월 기준). (Windows의 경우 Visual Studio 설치를 의미하는) 컴파일을 수행하는 대신, Zinnector®는 런타임 전용으로 약 30 MB 크기의 Node 24를 nodejs.org에 게시된 체크섬과 대조하여 검증한 후 동일한 캐시에 가져옵니다. 설치 프롬프트가 적용될 때 이 내용이 표시됩니다. 사용자 본인의 Node 환경은 변경되지 않습니다.

관련 항목

모든 개발자 문서

블로그 최신 소식

호스팅, SEO, 대규모 사이트 운영에 관해 저희가 다루어 온 글들입니다.

호스팅 레이어에서의 SEO 및 링크 빌딩: 2026년 운영자 관점

2026년 웹 호스팅이 색인 생성과 링크 에퀴티에 미치는 영향: 페이지 색인 유지, 구축 전 기존 도메인 검증, 흔적 없는 링크 빌딩, 그리고 인프라가 SEO에 기여할 수 있는 부분과 없는 부분에 대한 솔직한 진실.

게시물 읽기

WordPress 속도와 보안 향상: 성능 및 플러그인 체크리스트

빠르고 안전한 WordPress 구축을 위한 실용적인 체크리스트: 서버 수준 캐싱, 사이트별 객체 캐시, 사용할 가치가 있는 소수의 플러그인, 스택을 최신 상태로 유지하기, 그리고 절대 캐시해서는 안 되는 WooCommerce 페이지.

게시물 읽기

2026년 매니지드 웹 호스팅 선택 방법: 구매 가이드

좋은 매니지드 호스팅과 제어판만 달린 저렴한 서버의 진정한 차이점—마이그레이션, 백업, 격리, 진짜 캐싱, 그리고 정직한 스케일링—과 계약 전에 이를 판단하는 방법.

게시물 읽기

블로그 읽기

여전히 해결되지 않으셨나요?

모든 요금제에 지원이 포함되어 있으며, 모국어로 답변을 받아보실 수 있습니다.

고객센터 문의 모든 문서