github rstudio로 github 프로젝트 시작하기

R rstudio github project

github은 git의 공개 remote repo를 제공하는 서비스다. 그래서 git 사용법을 알아야 한다. Rstudio의 project를 사용하면 좀 쉽다.

true
2018-03-15

세줄요약

  1. github은 git의 공개 remote repo를 제공하는 서비스다.
  2. 그래서 git 사용법을 알아야 한다.
  3. Rstudio의 project를 사용하면 좀 쉽다.

Github은 이제 코드 관리와 공유 플랫폼의 대명사입니다. R도 개발 언어로써 Github을 많이 사용할 기회가 있는데요. 코드 공유, 패키지 공유, 분석 결과 공유 정도로 쓰임새를 정리할 수 있을 것 같습니다. 이 때 많은 분들의 필요은 아마 분석 결과 공유이지 않을까 싶습니다.

분석 결과를 공유하기 위해서 github을 사용하실 때, R의 IDE로 많이 사용하는 RStudio와 함께 사용하는 법을 소개해드릴까 합니다.

우선 github에 repository를 만들어 시작하는 다양한 방법이 있습니다. 단적으로는 웹브라우저에서 파일 만들기나 업로드로 진행하셔도 됩니다. 각각의 방법을 설명하기 전에, github의 개념을 간단하게만 짚고 넘어가겠습니다.

코드의 저장 상태 백업과 공유를 위해서 git은 작업하는 나의 컴퓨터 공간인 로컬 저장소(local repository)와 원격 저장소(remote repository)라는 개념으로 구분하여 사용합니다. local을 개인이 일하고 작업하는 공간, remote는 백업하고 공유하는 공간입니다.

그런데 remote를 누가 그냥 주는 것도 아니고, 필요한 사람이 따로 구축해야 합니다. 큰일인거죠. 이걸 SNS처럼 인터넷 서비스로 만든 것이 바로 Github입니다. Github은 원격 저장소를 회원 가입한 사람 모두에게 무료로 나눠준거죠. 조건이 있다면 저장소를 공개(public)해야 합니다. 비공개(private)로 만들려면 돈을 내야 합니다. 이런 Github의 유료정책을 파고 들어서 [Gitlab][Gitlab]이나 Bitbucket은 무료 비공개 repo를 제공하고 있습니다. 사용법이 좀 다르지만 git과 subvesion을 모두 사용할 수 있으니 선택지가 넓은 셈이죠. 우리는 분석 결과 공유를 목적으로 저장소(repository)를 사용할 계획이니 Github을 사용하겠습니다. 시작해볼까요?

로컬과 원격, 프로젝트의 시작

무언가 작업이 발생하면 아주 작거나 간단한 것이 아니라면 프로젝트라고 정의합니다. 원래 분석 프로젝트라고 하면 문제정의 - 데이터 확보 - 분석 - 결과 공유의 과정을 거칩니다. 각각의 세부항목도 많지만 우선은 넘어갈께요. 저 모든 과정을 프로젝트라고 볼 수도 있지만, 우리는 결과 공유만 프로젝트라고 합시다. 더 쉽게 하기 위해서 결과물이 .Rmd 파일로 되어 있다고 해보겠습니다. 그렇게 하면 해야할 일은

  1. github에 새 저장소 만들기
  2. 새 저장소에 결과물 업로드하기

이제 여기서 몇 가지 분기가 발생하는데요.

  1. git을 사용할 것인가 말것인가
  2. 결과물을 어떤 파일 형식으로 저장할 것인가

입니다.

git을 사용하지 않는다면 그냥 github에서 제공하는 upload files 버튼으로 업로드 하는 방법이 있습니다. 예를 들어 .pdf는 엄청 큰 파일이 아닌 이상 업로드하면 바로 웹에서 보여주기도 합니다.

주소로 확인하실 수 있습니다. 예쁘지는 않을 수…

우리는 R을 사용하니 파일 형식은 다양할 수 있습니다. .Rmd만 사용하면 이론적으로는 rpubs 포스트에서 보여드린 만큼이나 가능하죠. 대표적으로 많이 사용하는 형식으로는 .docx같이 MS 오피스 계열의 결과물이 있습니다. 그리고 Github 친화적으로는 .md.html을 꼽을 수 있을 것 같습니다.

