이 포스트에서는 Github Codespaces
의 개념과 생성 방법에 대해 설명한다.
GCP(Google Cloud Platform)
를 이용하여 무료로 3개월간 사지방에서 개발 공부를 했으나, 기간이 다 지나 전역 전까지 새로운 환경을 만들어 공부해야했다.
아마존의 EC2
서 컨테이너를 만들어 하는 방법이 있었지만 더 편한 환경을 원했고, 우연히 github
에서 무료로 가상 컨테이너를 제공하는 것을 보게되었다.
클라우드 환경에서 제공되는 컨테이너는 Ubuntu
환경이라 내가 원하는 개발 공부를 모두 할 수 있었다.
1. Github Codespaces
란?A codespace is a development environment that's hosted in the cloud.
Github
에서 제공하는 클라우드 개발환경이며 기본적으로 Docker
컨테이너 위에 Ubuntu Linux
이미지로 생성된다. OS
는 원하는 리눅스 버전으로 설정 가능하며 Windows
나 Mac OS
컨테이너는 지원하지 않는다.
브라우저(크롬, edge 등), Visual Studio Code
, JetBrains Gateway
, Github CLI
를 통해 접근할 수 있다.
나는 사지방에서 개발하기때문에 브라우저를 통해 접근하였으며 vscode.dev처럼 웹 상의 VSC
인 github.dev를 통해 개발이 가능했다.
전역 하고도 유용하게 사용할 것 같다. 시간과 장소에 상관없이 인터넷만 연결된 PC라면 접속 가능하기 때문에, 전공 수업때 노트북을 들고가지 않아도 작업하던 환경에 바로 접근할 수 있는 장점이 있다.
Private 리파지토리를 만들고 Codespaces를 생성해서 언제 어디서나 유용하게 사용 가능하다.
2.
무료인가?Github Free for personal accounts
- 120 GitHub Codespaces core hours per month
- 15 GB GitHub Codespaces storage per month
- 180 GitHub Codespaces core hours per month
- 20 GB GitHub Codespaces storage per month
달마다 무료로 사용 가능한 저장공간과 이용시간이 주어진다.
일반 계정은 120시간 Pro 계정은 180시간이다.
The compute usage of a codespace is the length of time for which that codespace is active multiplied by the multiplier in the pricing table for the machine type of the codespace.
실제 사용 시간과 주어진 이용 시간은 다르다
Component | Machine type | Unit of measure | Included usage multiplier | Price |
---|---|---|---|---|
Codespaces compute | 2 core | 1 hour | 2 | $0.18 |
Codespaces compute | 4 core | 1 hour | 4 | $0.36 |
Codespaces compute | 8 core | 1 hour | 8 | $0.72 |
Codespaces compute | 16 core | 1 hour | 16 | $1.44 |
Codespaces compute | 32 core | 1 hour | 32 | $2.88 |
Codespaces storage | Storage | 1 GB-month | Not applicable | $0.07 |
나는 express
템플릿을 이용했는데, 4-core, 8GB RAM
컴퓨팅 파워를 이용하고 있다.
따라서 Included usage multiplier
를 반영하면
내가 평소에 사용하는 시간만 생각하면 대략 평일 1시간 30분 / 주말 7시간 이므로
총 107시간 30분 정도를 사용하게 되는데
내가 비용을 더 지불할 의향이 있다고 가정하고 각 컴퓨팅 성능에 따라 계산해보겠다.
환율은 1320원으로 계산하겠다.
2core(4GB RAM) - $ 0.18
: 107시간 30분 - 무료 90시간(180/2) = 17시간 30분
17.5 * 0.18
: $ 3.15 - 4,158 KRW 4core(8GB RAM) - $ 0.36
: 107시간 30분 - 무료 45시간(180/4) = 62시간 30분
17.5 * 0.18
: $ 22.5 - 29,700 KRW2core
와 4core
의 비용 차이가 크다는 것을 알 수 있다.
따라서 Blank
템플릿으로 2core
컴퓨팅 파워를 사용해서 개발하는 것이 좋겠다.
한달에 4천원은 사지방에서 편한 개발을 위해 지불하기엔 충분하다 생각했다.
3. Pro
자격 얻기아래 링크 중 맨 위 Github Pro를 얻어보자
포스트를 참고하여 가입을 하면 된다. 나머지 두 개의 링크는 신청 방법이랑 Pro
자격을 얻고 받을 수 있는 혜택인 Student Developer pack
이다.
Github Pro를 얻어보자
Github global campus 신청
Github Student Developer Pack
To qualify for student benefits, you must:
- Be currently enrolled in a degree or diploma granting course of study such as a high school, secondary school, college, university, homeschool, or similar educational institution.
- Have a verifiable school-issued email address or upload documents that prove your current student status.
- Have a GitHub user account.
- Be at least 13 years old.
나는 대학교를 다니고있어 웹메일을 통해 Github Global Campus
에 가입하여 Pro
자격을 얻을 수 있었다.
4.
생성방법방법 1. repository
에서 생성이미 만들어져 있거나 새로 만든 repository
에서 생성이 가능하다.
리파지토리 우측 상단의 <> Code
버튼을 누르고 Codespaces
카테고리를 선택한 후 Create codespace on main
을 클릭하면 된다.
방법 2. 주어진 template
에서 생성Github
에서 템플릿을 선택해서 codespace
를 생성할 수 있다.
Github
메인화면에서 상단 네비게이션에 Codespaces
를 들어가면 현재 내가 생성한 codespace
들을 볼 수 있다.
codespaces
메인화면에서 좌측 Templates
를 들어가면 다음과 같이 생성 가능한 템플릿 목록이 나온다.
빈 템플릿 뿐만 아니라 React
, Express
, Django
, Flask
등등 여러 템플릿을 지원하니 빠르고 편하게 환경이 준비된 템플릿을 이용하는 것도 좋은 방법이다.
5. Codespaces
관리Codespaces
메인화면 하단을 보면 생성한 codespace
목록이 나온다.
우측 버튼을 누르면 Active
상태의 컨테이너는 접속을 끊은 후 1시간이 지나면 자동으로 멈춘다.
Stop codespace
를 통해 접속이 끝난 후 바로 멈춰주면 좀 더 타이트하게 무료로 제공되는 시간을 관리할 수 있다.Change machine type
을 통해 컨테이너의 성능을 변경할 수 있다.내가 얼마만큼 사용했는지 알고싶다면 Github
우측 상단 프로필에서
Settings -> 좌측 Billing and plans -> Plans and usage
에서 확인이 가능하다.
쭉 내리다보면 Codespaces
사용량이 있다. Usage hours
와 Storage
는 클릭해서 구체적인 내용 확인이 가능하다.
나는 Pro
자격이 있어서 GitHub Copilot
도 무료로 사용가능했다!
Github
의 Codespaces
를 통해 무료로 컨테이너를 제공받아 개발을 위해 사용 가능Pro
자격을 무료로 얻어 달마다 180시간 무료로 사용 가능g++
, cmake
, python
등이 설치되어있어 알고리즘 문제풀이에 용이Stop
기능을 활용해 자원을 사용량만큼 사용하기CMake
로 알고리즘 및 C/C++
환경 구성하기아래 링크를 통해 CMake
환경 설정도 알아보면 좋다.
알고리즘을 위한 CMake 환경 구성