Git bash에서 jupyter notebook사용하기

 

처음에 아나콘다를 깔 때, add system path ~하는, 체크박스가 위 아래 있는 창에서 위쪽 체크 해제된 체크박스를 체크해주면 시스템 패스에 anaconda가 잡히고, 여기서 바로 jupyter notebook을 사용할 수 있다.

 

[체크하면 빨간색 글씨가 되는데, 처음에는 다들 이거보고 무서워서 체크 안하는데 하는게 다른 프로그램에서 아나콘다 사용하기 좋다.]

[Git/Github] Git? 깃? 옷깃?

 

프로그래밍을 쪼끔이라도 하게되면 요새는 무조건 알게되는 Git 이란 녀석.

근데 일반적으로 코딩을 하다보면 저 존재 없이도 잘만 코딩하는데, 왜 꼭 어디선가 나타나서 더 배울것을 던져주는 것만 같은 기분이 들게 하는가.

사실 그냥 나홀로 코딩할때는 로컬에만 잘 분류해서 저장해주면 끝 아닌가?

 

그런게 아니니까 깃이 나왔겠죠?

 

오늘은 Git이라는 녀석이 무엇이고 왜 써야 하는지 그리고 기본적으로 어떤 흐름으로 작동하는지 알아보도록 하겠습니다.

 

Git이란?

Git(깃)이란 나무위키 曰 "깃은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다."라고 합니다.

분명 한글을 읽고 있기는 한데, 도대체 이해가 어려운 것 같습니다.

특히 '분산 버전 관리 시스템'이 압박이죠.

이걸 한마디로 정리해보자면, 내 코드의 변경사항을 기록해주고, 다른 사람들의 변경사항도 기록해주는데, 백업도 해주는 것입니다. 말그대로 열심히 기록해주는 시스템입니다. 말 그대로 게임에서의 세이브/로드 기능+'실행취소'와 같은 백업기능이죠.

 

막간으로 Git이랑 Github는 무엇이 다를까요?
git은 버전관리 툴이지만, github는 클라우드 서비스입니다.
git으로 버전관리를 한 것을 누구나 볼 수 있게, 혹은 쉽게 접근이 가능하게 하여 이 버전관리를 활용할 수 있게 해주는 것이지요.

 

그러면 깃을 왜 사용해야 하나?

왜 사용해야 하냐면! 그것은! 팀이나 조별과제시에 발표자료 혹은 교수님 제출자료의 제목을 한번 생각해보시면 한방에 이해가 됩니다.

발표자료_초안.ppt
발표자료_초안(수정).ppt
발표자료_초안(수정)(2차수정).ppt
.
.
.
발표자료_초안(수정)(2차수정)_최종본.ppt
발표자료_최종본_진짜 최종수정.ppt
발표자료_최종본_final.ppt
발표자료_교수님 첨부용.ppt
[1조]발표자료 ppt의 제목 변천에 관하여.ppt

네. 비단 제목 뿐만이 아니라, 중간에 누락되고, 나중에 오프라인으로 만나서 조장이 최종본을 열면 '어? 이거 제가 수정했는데 못보셨어요?'가 반드시 나오죠.

몬가.. 몬가 멋있고 엘레강스하며 팬시한 관리 방법이 있어야 할 것 같은 의무감 같은 것이 생기지 않습니까?

 

왜 저렇게 파일 길이가 계속 늘어나면서 뭔가가 덕지덕지 붙는걸까요?

바로 여러명이서 동시에 작업하기 때문입니다.

여러명이서 작업하며 내 파일도 내 컴퓨터에 백업으로 저장하면서 이메일로 주고받고 한명이 합치면 다음 사람에게 합친걸 넘겨주고... 그러면서 당연히 누락도 생기고 파일명도 다른 파일들과 구분하기 위해 저렇게 길어지는 것이죠.

그렇다면

만약에 팀 안에서 알아서 기록해주고 알아서 백업을 챙겨주는 사람이 있다면 팀원간에 이메일로 왔다갔다 하며 누락시키거나 파일명이 저렇게 길어질 필요가 있을까요?

한명이 전담해서(서기) 모든 자료를 받고, 취합하고, 수정사항이 있으면 그것만 보내면 알아서 백업 이후에 새 파일로 만들어서 누구나 볼 수 있게 해준다면?

그 한사람이 바로 깃(Git)입니다.

단순한 파일 하나만 왔다갔다 하는 것도 이런데, 그 수많은 라인의 코드파일들이 이리저리 왔다갔다한다면...?

꼭 써야 합니다 여러분.

 

깃은 그럼 어떻게 쓰는거야?

단순합니다.

0) [git config]

    git config --global user.email "---@--.--"
    git config --global user.name "---"

