19  통합개발환경

데이터 분석 스크립트를 개발할 때 버전 제어(version control)는 매우 유용하다. R 프로그래밍 언어 전용 통합개발환경 RStudio는 Git과 통합이 잘 되어 있다. 몇몇 고급 Git 기능은 명령 프롬프트가 필요하지만, 일반적인 Git 작업에 대한 좋은 인터페이스를 RStudio을 통해 무료로 제공되고 있다.

RStudio에서 작업 디렉토리와 연관된 프로젝트를 생성을 통해 관련 파일을 추적한다. Rstudio 프로젝트에 Git을 통합시켜 버전 제어를 함으로써 프로젝트 개발과정을 시간에 따라 추적하고, 이전 버전으로 되돌릴 수 있으며, 다른 사람과 협업을 원활히 수행할 수 있다. RStudio에서 Git을 이용하여 시작하려면, 새 프로젝트를 생성한다.

그림 19.1: 메뉴에서 “New Project…” RStudio 프로젝트 생성화면

프로젝트 생성 방식에 대해 묻는 대화 상자가 열린다. 여기서 몇 가지 옵션을 선택할 수 있다. 가령 이미 만들어 둔 planets 저장소를 RStudio에서 Git 저장소로 재사용한다고 가정해 보자. 저장소가 컴퓨터 디렉토리에 있으므로, “Existing Directory”(“기존 디렉토리”) 옵션을 선택한다.

그림 19.2: 기존 디렉토리에 프로젝트를 생성하는 화면
“버전 제어” 옵션이 보이나요?

여기서 사용하지 않겠지만, 메뉴에 “버전 제어” 옵션이 있어야 한다. GitHub에서 저장소를 복제하여 컴퓨터에 프로젝트로 생성하려면 클릭해서 지정해야만 된다. 만약 옵션이 존재하지 않는다면, 이는 아마도 RStudio가 Git 실행파일이 어디 있는지 모른다는 것을 의미한다. RStudio에 Git 실행파일 위치를 알려주지 않는다면 더이상 진행이 불가능하다.

Git 실행파일 찾기

먼저 Git이 컴퓨터에 설치되어 있는지 확실히 확인한다. 맥이나 리눅스에서 쉘을 열고, 윈도우에서는 명령 프롬프트를 열고 다음을 타이핑한다.

  • which git (맥, 리눅스)
  • where git (윈도우)

그러면 Git 실행파일 경로가 나타난다. 만약 컴퓨터에 Git 버전이 없다면, Git 구축 및 설정을 참고하여 Git을 설치해야 한다.

다음으로 쉘이나 명령 프롬프트를 열고 which git (맥, 리눅스), 또는 where git (윈도우)를 타이핑한다. Git 실행 파일 경로를 복사해 둔다.

GitHub 데스크탑이 설치된 Windows 컴퓨터에서의 경로는 다음과 같다.

C:/Users/UserName/AppData/Local/GitHubDesktop/app-1.1.1/resources/app/git/cmd/git.exe

참고: 사용자 컴퓨터마다 경로에 다소 차이가 날 수 있다.

RStudio에 GitHub 위치 알리기

RStudio에서 Tools 메뉴 > Global Options > Git/SVN으로 이동한 후 명령 프롬프트나 쉘에서 찾은 Git 실행 파일을 찾아간다. RStudio가 자동으로 재시작된다.

참고: Git이 이미 설치되어 있다 하더라도, 맥OS를 사용하는 경우 Xcode 라이센스 동의가 필요할 수 있다.

다음으로, RStudio가 기존 디렉토리를 사용하려는지 물어보게 된다. “Browse…”(“찾아보기…”)를 클릭해서 원하는 디렉토리로 이동한 후 “Create Project”(“프로젝트 생성”)를 클릭한다.

그림 19.3: 원하는 작업 디렉토리 이동 화면

이제 완성! 기존 planets 저장소에 RStudio 새 프로젝트를 생성했다. 메뉴에서 “Git” 메뉴를 확인해 보자. RStudio는 현재 디렉토리를 Git 저장소로 올바르게 인식했다. 또한, RStudio를 통해 Git을 자유롭게 활용할 수 있도록 필요한 다양한 도구들이 제공된다.

그림 19.4: RStudio에서 프로젝트에서 인식한 Git 저장소

저장소 기존 파일들을 편집하기 위해서, 우측 하단 “Files”(“파일”) 패널에서 클릭할 수 있다. 이제 명왕성에 대한 몇 가지 추가 정보를 명왕성 파일(pluto.txt)에 추가한다.

그림 19.5: pluto.txt 파일 편집 화면

파일을 편집한 후 Git 메뉴에서 “Commit…”(“커밋…”)을 클릭하여 변경사항을 저장할 수 있다.

그림 19.6: 편집 완료 후 커밋 메뉴 선택

이제 어떤 파일을 커밋할지 선택할 수 있게 하고, 커밋 메시지를 입력할 수 있는 대화 상자를 연다. (“Staged” 적절한 상자를 체크하면 된다). “Status” 아이콘은 각 파일의 현재 상태를 나타낸다. 파일을 클릭하면 변경사항에 대한 정보가 아래 패널에 펼쳐진다.(git diff 출력이 활용된다). 모든 것이 원하는 대로 되면, “커밋”(“Commit”)을 클릭한다.

그림 19.7: 커밋 메시지 작성 화면

변경사항을 푸시하려면 Git 메뉴에서 “브랜치 푸시”(“Push Branch”)를 선택하면 된다. 원격 저장소에서 가져오는(“Pull Branch”) 옵션도 있으며, 커밋 이력(“History”)을 보는 옵션도 있다:

그림 19.8: 커밋 이력, 브랜치 푸시/풀 메뉴 화면
푸시/풀 명령이 비활성화된 경우

푸시/풀 명령이 비활성화되었다면, 일반적으로 RStudio가 원격 저장소 위치를 모른다는 것을 의미한다. (예: GitHub). 이를 고치기 위해 저장소 터미널을 열고 git push -u origin main 명령어을 입력한다. 그런 다음 RStudio를 재시작한다.

만약 “이력”(“History”)을 클릭한다면, 콘솔에서 git log 출력과 것과 같은 그래픽 버전으로 확인할 수 있다.

그림 19.9: 커밋 이력 그래픽 버전으로 확인

RStudio는 프로젝트를 추적하는 데 많은 파일들을 자동생성한다. 종종 추적하고 싶지 않은 경우가 있다. 예를 들어, 데이터 크기가 큰 파일이나 API 인증키 같은 보안 정보가 포함된 파일들이다. 이럴 경우 파일명 혹은 디렉토리명을 .gitignore 파일에 추가한다.

그림 19.10: .gitignore 파일 설정화면
일회용 산출물 버전관리

일반적으로 일회용 출력(또는 읽기 전용 데이터)을 버전 제어는 권장하지 않는다. .gitignore 파일을 수정하여 Git이 이들 파일과 디렉토리를 무시하여 버전 제어에서 제외시킨다.

연습문제

  1. 새로운 디렉토리를 만들어서 프로젝트에 graphs 디렉토리를 추가하시오.

  2. .gitignore 파일을 수정하여 graphs 디렉토리를 버전 제어에서 제외시키시오.