본문 바로가기
패스트캠프

[패스트캠퍼스] 파이썬 강의 5주차 장고

by 리딩파이 2022. 11. 12.
728x90

처음 강의 진입시

5주차 드디어 말로만 듣던 장고를 접하다.
곰같은 힘이여 솟아랏!!이거 알면 백퍼 아재...ㅋㅋ4가지 정도의 초능력을 가진 우주보안관 장고, 시다바리 말도 함께 나와서 사건을 해결하는 만화였다. 말은 탈 것도 되고 경우에 따라 사람같이 두발로 서서 총도 쏘곤한다. 국민학교 시절이었던 것 같은데 스킬대사를 치면서 장난친 일들이 생각이 났다. 육백만 달러의 사나이랑 조금은 비슷한 모티브같기도 하다. 육백만 달러의 사나이가 나와서 그런데 소머즈도 재미있었다. 청각이 좋은 사람은 소머즈의 귀를 가졌다고 아직까지도 드립을 치고 있는 실정이다.ㅋㅋ 잠시 추억팔이를 했다. 그런데 장고의 주제곡도 아주 흥겨웠다.ㅋㅋ

아래의 장고 프로젝트 만드는 순서는 여기 강의내용 아님
01.프로젝트만들기
02.장고설치
03.장고프로젝트만들기
04.설정하기(DB:데이터베이스, S3)
05.DB초기화
06.관리자계정만들기
07앱만들기
08.모델설계(DB)
09.뷰만들기(기능, 계산)
10.탬플릿 만들기(화면표시, 양식)
11.URL만들기

본론으로 돌아와서...
Django란 보안이 우수하고 유지보수가 편리한 웹사이트를 신속하게 개발하는 하도록 도움을 주는 파이썬 웹 프레임워크이다. 훌륭한 개발자에 의해 만들어진 이 프레임워크는, 웹 개발을 하는데 많은 도움을 주기 때문에 새롭게 웹 개발을 시작할 필요없이 그저 프레임워크를 활용하여 앱 개발에만 집중할 수 있게 된다. 무료 오픈소스인데다가, 활발한 커뮤니티들이 있고, 좋은 참고자료와 무료 및 유료 지원을 하는 옵션들이 제공된다고 한다.

뭐 이렇게 어디서에서 묘사를 했는데 나쁜 게 전혀 없다는 이야기? 같다

■■■장고의 특징은
Complete(완결성 있는)
Versatile(다용도의)
Secure(안전한)
Scalable(확장성 있는)
Maintainable(유지보수가 쉬운)
Portable(포터블한)
라고 하는데 아직 설치도 하지 않아서 대충만 이해하고 넘어 가자!
그리고 코딩은 모두가 읽기 편한 코드를 작성하는게 중요하다고 한다. 하지만 유지보수가 힘들게 나만 알아 볼수 있는 코딩을 하면 '내 코딩 수명이 더 길어지지 않을까?'라는 생각도 해 본다.

프레임워크는 내코드->장고->서빙
라이브러리는 라이브러리->내코드->서빙

■■■DB모델링
어떤 item에 속성 데이터를 사전에 정의하는 것
>>>장고 모델링 특징
id 기본값 정의하지 않아도 자동 정의
외래키 사용하면 뒤에 xxx_id를 자동생성

■■■장고 디비 컬럼 타입
CharField (길이가 정해진 문자열)
IntegerField (-2147483648 ~ 2147483648)
PositiveIntegerField
BigIntegerField (-9223372036854775808 ~ 9223372036854775807)
Positive BigIntegerField
DateField(날짜)
DatetimeField(날짜 + 시간)
BooleanField (True/False)
TextField(길이가 정해지지 않는 문자열)
EmailField(이메일 포맷)
JSONField (Json 포멧)
AutoField (Auto Increment 필드 with IntegerField)
BigAutoField(Auto Increment 필드 with BigInteger Field)
ForeignKey (다른 테이블 PK 참조 필드)

이제 슬슬 install을 해 볼까?흐흐흐

But....처음부터 벽에 부딪히다...

python을 실행시키고 
C:\>pip install django
까지는 잘된 것 같다. 그 다음...

python에 django를 install하고 나서 python-adim에 에러메시지가 떠서 멘붕...

'python-adim'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.

나는 속으로 '그럼 그렇지 이렇게 쉽게 시작될리가 없어'라는 생각과 앞으로 닥칠 깊은 빡침을 예상했다.
이것 저것 삽질해보다가 결국 파이썬을 재설치하고 다시 장고를 인스톨하니 "'python-adim'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 이 문구는 안떠서 다행이다 싶었지만 또 다른 난관이 올지는 예상하고 있었다.

여기서는 source venv\bin\activate에서 source 빼고 venv\Scripts\activate만 입력하니 그냥 가상환경에 돌입했다. 강사가 맥이라서 짜증나는 부분이 많다. 하지만 극복해야지 혼자서 나에겐 구글링이 있으니깐...라고 생각하지만 그래도 삽질은 짜증이 날만하고 가끔 욕도 나온다. 똑같이 했는데 안되니...