.mdGFM이란게 있을 정도로 Github이 사랑하는 파일 형식입니다. 오픈소스 저장소로써 많이 사용하는 관례인 README.md는 파일을 보지 않아도 프로젝트 페이지에서 출력도 해줍니다.

.htmlGithub pages 서비스를 통해서 사용할 수 있습니다. 아마 다음 포스트를 Github pages를 이용해서 웹페이지를 만들거나 하는 방법을 소개할 수 있을 거라 기대하고 있습니다.

위 두 파일 형식은 Github 친화적이기도 하면서 변환 동작에 다른 외부 의존성이 없어서 작업환경을 만들기 쉽다는 장점이 있습니다. 예를 들어 .pdfLatex 엔진을 추가로 설치해야 합니다. 한글을 지원하는 엔진을 선정해야 해서 KTUG에서 관련 정보를 찾으실 수 있습니다.

서문이 너무 길었네요. Rstudio를 사용해서 Github 프로젝트를 시작해보겠습니다.

git의 워크플로우

Github!

위에서 Github이 git의 원격 저장소라는 설명을 드렸습니다. git을 사용해 시작하는 상황은 두 가지입니다.

  1. 처음 폴더를 만들어 로컬 저장소를 초기화하며 시작하기
  2. 기존에 있는 프로젝트를 원격 저장소에서 클론하여 시작하기

초기화하면서 시작하면 원격 저장소를 연결하는 과정이 추가로 필요합니다. 원격 저장소를 연결하여 파일들을 업로드하는 행위를 푸쉬(push)라고 하는데, 천천히 할 것이라면 초기화로 시작하는 것도 좋은 선택입니다. 원격 저장소를 바로 사용할 것이라면, 원격 저장소를 먼저 만들어 클론하면서 시작하는게 조금 더 제가 생각하는 쉬운 방법입니다. 저는 원격 저장소를 바로 사용할 것이니 클론으로 시작하는 방법을 소개하겠습니다.

클론(git clone)으로 시작하기

클론으로 시작하려면 원격 저장소를 먼저 만들어야 한다고 말씀드렸습니다.

로그인을 하고

메인화면에

오른쪽 위 + 버튼을 누르면 메뉴가 나옵니다.

우린 새 저장소 만들어야 하니 New repository를 선택해주세요.

저장소 이름을 myfirstrepo 라고 했습니다. 옵션을 좀 살펴볼까요?

Owner

계정입니다. 보통 자기 것만 있는데, 그룹 계정같은 것이 더 있을 수 있습니다.

Repository name

저장소 이름입니다. 자신의 계정 내에만 겹치치 않으면 되니 편하게 만들어 주세요.

Description

저장소를 간단히 설명하는 곳입니다. 한 줄 정도로 설명문을 작성하면 검색같은 곳에 같이 보여집니다.

공개 범위

공개 범위는 Public과 Private이 있습니다. 우리는 Public은 선택하죠. Private은 비용을 사용해야 합니다.

README

오픈소스 프로젝트는 관례적으로 root 위치에 README 파일을 두고 있습니다. 여기서 선택하면 저장소 이름을 작성한 README.md 파일을 같이 만들어줍니다. 우리는 선택해서 시작하겠습니다.

.gitignore

git 시스템이 관리하지 않을 파일들의 리스트를 담고 있는 텍스트 파일입니다. 파일명 앞에 .로만 되어 있는 건 숨김 파일이라는 뜻입니다.

github에서는 각 언어에서 관례적으로 필요한 .gitignore 리스트를 템플릿으로 제공합니다. 우리도 R로 선택해 볼까요?

license

저장소의 코드들에 대한 라이선스를 지정할 수 있습니다. 정확히는 .gitignore 파일처럼 주요 라이선스들의 템플릿을 제공합니다.

우리는 사용에 제약이 없고 대신 출처만 좀 써달라는 MIT 라이선스로 하겠습니다.

원격 저장소 만들기

이제 초록 버튼을 눌러 원격 저장소를 만들어 보겠습니다.

우리가 설정했던 .gitignore, LICENSE, README.md 파일 3개가 기본으로 만들어지면서 원격 저장소가 생겼습니다. 이제 이 이 원격 저장소를 이용해 로컬 저장소를 만들겠습니다.

Rstudio 프로젝트 만들기

이제 Rstudio를 켜볼까요?

오른쪽 위에 Project 버튼을 누르면 맨 위에 New Project 버튼이 있습니다. File > New Project 로 진행하실 수도 있어요.

