Github Codespaces로 개발하기

Profile-exe·2023년 6월 10일
3

IDE 설정

목록 보기
6/7

이 포스트에서는 Github Codespaces의 개념과 생성 방법에 대해 설명한다.

GCP(Google Cloud Platform)를 이용하여 무료로 3개월간 사지방에서 개발 공부를 했으나, 기간이 다 지나 전역 전까지 새로운 환경을 만들어 공부해야했다.

아마존의 EC2서 컨테이너를 만들어 하는 방법이 있었지만 더 편한 환경을 원했고, 우연히 github에서 무료로 가상 컨테이너를 제공하는 것을 보게되었다.

클라우드 환경에서 제공되는 컨테이너는 Ubuntu 환경이라 내가 원하는 개발 공부를 모두 할 수 있었다.


1. Github Codespaces란?

Github Codespaces 설명서

A codespace is a development environment that's hosted in the cloud.

Github에서 제공하는 클라우드 개발환경이며 기본적으로 Docker 컨테이너 위에 Ubuntu Linux 이미지로 생성된다. OS는 원하는 리눅스 버전으로 설정 가능하며 WindowsMac OS 컨테이너는 지원하지 않는다.

브라우저(크롬, edge 등), Visual Studio Code, JetBrains Gateway, Github CLI를 통해 접근할 수 있다.

나는 사지방에서 개발하기때문에 브라우저를 통해 접근하였으며 vscode.dev처럼 웹 상의 VSCgithub.dev를 통해 개발이 가능했다.

사지방에서만 사용하나?

전역 하고도 유용하게 사용할 것 같다. 시간과 장소에 상관없이 인터넷만 연결된 PC라면 접속 가능하기 때문에, 전공 수업때 노트북을 들고가지 않아도 작업하던 환경에 바로 접근할 수 있는 장점이 있다.

Private 리파지토리를 만들고 Codespaces를 생성해서 언제 어디서나 유용하게 사용 가능하다.


2. 무료인가?

일반 계정

Github Free for personal accounts

  • 120 GitHub Codespaces core hours per month
  • 15 GB GitHub Codespaces storage per month

Pro 계정

Github Free for organizations

  • 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.

실제 사용 시간과 주어진 이용 시간은 다르다

ComponentMachine typeUnit of measureIncluded usage multiplierPrice
Codespaces compute2 core1 hour2$0.18
Codespaces compute4 core1 hour4$0.36
Codespaces compute8 core1 hour8$0.72
Codespaces compute16 core1 hour16$1.44
Codespaces compute32 core1 hour32$2.88
Codespaces storageStorage1 GB-monthNot applicable$0.07

나는 express 템플릿을 이용했는데, 4-core, 8GB RAM 컴퓨팅 파워를 이용하고 있다.
따라서 Included usage multiplier를 반영하면

  • 180 / 4 = 45 따라서 45시간만 무료로 사용할 수 있는 것이다.

내가 평소에 사용하는 시간만 생각하면 대략 평일 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 KRW

2core4core의 비용 차이가 크다는 것을 알 수 있다.
따라서 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을 클릭하면 된다.
repository에서 codespace 생성하는 방법

방법 2. 주어진 template에서 생성

Github에서 템플릿을 선택해서 codespace를 생성할 수 있다.
Github 메인화면에서 상단 네비게이션에 Codespaces를 들어가면 현재 내가 생성한 codespace들을 볼 수 있다.

Github codepaces 메인화면

codespaces 메인화면에서 좌측 Templates를 들어가면 다음과 같이 생성 가능한 템플릿 목록이 나온다.

빈 템플릿 뿐만 아니라 React, Express, Django, Flask 등등 여러 템플릿을 지원하니 빠르고 편하게 환경이 준비된 템플릿을 이용하는 것도 좋은 방법이다.
choose a template


5. Codespaces 관리

컨테이너 관리

Codespaces 메인화면 하단을 보면 생성한 codespace 목록이 나온다.
우측 버튼을 누르면 Active 상태의 컨테이너는 접속을 끊은 후 1시간이 지나면 자동으로 멈춘다.

  • Stop codespace를 통해 접속이 끝난 후 바로 멈춰주면 좀 더 타이트하게 무료로 제공되는 시간을 관리할 수 있다.
  • Change machine type을 통해 컨테이너의 성능을 변경할 수 있다.

Codespaces 메인화면 하단

Change codespace machine type - 컨테이너 성능 선택

사용량 모니터링

내가 얼마만큼 사용했는지 알고싶다면 Github 우측 상단 프로필에서
Settings -> 좌측 Billing and plans -> Plans and usage에서 확인이 가능하다.
사용량 모니터링 이미지

쭉 내리다보면 Codespaces 사용량이 있다. Usage hoursStorage는 클릭해서 구체적인 내용 확인이 가능하다.

Codespaces 사용량 확인

나는 Pro자격이 있어서 GitHub Copilot도 무료로 사용가능했다!

Github Copilot 사용


정리

  • GithubCodespaces를 통해 무료로 컨테이너를 제공받아 개발을 위해 사용 가능
  • 학생인 경우 Pro자격을 무료로 얻어 달마다 180시간 무료로 사용 가능
  • 기본적으로 g++, cmake, python 등이 설치되어있어 알고리즘 문제풀이에 용이
  • Stop 기능을 활용해 자원을 사용량만큼 사용하기

CMake로 알고리즘 및 C/C++ 환경 구성하기

아래 링크를 통해 CMake 환경 설정도 알아보면 좋다.
알고리즘을 위한 CMake 환경 구성

profile
컴퓨터공학과 학부생

0개의 댓글