전체 글

Heaon`s Blog
Cloud/Git

Branch와 Merge

Branch브랜치를 설명하기 전, 깃이 어떻게 동작하는지에 대해서 설명 후 브랜치가 왜 필요한지에 대해 설명하고자 한다. 일반적으로 깃에서 우리가 커밋을 날리면, 각 커밋은 숫자와 문자가 조합된 해시를 갖는다. 모든 커밋은 독특한 해시와 이전에 있었던 부모 커밋을 참고하고 있는 형태로 존재한다.  우리가 어떤 프로젝트를 하게 되면, 여러 기능들을 개발하게 되는데 이렇게 순차적으로 작업해서 한 작업 다음에 다음 작업을 하는 식이라면 시간도 많이 들고, 전에 있던 작업을 마무리 짓지 못하면 다음 단계로 넘어가지 못하는 현상이 일어나게 된다.  따라서 해당 문제를 해결하기 위해서, 각자의 작업을 독립적이게 진행하고 어느 시점에 다다랐을 때, 모든 기능을 합쳐 관리한다면 좀 더 효율적이게 프로젝트를 진행할 수 ..

Cloud/Git

Repository와 Commit

Repository리포지토리는 깃 이력(파일 변경 이력)을 저장하는 저장소로써 깃 이력이 들어가는 병에 비유할 수 있다. 각 프로젝트는 하나의 리포지토리를 가지고 있으며 해당 리포지토리를 통해 버전을 관리할 수 있다.    이번에는 파일 변경 내역을 추적하기 위해 폴더를 깃 레포지토리로 만들고 파일 변경을 추적해 보도록 하자.testcase 폴더를 만든 뒤, 해당 폴더에 접속한다.git init을 통해 해당 폴더를 깃 리포지토리로 만들어 파일 변경 이력을 추적한다. 파일 변경 이력을 추가하기 위해, helloworld 파일을 만든다.변경된 파일을 git status을 통해 조회한다.  git init : 해당 폴더를 파일 변경 이력이 추적가능한 깃 리포지토리로 만든다. 이때 해당 폴더에서는 git 관련 ..

Cloud/Git

Git설치와 설정

Git 설치Git : https://www.git-scm.com/ 깃은 운영체제마다 설치하는 방법이 상이함으로 운영체제를 잘 확인해서 설치하여야 한다.   현재 나는 MacOs을 사용하는데 Mac에서는 Homebrew을 이용하여 설치하는 것을 권장하고 있다.     Git 설정깃을 설치하고 나선 깃에게 우리가 인지, 이 컴퓨터에서 작업을 수행하는 대상이 누구인지 알려줄 의무가 있다. 따라서 깃을 설치하고 나서는 반드시 유저의 이름과 이메일을 설정해야 한다.  git config --global user.name "Jheaon"git config --golbal user.email "Jheaon@naver.com"

Cloud/Git

Git과 Github

Git버전 관리 시스템으로, VCS(Version control Service)라고도 한다. 깃은 파일 버전을 관리를 해주기 때문에, 코드를 저장해 주는 역할뿐만 아니라 공공 기관에서 데이터의 버전을 저장하고 관리하는 역할까지 무궁무진하게 활용되고 있다.버전 관리 시스템 : 파일의 변화를 시간에 따라 추적하고 관리하는 시스템 (쉽게 말하자면 프로젝트 내에 세이브 포인트를 제공하는 서비스)으로 이전 버전의 파일을 비교하거나 되돌아갈 때 큰 도움을 준다. Githubgithub는 웹 사이트에 자신의 프로젝트를 올린 뒤 해당 프로젝트를 다른 사람과 관리할 수 있도록 해주는 서비스이다. 깃과 비교해보자면 깃은 버전 관리 소프트웨어, 깃허브는 버전 관리를 다른 사람과 공유할 수 있도록 하는 서비스이다.

FrameWork/Django

[Django] 함수 기반 View

📚 View 란? 1개의 HTTP 요청에 대해서 1개의 뷰가 호출 된다. (urls.py/urlpatterns 리스트에 매핑된 호출 가능한 객체) 웹 클라이언트로부터 HTTP 요청을 처리하며 크게 함수, 클래스 기반 뷰 이렇게 2가지가 존재한다. 📚 View 호출 시 인자 View 호출시 📒 1번째 인자 : HttpRequest 객체 전달 현재 요청에 대한 모든 내역을 담고 있음 📒 2번째 인자 : 현재 요청의 URL로부터 Capture된 문자열들 url/re_path를 통한 처리에서는 모든 인자는 str 타입으로 전달되며, path를 통한 처리에서는 Converter의 to_python에 맞게 변환된 값이 인자로 전달된다. 📚 View 호출 시 리턴 값 필히 HttpResponse 객체를 리턴하여야 한..

FrameWork/Django

[Django] 관계를 표현하는 Model Field

📚 DBMS에서의 관계 📒 1:N에서의 관계 -> models.ForeignKey로 표현 📒 1:1에서의 관계 -> models.OneToOneField로 표현 📒 M:N에서의 관계 -> models.ManyToManyField로 표현 📚 ForeignKey 1:N 관계에서 N측에 명시합니다. models.ForeignKey(to, on_delete) 📒 to : 대상 모델 클래스를 직접 지정하거나, 클래스명을 문자열로 지정합니다. 자기 참조를 할때는 self로 지정합니다. 📒 on_delete : Record 삭제 시 Rule을 의미한다. 아래와 같은 값들을 사용 할 수 있다. CASCADE FK로 참조하는 다른 모델의 Record도 삭제 (장고 1.X에서의 디폴트값) PROTECT ProtectedE..

FrameWork/Django

[Django] Model 객체 조회하기

📚 Model Manager Django 에서 Model Manager은 데이터베이스 질의 인터페이스를 제공한다. 📚 Model 객체 조회 다음과 같은 쿼리를 통해 객체를 조회 할 수 있다. python manage.py shell >>> from App.models import Post >>> Post.objects.all() 📒 어떤 속성 값에 따른 내림 차순으로 조회하기 Post.objects.all().order_by('-pk')[:10] 🔖 오름차순으로 정렬하고 싶다면 속성앞에 - 기호를 빼주면 된다. model.objects.all() 은 객체 리스트가 반환되게 된다. 따라서 객체내에 있는 내용을 수정 하거나 뽑아 내고 싶다면 다음과 같이 작성하여야 한다. qs = Post.objects.al..

FrameWork/Django

[Django] shell 사용하기

📚 Shell 이란? 파이썬에는 여러가지 Shell이 존재하는데 Shell은 코드 한줄 한줄을 입력받고 그때 그때 결과값을 반환해주는 프로그램을 의미한다. 종류로는 IPython, Jupyter, BPython .. 이 존재한다. 📚 Django 프로젝트에서 Shell 뛰우기 Django 프로젝트에서 shell 을 뛰우려면 해당 명령어를 사용하면 된다. python manage.py shell 용도는 주로 모델의 질의 인터페이스, 혹은 그외의 용도로 자주 사용한다.

FrameWork/Django

[Django] Django project 시작 전 static, media 설정하기

Static , Media 파일 - Static 파일 : 개발 리소스로써 정적인 파일(js, css, img etc..)을 의미 - Media 파일 : FileField/ImageField를 통해 저장한 모든 파일을 의미하며, DB필드에는 저장경로(문자열)를 저장하며 파일은 파일 스토리지에 저장된다. Media 파일 수행 방식 1. HttpRequest.FILES를 통해 파일을 전달 2. 뷰 로직이나 폼 로직을 통해, 유효성 검증을 수행한다. 3. FileField/ImageField 필드에 "경로"를 저장한다. 4. settings.MEDIA_ROOT 경로에 파일을 저장한다. Settings.py 에서 static, media 설정하기 project/settings.py STATIC_URL = '/st..

JHeaon
JHeaon 개발일지