본문 바로가기
컴퓨터 사이언스

[우당탕탕 웹개발 일기] CSS & HTML & Javascript & Django의 늪

by 제크와 죠세핀 2020. 6. 20.
반응형

이번 학기에 듣는 어떤 수업 때문에 웹개발과는 관련도 없는 내가 이번 학기에 2번이나 홈페이지를 만들게 되었다.

- 첫번째 홈페이지는 간단한 보여주기용 홈페이지로 그냥 윅스로 만들어도 될 정도였는데, 웹이 아니라 로컬에서만 동작하게 웹을 만들어야 하는 특수한 조건이 있어서 4년만에 css & html을 복습하고 팝업을 띄우고 싶어서 자바스크립트도 잠깐 공부했다.(교재원정대 하던 추억도 생각나고 뭐 나쁘진 않았다!)

- 두번째 홈페이지는 갑자기 난이도가 급 상승해서는 웹에다 유저가 데이터를 기록하면 그걸 서버에 저장하고, NLP를 통해 유저 데이터를 분석해서, 유저 친화적인 인터랙티브한 웹을 만드는 게 목표이다. 거의 하나의 SNS 플랫폼을 만드는 거나 다름없는 웹 작업 + NLP 분석과 Insight 제공 등 할 일이 너무 많다. 이걸 남은 2주일 안에 얼마나 높은 퀄로 뽑아낼 수 있을 지가 의문이다.

그래서 지금 2번째 프로젝트를 위해 장고(Django)라는 새로운 백엔드 라이브러리(?) 스러운 것을 쓰고 있는데, 생각보다 할만하면서도 Custom User 모델(특히 AbstractBaseModel)로 설계를 할 때 힘들었다. 그래도 나름 정보도 많고 (한국어 정보가 특히 많음) 간단한 데이터 구조에 대해서는 매우매우 설계하기 편리하다고 생각한다. 이게 다른 사람 코드를 보면서 작업을 하는데 사람마다 같은 기능을 하는 코드도 다른 방식으로 짜는 경우가 많고, 여러 블로그를 참고하면서 코드를 짬뽕시키다보면(...) 데이터베이스 모델(models.py)의 코드를 다 뜯어고쳐야 하는 경우도 발생한다. 근데 모델 코드는 쉽게 고칠 수 있는 건 아니어서(비교적) 그 부분에서 많이 화가 난다.ㅋㅋㅋㅋ 쨋든 나중에 또 장고를 쓸 일이 있을까 싶어서 글을 써보면 다음과 같다.

 

< Django 쓰는 방법(언젠가 다시 또 쓸 때 백업용) >

- 장고를 깔아놓은 가상환경으로 진입, 프로젝트 폴더로 이동하기

conda activate for_Django

 

- 장고 기본 명령어 모음

1) migration하기

migration이란 데이터 베이스를 셋업하는 과정인 것 같다.

model을 바꿀 때 migration에 문제가 생길 수도 있는데 그러면 나는 지금 단계에서는 다 테스트 데이터를 저장하니까 그냥 데이터를 싹 지우고 하는데, 프로젝트 폴더 내의 db.splite3 파일과 web과 app 폴더 내의 migration을 싹 밀고 진행하면 문제가 없다.

이 경우 admin 등 전반적인 프로젝트에 대한 migration도 다시 진행해줘야 한다.

python manage.py makemigrations MEgo

python manage.py migrate MEgo

python manage.py migrate # 순서 바뀌면 왜인진 모르겠는데 dependency 에러 남

 

2) 서버 run하기

python manage.py runserver

이렇게 하고 127.0.0.1:8000으로 접속 가능. 기본으로 장고에서 제공하는 admin 페이지(127.0.0.1:8000/admin)를 이용하여 눈디버깅을 하기 편하다. 물론 데이터도 직접 접근할 수 있고 굉장히 편하다.

 

3) 좋았던 튜토리얼 자료

장고걸즈(https://tutorial.djangogirls.org/ko/django_models/)

- 설명이 정말 친절해서 그냥 따라하면서 배우면 된다. Extra-tutorial도 도움되고 좋다. 물론 지금 시점에서 동작안하는 코드도 간혹 보이는데 그럴 땐 영어버전을 같이 보면서 하면 된다.

 

4) 기타 도움이 된 사이트

https://blog.sug5806.site/2019/05/02/2019-05-07-회원가입/

- 회원가입 페이지는 장고에서 따로 주지 않아서 직접 만들어야 하는데 Custom Abstract Base User Model을 쓸 때 회원가입 페이지 만드는 과정이 유독 험난하다. 그 중에서 굉장히 도움이 많이 된 블로그

https://www.w3schools.com/bootstrap/bootstrap_ref_comp_glyphs.asp

- 프로토타입 페이지 만들 때 쓰기 편한 아이콘들이 많다.

https://wayhome25.github.io/django/2017/03/14/django-07-kilogram-04-photo-model/

- 모델에 사진을 넣고 싶을 때 보면 도움이 된다.

 

프로젝트가 끝나고 나면 아마도 : 내 홈페이지 하나 정도는 이미 뚝딱 만드는 레벨이 되어 있을 것으로 감히 예상한다. 플젝하다가 또 추가할 내용이 있으면 계속 추가할 듯.

반응형

댓글