1) [git init]
    처음에 깃한테 어떤 폴더를 보라고 시킵니다. '야 여기 좀 보고 앞으로 이 폴더에서 일어나는거 싹다 기록해놔.'
    서기를 정하고 서기한테 '이제 우리가 너한테 모든 파일을 다 보낼거야'라고 합니다.

2) 열심히 그 폴더 안에서 지지고 볶습니다. 새 폴더도 만들고 코딩한 파일도 만들고 하면서요.
    서기한테 보내기 전 내 컴퓨터에서 열심히 작업을 하는 것과 같습니다.

3) [git status]
    그리고 깃한테 한번 쓱 물어봅니다. '잘 기록했니?' (물론 굳이 안물어봐도 됩니다. 알아서 잘 하니까요? 그치만... 궁금하잖아요?) 그러면 컴퓨터인 깃은 싹다 기록을 해놨다고 얘기를 하죠.
    서기도 마찬가지 일 겁니다.

4) [git add]
    그렇다면 그 변경사항 중 변경이 저장되길 원하는 것만 선택합니다. 이 순간부터 단순히 컴퓨터에 저장된 것이 아닌 내부적으로 '스테이지'라고 불리는 곳에 따로 입력해둡니다.
    서기의 컴퓨터에게 보내기위해 메일에 따로 업로드를 합니다.

5) [git commit [파일명] -m "뭐라뭐라"]
    그리고 현재 서기한테 던져준 파일들을 한 뭉텅이로 만들고 이 뭉텡이가 뭔지 설명을 적어줍니다. 서기 컴퓨터에 저장할 내용입니다. 여기까지 하면 서기가 서기 컴퓨터에 파일을 영구히 저장했습니다. 이것을 '레포'라고 부릅니다.

6) 깃헙이라는 클라우드 서비스에 프로젝트 저장소를 만듭니다. 가령 서기가 단톡방 혹은 옵톡을 파는 것과 같습니다.

7) [git remote add]
    컴퓨터에게 깃헙 주소를 알려줍니다. 사람들에게 옵톡 주소를 알려주는 것과 같습니다. 딱 한번만 알려주면, 다른 사람들이 방에 주소 없이 들어올 수 있듯 깃헙에도 한번만 해주면 따로 이 과정없이 바로 올릴 수 있습니다.

8) [git push]
    그리고 마지막으로 깃헙에 올리면 끝납니다.
    서기도 단톡방에 파일을 올려서 모든 팀원들이 볼 수 있게 하였습니다.

Mac OS 업데이트 시마다 거의 연례행사로 업데이트 후에 전에는 잘 되던 것이 왕왕 문제가 터지곤 한다.

 

오늘 터졌던 문제는 git 입력시에 바로 여러 추가 커맨드 문구가 나와야 하는데, 그러지 않고

xcrun error invalid active developer path

라는 에러가 출력되었던 것이다.

 

원인을 찾아보니

MacOS Mojave 업데이트 시 발생

MacOS High Sierra 업데이트 시 발생
MacOS Sierra 업데이트 시 발생
OS X El Capitan 업데이트 시 발생

등 참 여러 업데이트 시에도 발생하였다...

 

해결법은 의외로 간단한데, 터미널에서 xcode-select --install 만 쳐주면 된다.

 

그러면 대부분의 경우 설치 완료와 함께 문제가 해결되었을 터이나...

 

항상 예외는 나한테만 터지는지 저거를 커맨드 라인에 실행하고 프로그램이 실행되었는데

'소프트웨어 업데이트 서버에 접속할 수 없습니다.'

혹은

'소프트웨어 업데이트 서버에 접속할 수 없거나 일시적으로 사용할 수 없기 때문에 지금 업데이트 할수 없습니다'

라는 에러가 발생하였다.

(이렇게 불확실한 이유는 해결법을 찾고 너무 좋아서 그냥 작업하다가 원래 검색 페이지를 잃어버렸기 때문...)

 

혹시나 해서 git을 다시 쳐봐도 에러는 그대로인 상태.

 

여러 해결방안을 찾아보다가 '프로그램에서 알아서 업데이트 못해주면 내가 설치해버리자'는 생각에 무작정 애플 디벨로퍼에 쳐들어가 command line tools for Xcode를 수동으로 받고 설치하였다.(https://developer.apple.com/download/more/?name=for%20Xcode)

 

결과는 대성공.

 

다운 받을 때 주의 사항은 위에 메뉴에서 사과버튼 클릭해서 '이 Mac에 관하여'를 클릭했을 때 나오는 버전보다는 낮은 command line tools를 설치해야 한다는 것이다.

+ Recent posts