Codespaces란?
Github Codespaces는 devcontainer를 호스팅해주는 Github의 서비스이다. Docker의 devcontainer를 사용하면 언제 어디서든 개발 환경을 클릭 한번으로 다시 구축할 수 있고, 접근도 간단하다. 개발 환경 구축을 설정과 도커 파일로 하기 때문에 하나 하나 따라하면서 머리 아플 일도 없다. 비슷한 서비스로는 cloud9, gitpod, codesanywhere 등이 있다.
회사에서 신입 온보딩 시 거의 개발환경 구축에 하루가 넘게 걸리는데, 이 devcontainer를 사용하면 10분 내로 통일된 개발환경을 구축할 수 있다.
실제로 devcontainer를 사용해서 신규 개발자 온보딩 시간을 단축한 사례들도 있다.
사용 사례
듀오링고의 개발자 온보딩 사례이다.
https://blog.duolingo.com/developer-onboarding-with-github-codespaces/
Github의 자체 사례도 있다.
https://github.blog/engineering/infrastructure/githubs-engineering-team-moved-codespaces/
- Prebuild 이미지를 통한 개발 환경 초기 설정 시간 단축
- 머신 크기를 유연하게 조절할 수 있음
- 코드 리뷰 시 바로 확인 가능
오픈소스 프로젝트에서도 사용하는 사례가 있다. 오픈소스 특성상 첫 기여를 하려면 엄청난 고통이 따르는데, 클릭 한번으로 프로젝트 개발 환경이 생기니까 편리하다.
금액
이미 개발자라면 강력한 맥북이 있는데 왜 이런 개발 환경이 필요할까? 중복 투자는 아닐까 생각할 수도 있다.
그러나 회사에서 제일 값비싼 금액은 인건비이다. 로컬 개발 환경이라면 뭘 잘못 깔면 다 꼬여버려서 해결하는 데에만 한참이 걸리는데, 코드스페이스를 사용하면 버튼 한번에 꼬여버린 개발환경을 버리고 새로운 개발 환경을 뚝딱 만들 수 있다. 또 개발 환경이 통일되어 있으므로 누구는 문제가 발생하는데 누구는 문제가 없는 그런 머리아픈 일들을 사전에 예방할 수 있다.
연봉이 3000만원이라 치면 시급이 15만원인데, 코드스페이스 16코어짜리 환경을 쓴다면 시간당 2000원 정도 추가된다. 인당 한달 32만원 정도인데, 인건비에 비하면 진짜 아무것도 아니다. 개발 환경이 꼬여서 두시간 삽질하면 나오는 비용이니까...
즉, 개발자가 진짜 개발에만 집중할 수 있게 되므로 결론적으로는 금액이 조금 나오더라도 그로 인한 생산성 상승폭은 훨씬 높다.
IDE
기본 IDE는 Visual Studio Code 기반이지만, JetBrains Gateway를 쓰면 Jetbrains IDE를 사용할 수도 있다.
웹 버전에서 바로 개발할 수도 있으며, 로컬의 VSCode에서 서버에 연결해서 사용하는 방법을 쓸 수도 있다.
결론
Codespaces를 사용하면 개발자의 생산성이 높아지므로 꼭 사용하자.