사지방에서 웹 개발환경 구축하기 #6. 장고 공부 환경 만들기(3) Git 설치하고 Github과 연동하기
Oct. 2, 2021, 3:11 p.m.
이전 포스트까지 EC2 Ubuntu 인스턴스를 만들어 파이썬과 장고를 설치하고 장고 프로젝트까지 생성하여 테스트 해보는 과정을 거쳤어요. 장고 개발을 차차 공부해 나가기 위해서는 코드를 생성, 수정해보고 다시 서버를 실행해 보는 과정을 거쳐야 합니다.
그러려면 에디터가 필요한데, 사지방에서는 에디터를 설치하기가 쉽지 않습니다. 껏다 키면 다 사라지기 때문이죠. 그렇다고 Ubuntu 내장 에디터를 사용하기는 너무 불편합니다. 그래서 클라우드 환경에서 작업하는 것이 필요합니다.
이번 포스트에서는 Ubuntu에 Git을 설치하고 Github와 연결하는 방법을 적어보겠습니다. 이 과정을 거치면 앞으로 Github 사이트에서 작업 한 후 Ubuntu로 내려받아 서버 테스트를 해보는 방식으로 개발을 연습하면 됩니다.
1. git 설치하기
우선 Ubuntu 인스턴스에 접속합니다.
git을 설치하겠습니다. 아래의 명령어를 입력해줍시다.
~$ sudo apt-get install git
그리고 설치가 완료되었는지 버전 정보를 확인합시다.
~$ git --version
아래와 같이 나온다면 정상적으로 설치가 완료된 것이겠죠?
git version 2.25.1
git 설치를 완료했습니다.
2. Github Repository 만들기
Github에 들어가서 회원 가입을 해줍니다.
초록색 버튼 NEW 를 눌러 새로운 Repository를 만들어 줍니다.
위와 같은 화면이 뜨면 Repository 이름을 입력합니다. 웹사이트 개발용이므로 보안이 걱정된다면 Private 로 설정해 주는 것이 좋습니다. 또한 파이썬 환경으로 개발을 해주기 때문에 캐시파일같은 필요 없는 파일까지 공유되는 것을 막기 위해 ADD .gitignore 를 눌러 template 를 Python 으로 설정해 줍니다.
생성해주면 아래와 같이 Repository가 생성되고 .gitignore 파일이 생성된 모습을 볼 수 있네요.
Github에서 Repository를 생성했습니다.
3. Github와 Ubuntu 연결하기
Ubuntu에서 Git 저장소를 만들어 주고, Github Repository와 연결 한 후, Pull 을 통해 두 저장소를 동기화 시키고, 마지막으로 Push 를 통해 장고 프로젝트를 Github Repository에 올리는 순서로 진행합니다.
장고 프로젝트에 Git 저장소를 만들겠습니다. 장고 프로젝트 디렉터리로 이동합니다.
~$ cd test/testsite
그 다음 init 명령어로 Git 저장소를 만듭니다.
~/test/testsite$ git init
Git 저장소가 생성되었습니다.
이제 이전에 생성해 준 Github Repository와 연결을 해주어야 합니다. SSH 방식으로 하겠습니다.(HTTPS 방식은 얼마 전부터 사용하지 않습니다.)
SSH방식은 Github에 로그인을 매번 하지 않아도 Pull과 Push를 할 수 있는 편한 방식입니다. Ubuntu에서 SSH키를 발급 한 후 Github에 등록하는 방식으로 진행하겠습니다.
.ssh 디렉터리로 이동하겠습니다.
~/test/testsite& cd ~/.ssh
~/.ssh$
ssh-keygen 이라는 명령어를 통해 SSH 키를 발급할 수 있습니다.
~/.ssh$ ssh-keygen -t rsa -b 4096 -C "jellyho@naver.com"
RSA 방식으로 암호화 되는 4096바이트의 RSA 키를 만듭니다. 이메일은 자신의 Github계정에 등록한 이메일을 써주는 것이 좋습니다.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ubuntu/.ssh/id_rsa
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub
기본 위치에 저장하기 위해서 디렉터리를 입력하지 않고 엔터를 눌러주며 비밀번호도 지정하지 않고 계속 엔터를 눌러 키를 생성합니다.
그러면 키가 생성됩니다.
The key fingerprint is:
SHA256:i1qTGfi+xeiWlllF8qvRUH5AfxGKxXvGSAOyL4Dhn6g jellyho@naver.com
The key's randomart image is:
+---[RSA 4096]----+
| . ..oo. o. |
| . o .o+++. . |
| o . .*.oo=. |
| + o..+ +.+ |
| o + S+.o o |
| . . Booo |
| E O=+o |
| =*o. |
| .o+. |
+----[SHA256]-----+
그 다음에 이 파일을 SSH-Agent에 등록합니다.
~$ eval "$(ssh-agent -s)"
~$ ssh-add ~/.ssh/id_rsa
아래와 같이 등록되었다는 메시지가 출력됩니다.
Identity added: /home/ubuntu/.ssh/id_rsa (jellyho@naver.com)
그럼 이제 Github Repository에 등록하는 일만 남았습니다!
Github에 들어가서 오른쪽 맨 위에 위치한 프로필 아이콘을 누르고 Settings에 들어갑니다.
그 다음 SSH and GPG keys에 들어가 오른쪽 위의 초록색 버튼 New SSH key 를 눌러줍니다!
Title 은 자신이 마음대로 지정하면 되고, 중요한 것은 Key 부분입니다. 이 부분을 알기 위해서 아까 생성한 id_pub.pub 을 열어주겠습니다. 다시 Ubuntu 로 돌아가서,
~$ vi ~/.ssh/id_rsa.pub
Ubuntu 내장 에디터로 id_rsa.pub이 열립니다. 안의 내용을 모두 복사해서 Key 부분에 붙여넣어 주세요.
Add SSH Key 를 눌러 저장해 주세요. 이렇게 되면 Github에 SSH Key 등록을 완료하게 됩니다.
이제 Github 저장소에 접근 할 수 있도록 설정만 해주면 됩니다.
아까 git 저장소를 만든 장고 프로젝트 디렉터리로 이동합시다.
~$ cd test/testsite
그 다음 연결할 Github Repository에 들어가서 오른쪽 상단 초록색 버튼 Code 를 누르고 SSH를 선택합니다. 그러면 링크가 나오는데 이것을 복사해줍니다.
~/test/testsite$ git remote add origin 복사한링크
연결이 완료되었습니다.
4. Github에 장고 프로젝트 올리고 내리기
연결이 되었으니 장고 프로젝트를 Github로 올려볼까요? 그 전에 Ubuntu의 저장소와 Github의 저장소를 동기화 해야합니다. 간단히 pull 명령어로 실행하겠습니다.
~/test/testsite$ git pull origin master
이 명령어를 입력하게 되면 처음에 이런 출력이 나올 수 있습니다.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
이때 그냥 yes를 눌러주면 pull이 완료됩니다.
그럼 이제 push로 Github에 장고 프로젝트를 올리겠습니다!!
항상 pull, push를 쓸 때는 git 저장소의 .git 파일이 있는, 즉 git 저장소를 만든 디렉터리에서 명령어를 사용해야 합니다.
~/test/testsite$ git add .
~/test/testsite$ git commit -m "first_commit"
~/test/testsite$ git push origin master
add 와 commit 명령어를 이용해 git 저장소를 최신화 하고 push 를 통해 Github로 보냈습니다. 그럼 이제 Github에서 확인해 볼까요?
와, 제대로 Push가 된 모습이네요. 이제 답답하게 Ubuntu 터미널에서 프로젝트를 관리하지 않고 Github를 통해 파일을 수정, 추가할 수 있게 되었습니다.
장고 프로젝트를 일부 수정해 볼까요?
서버에 접속했을 때 간단한 문구가 나오도록 해보겠습니다.
먼저 views.py 파일을 만들겠습니다. Github에 들어가서 testsite 폴더에 들어가 Add file - Create New file를 누릅니다.
파일 이름을 views.py 로 하고 아래와 같은 코드를 작성한 후 저장을 눌러주세요.
from django.http import HttpResponse
def hello(request):
return HttpResponse("Whatever it Takes")
그 다음 urls.py 에 들어가서 아래와 같이 파일을 수정한 후 저장을 눌러주세요.
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('', views.hello),
path('admin/', admin.site.urls),
]
파일을 모두 수정했으면 Ubuntu로 돌아가서 변경된 파일을 Github로 부터 불러와 봅시다.
~/test/testsite$ git pull origin master
파일을 모두 불러왔으면 제대로 변경이 되었는지 실행을 해봐야겠죠? runserver로 서버를 실행하고 접속해 봅시다. 접속 주소는 http://Ubuntu 인스턴스의 퍼블릭 IP:8000 임을 잊지 마세요!
~/test/testsite$ python3 manage.py runserver 0:8000
잘 작동이 되는 걸 확인할 수 있습니다.
이번 포스트를 통해 Ubuntu에 git을 설치하고, Github Repository를 만든 다음, SSH key를 통해 git과 Github를 연결 시켜주었습니다.
그런 다음 pull과 push를 통해서 Ubuntu에서 생성한 장고 프로젝트를 Github으로 업로드 하였고, Github에서 프로젝트를 수정하여 다시 Ubuntu로 pull을 통해 다운로드 받았습니다.
사지방에서 장고 개발 준비가 끝났다고도 볼 수 있습니다. 이제 장고 책이나 인터넷 자료들을 보면서 Github에서 코딩을 하고, Ubuntu로 다운로드 받아 결과를 확인하면서 장고 개발 공부를 할 수 있습니다. 그러나 Github에서 프로젝트를 수정 할때마다 pull 하고,,, runserver로 서버 실행하고 하는 과정이 귀찮아 질 때가 있습니다. 다음 포스트에서는 sh 를 이용해서 이 과정을 자동화 하겠습니다. 그럼 안녕!
Git Github