새 프로젝트를 만들면 3가지 버튼이 나옵니다. 하나하나 살펴보죠.

  1. New Directory : 새 폴더를 만들면서 프로젝트를 시작합니다. 새 폴더를 만들면서 시작하기 때문에 같은 이름의 폴더가 있으면 에러가 납니다.
  2. Exsting Directory : 기존에 있는 폴더를 프로젝트로 만듭니다. 저는 사용할 일이 많이 없었습니다.
  3. Version Control : 버전 관리 시스템으로 프로젝트를 시작합니다.

Version Control을 선택하겠습니다.

git과 subversion이 있는데 저희는 git을 사용할껍니다.

아마 git이 설치가 안되어 있는 windows이신 분들은 다음으로 진행이 안됩니다. 링크를 참고해서 git을 설치해주세요.

여기서 다운로드할 수 있습니다.

Git을 설치했는데도 진행이 안되시면 이 포스트를 참고하세요.(업데이트 - 2018.03.19)

다시 github으로 돌아와서, 만든 원격 저장소의 URL을 복사합니다. 저는 주소창을 애용하는 편인데, 오른쪽에 초록색 버튼을 눌러도 됩니다.

그러면 주소 오른쪽 버튼이 URL 주소를 복사하는 버튼입니다. 그 버튼을 클릭하고 Rstudio로 돌아오겠습니다.

요 장면으로 다시 오시면 되구요.

이렇게 주소를 Reposigory URL에 붙여넣으시면, 알아서 폴더 이름도 설정됩니다. 보통 저장소 이름과 같게 설정합니다. 생성되는 폴더의 위치를 지정해 줄 수 있는데요. ~/가 문서 폴더를 뜻하구요. 저 같은 경우는 문서 폴더 밑에 project 폴더를 만들어서 그 안에 프로젝트들을 만들어 관리하고 있습니다. 이제 Create project를 눌러보겠습니다.

자 git 명령어를 우리는 모르지만, 저 과정이 git clone https://github.com/mrchypark/myfirestrepo.git을 수행한 것과 같습니다. 명령을 수행한 폴더 위치에 myfirestrepo(오타났네요;;)라는 폴더를 만들고, 그곳에 원격 저장소의 git history와 파일들을 다운로드합니다.

드디어 과정이 끝났습니다. Rstudio의 오른쪽 아래를 보시면 파일 4개(github에서 만든 3개 + .Rproj 파일)가 있는 것을 확인하시면 과정이 잘 끝난겁니다. 몇 가지가 원래랑 좀 다른데요. 하나는 콘솔창의 가장 위에 보이는 작업공간(working directory)이 바뀌었구요. 그냥 프로젝트를 만들 때와 달리 오른쪽 위 패널에 Git 탭이 추가된 것입니다.

github과 연결된 프로젝트

축하합니다! 드디어 github의 원격 저장소와 연결된 Rstudio 프로젝트를 성공적으로 만들었습니다. 여기까지 따라하셨으면 새로운 프로젝트를 Git으로 관리하면서 원격 저장소로 Github을 사용하는 상태가 되신겁니다. 이제 git으로 버전관리를 하거나 Github에 관련 내용을 올리는 내용을 포스팅해야겠네요.ㄷㄷㄷ 따라 오시는 동안 궁금한 점이나 이상한 점, 잘 안되거나 하는 부분이 있으면 댓글로 알려주세요. 블로그 글이 도움이 되셨다면, 블로그에 도움을 주실 많은 방법이 있습니다. 감사합니다.

Corrections

If you see mistakes or want to suggest changes, please create an issue on the source repository.

Reuse

Text and figures are licensed under Creative Commons Attribution CC BY-NC-ND 4.0. Source code is available at https://github.com/mrchypark/mrchypark.github.io, unless otherwise noted. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".

Citation

For attribution, please cite this work as

Park (2018, March 15). mrchypark: [github] rstudio로 github 프로젝트 시작하기. Retrieved from https://mrchypark.github.io/post/github-rstudio로-github-프로젝트-시작하기/

BibTeX citation

@misc{park2018[github],
  author = {Park, Chanyub},
  title = {mrchypark: [github] rstudio로 github 프로젝트 시작하기},
  url = {https://mrchypark.github.io/post/github-rstudio로-github-프로젝트-시작하기/},
  year = {2018}
}