본문 바로가기
github

GitHub Codespaces, 이런 상황에서 꺼내 써보니 달랐다

by bamsik 2026. 3. 24.
반응형

GitHub Codespaces, 쓰기 전엔 굳이 필요할까 싶었다

로컬에 개발 환경 잘 세팅해놨는데 굳이 클라우드에서 코딩할 이유가 있나 생각했다. 그냥 써봤더니 생각이 좀 바뀌었다. 특정 상황에서는 진짜 편하다. 그 반대로, 쓸 필요 없는 상황도 있다. 둘 다 정리해본다.

Codespaces가 뭔지 간단히

GitHub Codespaces는 브라우저나 VS Code에서 바로 열 수 있는 클라우드 개발 환경이다. 레포지토리를 열면 컨테이너 기반 환경이 뜨고, 거기서 코딩하고 커밋하고 PR까지 올린다. 로컬 설치 없이 어디서든 같은 환경을 쓸 수 있다는 게 핵심이다.

실제로 편했던 순간들

신규 입사자 온보딩

새 팀원이 들어왔을 때 개발 환경 세팅에 반나절 이상 쓰는 일이 생각보다 많다. Node 버전 맞추고, 글로벌 패키지 깔고, 환경변수 파일 맞추고. devcontainer.json을 레포에 추가해두면 Codespace 열 때 자동으로 다 세팅된다. 처음 써봤을 때 이 부분이 제일 인상적이었다.

PR 리뷰할 때

코드만 읽어서 안 될 때, 실제로 실행해봐야 할 때 있다. 그냥 해당 PR에서 Codespace 열면 그 브랜치 환경이 바로 뜬다. 로컬에서 stash하고 checkout하고 의존성 다시 설치하는 과정이 없어진다.

개인 맥북 아닌 다른 기기에서 급하게 작업해야 할 때

로컬 환경이 없는 기기에서 뭔가 빠르게 수정해야 할 때 Codespaces가 빛난다. 브라우저만 있으면 전체 VS Code 환경이 그대로 뜬다.

devcontainer.json 기본 세팅

이 파일을 .devcontainer/devcontainer.json에 추가하면 Codespace 환경을 정의할 수 있다:

{
  "name": "Node.js Dev",
  "image": "mcr.microsoft.com/devcontainers/node:20",
  "features": {
    "ghcr.io/devcontainers/features/github-cli:1": {}
  },
  "postCreateCommand": "npm install",
  "forwardPorts": [3000],
  "customizations": {
    "vscode": {
      "extensions": [
        "esbenp.prettier-vscode",
        "dbaeumer.vscode-eslint"
      ]
    }
  }
}

postCreateCommand로 컨테이너가 뜬 다음 자동으로 실행할 명령어를 지정하고, forwardPorts로 포트 포워딩도 설정한다. VS Code 익스텐션도 자동 설치된다.

무료 사용량 알아두기

GitHub Personal 계정 기준 매달 무료 크레딧이 있다. 2코어 머신 기준으로 월 120시간 정도다. 실수로 Codespace를 안 끄고 두면 빠르게 소진되니까 쓰고 나서 중지하는 습관이 필요하다. 설정에서 비활성화 후 자동 중지 시간을 30분으로 줄여두면 실수 방지가 된다.

이건 불편했다

솔직히 말하면 로컬보다 느릴 때가 있다. 특히 처음 컨테이너를 빌드할 때, 그리고 대용량 node_modules를 설치할 때. 로컬 SSD에서 npm install 하는 것보다 확실히 느리다. 빈번하게 쓰는 메인 개발 환경으로는 여전히 로컬이 낫다고 생각한다.

그리고 터미널 반응성도 미묘하게 다르다. 네트워크 환경에 따라 타이핑 딜레이가 느껴질 때가 있다. 와이파이 상태가 좋지 않으면 좀 답답하다.

언제 쓰면 좋고 언제 안 써도 되나

쓸 만한 경우: 팀 온보딩 자동화, 오픈소스 프로젝트 기여 (포크만 하고 바로 시작), 빠른 PR 리뷰, 환경이 다른 기기에서 임시 작업.

굳이 안 써도 되는 경우: 혼자 쓰는 프로젝트에서 메인 개발, 무거운 빌드 작업, 로컬 GPU나 특수 하드웨어가 필요한 경우.

결론적으로 Codespaces는 "항상 쓰는" 도구라기보다 특정 워크플로우에서 꺼내 쓰는 도구다. 팀 개발 환경 표준화에는 진짜 유용하다.


📎 참고 자료

반응형