GitHub RStudio 연동하기
이번에는 깃허브를 가입하고 GitHub RStudio 연동 작업을 같이 해보시겠습니다. 깃허브라고 하니까 뭔가 깃(Git)이라는 놈이 따로 있을 것 같은 느낌이 들지 않나요? Git은 로컬(내 컴퓨터)에서 코드의 버전을 관리하는 과정을 돕고, 깃허브(GitHub)는 인터넷 상에서 코드를 공유하고 협업을 가능하게 해주는 플랫폼입니다.
깃과 깃허브가 뭔지 또 우리의 히어로 CHATGPT에게 물어보겠습니다. 그간 다른 포스트를 작성할 때는 3.5 Turbo 버전을 이용했는데 이번에는 4.0 버전의 답변을 들어보겠습니다.
Git, GitHub에 대하여
깃(Git)과 깃허브(GitHub)는 코드를 작성하고 관리하는 도구입니다.
Git : 이것은 마치 작업을 하면서 중간중간 ‘저장’하는 것과 비슷합니다. 예를 들어, 당신이 문서를 작성할 때 중요한 부분을 작성한 후에 ‘저장’을 누르지 않으면, 컴퓨터가 꺼지거나 문제가 생겼을 때 그 전까지 작성한 모든 내용을 잃을 수 있습니다. 그래서 중간중간 ‘저장’을 해두면, 문제가 생겼을 때도 이전에 ‘저장’해둔 시점으로 돌아갈 수 있을 것입니다. Git은 이런 원리로 코드를 관리해줍니다. 코드에 변화가 생길 때마다 그 상태를 ‘저장’해두고, 필요할 때 이전 상태로 돌아갈 수 있게 해줍니다.
GitHub : 이것은 마치 클라우드 스토리지와 같습니다. 당신이 작성한 문서를 본인의 컴퓨터에만 저장해두면, 다른 사람이 그 문서를 볼 수 없을 뿐더러, 컴퓨터에 문제가 생겼을 때 그 문서를 잃을 수 있습니다. 그래서 많은 사람들이 클라우드에 문서를 저장합니다. GitHub도 이와 비슷하게, 당신이 작성한 코드를 클라우드에 저장하고, 다른 사람들과 공유할 수 있게 해줍니다. 또한, 여러 사람이 동시에 같은 코드를 수정하더라도 그 변화를 관리해주는 기능도 있습니다.
이런 식으로 보면, Git와 GitHub는 코드를 안전하게 저장하고 관리하며, 공유하는데 도움을 주는 도구라고 이해하실 수 있을 것입니다.
GitHub 접속 및 가입
hoxy, 혹시 깃(Git)을 설치하지 않으셨다면 먼저 깃을 설치하고 오시겠습니다.
웹브라우저를 열고 ‘github.com‘에 접속합니다. 뭔가 블링블링 하면서 사이버틱 판타스틱 합니다. ‘Sign up’ 클릭하여 Email 주소 입력을 시작으로 가입절차를 진행합니다. 잘 보시면 ‘Let’s begin the adventure!’라는 말이 보이시나요? 이게 그냥 일상적인 문구일 줄 알았습니다. 이후 왜 제가 이런 말을 하게 되는지 아시게 될 겁니다.(뭐야! 무서운건가? 아니면 보이스피싱? 아니지 인터넷 사기인가…)
패스워드를 설정하고 유저네임을 선택하고 깃허브로부터 업데이트나 공지사항을 이메일로 전달받을 것인지 여부에 대해 체크를 합니다. 그리고 컨티뉴를 누르게 되면 어드벤쳐(퍼즐풀기)가 시작됩니다. 내가 눈썰미가 없는건지 오후 나른한 시간이라 집중력이 떨어진건지… 이제 여러분 차례입니다. 이번 관문을 한번에 통과하신다면 깃허브 이용자격이 충분히 있으시게 됩니다.(30개나 문제를 풀다보니 내가 왜 이러고 있나 하는 자괴감이…)
자, 다 통과 하셨나요? 좌우 그림을 머리 속으로 잘 생각해서 10문제를 맞추시면 통과하게 됩니다. 난 이제 틀렸어.. 먼저 가.. 하시는 분 계신가요? 괜찮습니다. 첨이니까요.^^/
암튼, 체크표시로 합격소식을 알려주는데, 크리에이트 어카운트를 클릭하면 깃허브에 등록한 이메일 주소로 인증번호를 발송합니다. 그 번호를 확인하여 인증창에 입력하면 최종적으로 가입이 완료됩니다.
앗! 끝난게 아니었군요. 또 뭔가 이것 저것 요구합니다. 진짜 이거 인터넷 사기 아니야~ 하는 생각이 드시나요?? 일단, 아래 그림 하단의 ‘Skip personailzation‘을 클릭해 주십시요. 전 이걸 놓쳐서 이런 저런 깃허브의 시달림?에 시달렸습니다.(뭐야. 이 말은. 약국가서 “약사님, 두통약 두통 주세요!” 이런 말 같잖아?!)
자, 깃허브 가입은 끝났고 본격적으로 원격 저장소를 만들어 보겠습니다.
원격저장소(Remote repository) 생성
‘스킵 퍼스날리제이션’ 하셨으면 아마도 아래 그림과 같이 Dashboard 화면으로 접속하셨으리라 생각합니다. ‘Create repository‘를 눌러서 깃허브 서버에 나의 첫번째 레포지토리를 생성하시겠습니다.(이제 진짜 탈탈 털리는거 아니야? …)
레포지토리 이름을 입력하고, 디스크립션에 가볍게 입력해 줍니다. 저는 Quarto를 이용해서 깃허브에 웹사이트를 구축하려고 하기 때문에 이름을 quarto-website로 지었습니다. 그 외의 옵션에 대해서는 일단 그대로 두고 ‘Create Repository‘를 클릭 하겠습니다.
드뎌 내 인생 처음이자 마지막(아 이건 아니지 ㅋㅋㅋ) 원격 저장 공간(quarto-website라는 이름의)이 깃허브 서버에 만들어졌습니다. 일단 추카추카! 짝짝짝!(이 글을 읽는 사람에게 보상을 줌으로써 조금이라도 더 내 블로그에서 놀도록 어그로?를 끈다.)
위 화면에서 조금 스크롤 해서 내려오면 아래와 같은 내용이 있습니다. 그 중에 오렌지 네모박스에 있는 url주소를 복사해둡니다. 조금 있다가 RStudio와 연동할 때 필요한 정보입니다. 여기서부터 정신 차렷! 해주시기 바랍니다. 저도 좀 헷갈리기도 하더라구요.
GitHub RStudio 연동하기
RStudio로 다시 돌아옵니다. 메뉴에서 Tools > Project Options > Git/SVN > (None->GIT) >예 를 순차적으로 클릭합니다. 이 인터넷 기사 양반, 참 운전 어지럽게 하시네~ 라는 말이 나오만 합니다. 가끔은 난이도를 높혀야 브레인 근육이 튼튼해집니다! Tools부터 시작해서 화살표 방향을 잘 따라오세욧!!
앞 단계에서 RStudio를 재실행하고 ‘Git’ 탭이 생긴걸 확인할 수 있습니다. (테리의 어드벤쳐, 숨은그림찾기 입니다. Git 탭을 찾아보세요!)
Git탭 클릭 > ‘Commit’ 클릭 후 ‘Review Changes’ 창이 뜨면 Ctrl + a(전부 선택)를 눌러서 모든 파일을 선택합니다.
Stage 클릭, Commit message를 입력한 후 Commit 클릭을 통해 Git Commit을 수행해 줍니다. 로컬(내 컴퓨터)에서 quatro-website 폴더에 있는 파일에 대해 Commit이 실행되었습니다. 처음하는 로컬커밋이라 Commit message는 ‘quarto-website project init’이라고 입력했습니다.(여기서 init은 초기화 정도로 생각하세요..)
Author identity unknown
위 작업을 통해 내 컴퓨터(로컬)의 깃 커밋 명령을 수행하면 아래와 같은 메시지가 나옵니다.
*** Please tell me who you are.
Run
git config –global user.email “you@example.com”
git config –global user.name “Your Name”
이것은 여러 사람이 이 워킹 디렉토리에서 작업을 하게 되면 누가 어떤 작업을 했는지 확인하기 위해서 작업에 이름표를 붙이기 위한 거라고 생각하시면 됩니다.
RStudio 우측 하단의 Terminal 창을 선택해서 깃허브 가입시에 사용하셨던 것을 이용해서 위 명령을 실행해주시면 됩니다.(대시가 2개입니다.)
예) git config –global user.email “gildonghong@gmail.com”
git config –global user.name “gildonghong”
로컬에서 커밋을 했으니 내 컴퓨터에 있는 이 홈페이지 파일들을 이제 원격저장소로 넘겨보도록 해보겠습니다.
New Branch 버튼( )을 누르고 ‘main’으로 브랜치 네임을 입력하고 ‘Add Remote’ 클릭 후 ‘origin’으로 리모트 네임 및 유알엘(GitHub에서 복사했던.)을 입력합니다. 그리고 ‘Add’를 클릭하면 설정이 완료되고 Create를 클릭합니다.
fatal:
fatal: unable to access ‘https://github.com/********/*******.git/’: SSL certificate problem: self-signed certificate in certificate chain
위와 같은 에러가 뜨시는 분 계신가요? 이건 내 컴퓨터의 RStudio로 깃허브의 레포지토리(저장소)로 접속할 때 인증문제로 인해서 발생하는 에러입니다.
RStudio 상단 메뉴에서 Tools > Global Options > Git/SVN > Create SSH Key 버튼 클릭 > SSH key type: RSA 선택후 Create > Close > Options 화면에서 View public key > Ctrl + c 후 Close > Apply > OK 해서 RStudio 메인화면으로 나옵니다.
이제 깃허브 대시보드로 가서 상단 제일 우측의 서류함 옆의 아이콘을 눌러서 Settings를 선택합니다. 좌측 중앙쯤에 SSH and GPG keys 메뉴를 누르고 New SSH key 버튼을 눌러 줍니다. 접속한 화면에서 title을 적당히 입력하고(예. myhome-computer) 위에서 복사했던 것을 Key 섹션에 붙혀넣기 후 Add SSH key 버튼을 클릭합니다.
다시 RStudio로 돌아와서 설정한 내역을 제대로 적용하기 위해서 RStudio를 완전히 닫고 다시 실행해줍니다. terminal창에서 아래의 명령어를 실행합니다.
git remote set-url origin https://github.com/……/…...git ( 이 부분은 자신의 것과 맞게 해주세요.)
git push -u origin main
앗. 갑자기 이상한 창이 뜹니다. 내 컴퓨터와 Git-Hub를 Connect 하기 위해 Sign in(로그인)을 하라고 합니다. ‘Sign in with you browser’를 클릭해서 로그인 합니다.
이어서 아래와 같은 화면에서 ‘Authorize git-ecosystem’을 눌러서 내 컴퓨터와 GitHub를 커넥션 시켜 줍니다. 내 컴퓨터니까 인증해달라는 작업이고 이후에는 나타나지 않을 것으로 보입니다.
아래 그림처럼 로컬(내 컴퓨터)에 있던 파일들이 원격저장소로 옮겨졌습니다. 그리고 앞으로 로컬에서 작업 후에 위와 같은 방식으로 커밋을 하게 되면 변경된 내역을 깃허브에서도 동일하게 관리할 수 있게 됩니다.
여기서 잠깐, Stage는 뭐고 Commit은 뭘까요? CHATGPT 4.0을 무료로 서비스 해주는 WRTN(뤼튼)을 통해 답변을 받아 보겠습니다.
Stage와 Commit에 대하여
‘Stage’와 ‘Commit’은 코드의 버전 관리를 위한 핵심적인 개념입니다.
Stage: ‘Staging’은 Git에서 변화를 추적하기 위해 선택한 파일을 준비하는 단계입니다. 여기서 ‘Stage’는 사전적으로 ‘준비 단계‘라는 의미를 가집니다. 즉, 여러분이 어떤 파일을 수정하였다면, 그 변경사항을 Git이 추적하도록 ‘Stage’ 상태로 만듭니다. 이렇게 함으로써, Git은 해당 파일의 변경사항을 다음 ‘Commit’에 포함시키기 위해 준비합니다.
Commit: ‘Commit’은 준비된 변경사항들을 확정하는 단계입니다. ‘Commit’ 단계에서는 ‘Stage’ 상태의 파일들의 변경사항들이 저장되며, 이는 프로젝트의 히스토리에 기록됩니다. 각 ‘Commit’은 고유한 ID를 가지며, 이를 통해 특정 시점의 코드 상태로 돌아갈 수 있습니다.
따라서 차이점을 요약하면, ‘Stage’는 변경사항을 추적하고 준비하는 단계이며, ‘Commit’은 준비된 변경사항들을 확정하고 히스토리에 기록하는 단계라고 할 수 있습니다. 이 두 단계를 통해 코드의 버전 관리가 이루어집니다.
오늘은 조금 복잡해서 난이도가 있어 보이네요. 고생많으셨습니다.
LIFE2.0: IT Playground, 테리였습니다. 감사합니다.
‘secondlife.lol’의 모든 콘텐츠는 저작권법의 보호를 받습니다. 무단 전재와 복사, 배포 등을 금합니다.