python manage.py makemigrations
No changes detected

구글링으로 이것 저것 다해봤으나 도저히 안되어서 실습코치께 슬랙으로 물어봤다. 구글링으로 경로도 추가했는데 경로 추가한 것이 잘못된 것이다.
settings.py여기에 마지막에 'shortener'를 추가를 해야하는 것이다. 강의 내용에서는 이 설명이 없어서 [황당, 당황]했다.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'shortener'
]
728x90

그 다음은 DBeaver 설치하고 그 안에 있는 테이블 컬럼 등을 살펴보았다.
git도 설치하고 잘되나 싶었는데 git clone에서 아무런 설명을 하지 않고 그냥 클론을 실행하고 파이링 깃허브에 올라갔다는 강사의 말에 예전에 대충 훑은 깃버전 관리 강의를 다시 정주행해야 했다. 90분 가까이 되는 강의를 듣고 왔다...오늘은 이제 힘들 것 같다. 내일로 미뤄야 겠다... 

박용웅님(Heropy)의 자세한 설명은 아주 인상 깊다. 질문 자체가 나올 수 없는 강의에 찬사를 보낸다.
■■■git 사용법 항상 왼쪽아래 브랜치명을 확인하고 git status로 브랜치를 확인하자
VS모드에서 명령어
git init
git status
git add .(한칸띄움) 스테이지에 올림(add .은 모두 추가 but 하나만 추가하려면 add 파일명)
git commit -m '프로젝트를 생성' --> 버전생성
git log 나가려면 q키

새로운 내용일 수정되어야 버전업가능
변경 후 변경부분 알아보려면
git status
git add.
git commit -m '타이틀 태그 수정'
git log
(HEAD->master)부분이 현재 버전 q키눌러서 빠져나감

브랜치 추가
git branch add-style
git branch 로 브랜치 확인

git checkout add-style 브랜치 이동 후 코드 수정
main.css 추가 후 코드 작성
열려있는 브랜치 항상 확인 (왼쪽 아래 add-style 확인)
git status
git add .빨강이면 초록으로
git status
git commit -m '스타일 추가'
git log q키눌러 나감

git checkout master
Swiched to branch 'master' 그리고 왼쪽 아래 master 수시로 확인
index.html 파일만 있음
main.css 보러면 브랜치 이동해야 함
git checkout add-style

git checkout master
git branch remove-this <-리무브-디스 브랜치 생성
git checkout remove-this
git branch -d remove-this 자기 브랜치에서는 자기가 삭제가 안됨 다른 브랜치로 이동
git checkout master
git branch -d remove-this 리무브-디스 삭제됨
브랜치를 생성하자마자 이동하려면
git checkout -b abc 를 하면 abc브랜치를 생성하면서 abc브랜치로 이동
git branch

 abc
 add-style
*master

git checkout abc

git merge add-style 두개 브랜치 병합하면 파일과 코딩이 병합됨
주의사항 병합 충돌시(똑같은 부분에 다른 코드가 있을시) 4가지 옵션 중 선택해서 병함 완료

git status
git add .
git commit -m 'XYZ~'
git log

버전되돌리기, 복구
git branch
git status

코드 수정 후
git status
git add .
git commit -m '1'

똑같이 2,3을 만듦
코드 수정 후
git status
git add .
git commit -m '2'
코드 수정 후
git status
git add .
git commit -m '3'

버전2로 되돌리기
git log
git reset --hard HEAD~

버전3으로 복구
git log
git reset --hard ORIG_HEAD

복구확인 git log
git reset --hard HEAD~3 은 3단계 이전 버전으로 이동

3버전으로 다시 복구
git reset --hard ORIG_HEAD

commit 아뒤 내용으로 선택 이동
git reset --hard commit아뒤 복사
git log

깃허브에 +눌러 하나의 저장소를 만든 다음 주소를 복사해 온다.
git status
git remote add origin 주소복사
git push origin master 중간에 인증과정을 거쳐야 한다. master만 업로드

git branch

 abc
 add-style
*master

git push origin --all 모두 업로드

다시 버전 관리
git init
git status
git add .
git status
git commit -m 'Create project'
git log

똑같이 깃허브에 +눌러 하나의 저장소를 더 만든 다음 주소를 복사해 온다.
git remote add origin 주소복사
git push origin --all
브라우저에 가서 확인한다

보고와서 여러번 shortener 앱을 따라 해 봤다. 지우고 다시 따라하고 지우고 다시 따라하고...
강사가 건너뛰는 부분도 있고 에러가 너무 많이 나고 짜증도 나고 스트레스도 받아서 중지하고 다른 챕터로 넘어가야 겠다. 여러 강의를 들어 봤지만 강사의 설명이 부족한 것 같다. 물론 장고를 처음 접하는 내가 못하는 것일 수도 있지만 할때마다 에러가 나고 시간낭비하는 것 같은 기분이 드는 것 처음이다. 코치님도 다른 일을 하셔서 그런지 금요일이라서 그런지 6시간 넘게 대답이 없으셨다. 고된 일주일이였다.......

반응형

 

728x90
반응형

댓글