본문 바로가기
카테고리 없음

홈페이지 제작으로 부업을...

by 일코 2020. 7. 2.

 

홈페이지 제작 부업을 시작할 수 있을 만큼

장고 백엔드와 나름의 배포 지식을 쌓았다고 생각했다.

내 실력을 테스트해볼 겸 (무료로!)

스타트업을 운영하는 지인의 "ㅇㅇ이벤트접수" 페이지를 만들어주었다.

AskDjango 강의와 빨간책, 파란책, 그리고 배프의 오지랖파이썬?을 참고했고

몇 개의 튜토리얼도 참 많이 반복해보았는데

배포 후에 참 많은 실수들,, 치명적인 오류들이 있어

부끄럽지만 기록해 놓으려고 한다.

1. datetime모듈에 대한 이해 부족

하아.. 이 부분이 지뢰밭일 줄은 몰랐다.. 생각이 얼마나 짧았는지..

ㅇ월ㅇ일 18시 마감이라고 공지를 받아서

dt.datetime(2020,0,0,18) 이후에 접수버튼을 "접수가 마감되었다"는 텍스트로 바꾸는 if문을 넣었는데

하필이면 날짜, 시간, 분, 이런저런 변수를 다 따로 만들어놓고

(마감까지 ㅇ일 ㅇ시간 ㅇ분 남았습니다 하고 보여주려는 욕심ㅜㅜㅜ)

if문의 접수마감 조건을 (현재시간-종료시간).days<=0으로 잡았다.

그것 때문에... 마감은 당일 18시인데 새벽부터 접수마감이 되었다는 공지가 떠버려서

이른아침에 사람들이 전화를전화를 지인한테 여러 통 했나보다ㅜ

이 연락을 받자마자 문득 들었던 생각이 "해외 배포 사이트라서 타임존 차이가 있었던 걸까?" 하고

배포사이트의 콘솔에서 파이썬을 열고 dt.datetime.now()를 쳤더니 아니나다를까... 한국시간이 아니었다.

9시간 정도 느리다는 값이 나왔는데... 이것 때문에 금방 해결할 수 있었던 디버깅을 여러 바퀴 돌았다.

장고 내에서 타임존 설정을 한국으로 해놨기 때문에 시간대에는 전혀 문제가 없었는데,

부랴부랴 view코드 안에 마감일자를 시간대 차이만큼 계산해서 전부 바꿔버렸던 것ㅜ

결국 확신없이 실제 구동 사이트를 갱신해보고서야 타임존에 문제가 없는 것을 확인하고

식은땀 줄줄 흐르면서 코드수정, 커밋, 푸쉬, 배포사이트 깃풀, 리로드를 거쳐 복구를 해놓았다.

최종은 if (dt.now() - dt(마감일시)).seconds >= 0으로 대체했다.

여기서 또 간과한 문제가 있었다...

마감시간이 지나자 마자 timedelta의 days는 -1이 되고, seconds는 여전히 양수라는 사실을...

접수마감시점은 결국 timedelta.days > -1 시점이 되어야 한다는 뼈아픈 교훈을 얻었다...

 

2. 기본적인 CSS 속성도 이해를 못하고 있었음...

부트스트랩이나 몇 가지 라이브러리면 대부분의 디자인을 커버할 수 있을 줄 알았다..

아주 기본적인 레이아웃 배치에도 정말 막막한 상황이 많았고 시간도 가장 많이 걸렸다..

특히 인사말씀을 써주신 높으신분의 사진을 인삿말 우측에 붙여놓았는데

내가 코딩하는 컴퓨터(레노버 아이디어패드)와 일반모니터(1920x1080)에서 보이는 게 달랐던 것.

사진이 말풍선을 잡아먹고 있었고ㅜ

제목줄 백그라운드 이미지도 1920에 맞춰져 있던 건데

내 모니터에서 우측이 잘려 나오는 게 예쁘지 않아 이미지도 전부 잘라내는 작업을 했는데

결국 그 부분 때문에 일반 모니터에서는 우측이 휑해졌다;;;

문제는 정말 많았는데, 나열하려면 끝도 없을 것 같다...

뿌듯한 성취뽕이 들어와 있을 때는 "아니 사례라도 받아야 하는 것 아냐?" 하는

으쓱한 마음이 가득 있었는데

식은땀 닦고 있는 지금은 내가 위로금이라도 드려야 하는 것 아닌가 싶다.

나름 좋은 경험이었다.

 

이 와중에도 장고를 책으로 배우면서는 제대로 활용하지 못했던 부분들을 사용해볼 기회가 있었는데

1. extends 와 include 태그 : 다른 프레임워크에서도 당연한 기능 같지만.. 이것 너무 좋았다. 정말 너무 좋았다.

2. 어디서 배포를 하든 장고 settings의 타임존 설정을 하면 동일한 시간대가 된다는 것...

3. collectstatics를 하고 안하고 차이, DEBUG = False 로 설정하기 전 해야 하는 것들

4. 배포 전에 settings를 local_settings로 분리해서 따로 푸쉬하는 과정, 시크릿키 생성프로그램 활용

5. VueJS 기본사용법 : delimiters 설정부터 시작해서 간단한 디렉티브 사용법? 이건 더 배워보고 싶다.

 

장고 관련교재 중 개인적으로는 배프님의 책이 지루하지도 않고 실속있고, 하여튼 느낌이 가장 좋았다.

이 분도 패스트캠퍼스에서 강의를 하시는 분인 것 같은데,

강의는 들어본 적 없지만 패캠 강사분들께서 집필하신 교재들은 대부분 후한 점수를 받는 것 같더라.

 

중급 수준을 갖추게 되면 이진석님의 인강을 다시 한 번 들어보고 싶고.. (이 분 모르는 게 없는 듯)

김석훈님의 인프런 강의는 현재 듣고 있다. VueJS와 장고 믹스인 구현 부분은 정말 "노하우 대방출" 이더라.

 

이진석님은 여전히 장고와 애져, 리액트를 밀고 계시는 것 같은데..

뭔가 최고라고 느껴지고, 내용도 유용하지만.... 이상하게 재미가 없다ㅜㅜㅜ

기간 대비 강의료가 비싼 편인데, 그 부분 때문에도 부담스럽기는 하다.

웹 분야로 이직할 마음이 들 때라면 모를까 (그럴 리는 없겠지만ㅎ)

댓글