Completion over Perfection

파이썬 - 장고 Django 소개 및 웹사이트 구축 후기 본문

파이썬 (Python)

파이썬 - 장고 Django 소개 및 웹사이트 구축 후기

난차차 2021. 1. 8. 11:26
반응형

파이썬 Python - 장고 Django 프레임워크의 기본 개념

장고라는 게 뭔데?

장고(Django)는 내가 세상에 보여주고 싶은 서비스(웹 또는 앱)를
쉽게 만들어주도록 도와주는 툴이라고 생각하면 쉽습니다.

 

대학교에서 조별과제를 통해 PPT를 만들어야된다고 가정해봅시다.

 

아무것도 없는 백지 상태에서 시작하는게 편할까요?

아니면 누군가가 잘 만들어놓은 적절한 템플릿을 고른 뒤
안에 내용물만 바꿔넣는게 편할까요?

 

당연히 만들어진 템플릿에 나만의 내용물로 바꿔서 채워넣는게 훨씬 편할 겁니다.

남들이 잘 만들어놓은 템플릿 → 이것이 바로 장고 Django 프레임워크입니다.
프레임워크란 그냥 PPT의 템플릿이라고 생각하시면 됩니다.

고수들이 만들어놓은 템플릿에 내용물만 채워놓자!

프레임워크(템플릿)라는게 하나만 있어?

PPT에도 여러가지 템플릿이 존재하듯이,
파이썬에도 여러 종류의 프레임워크가 존재합니다.

 

위에 말씀드린 Django 장고가 대표적이고,
Flask 플라스크라는 프레임워크도 있습니다.

파이썬 프레임워크의 양대산맥이다.

장고는 전부 다 만들어져 있어서 내가 그 만들어진 틀에 맞춰서 개발을 해야합니다.
반면 플라스크의 경우 아주 기본적인 것들만 제공되기 때문에
내가 여러가지를 선택하고 세팅해줘야합니다.

 

기성복(장고)과 맞춤양복(플라스크)의 차이라고도 생각하시면 좋습니다.

물론 Flask와 Django 두 개를 합쳐서 사용하셔도 됩니다.
양복을 위에만 맞춰서 입고, 아래는 기성복을 사서 입을 수도 있는거죠.

장고로 만든 서비스는?

대표적으로 인스타그램 Instagram 이 장고로 만들어졌습니다.
장고 재단에 매년 몇천만원씩 기부하고 있다고 하네요.

장고로 만들어진 대표적인 서비스

이 외에도 국내 서비스로는
요기요, 헤이딜러, 8퍼센트, 스마트스터디 등이 사용하고 있다고 합니다.

파이썬 Python - 장고 Django를 배우는 방법?

초보자가 장고를 배우고 서비스를 만드는데 걸리는 기간은?

저 같은 경우는 간단한 검색 + 검색결과를 출력해주는 사이트를 만들어보았는데요,

인터넷, 유튜브 등을 찾아보면서 혼자 공부하고
구현까지 해서 대략 2달정도 걸렸던 것 같습니다.

 

DB에서 검색된 결과를 프론트에 뿌려주는 부분에서

시간이 좀 오래걸렸었습니다.

 

다만 저의 경우에는 회사를 다니면서
퇴근후에 공부했기 때문에 오래 걸렸던 것이고,
각 잡고 빡세게 한다면 2주 ~ 1달안에 서비스 런칭까지 충분히 가능할 것 같습니다.

장고 공부하는데 참고한 사이트와 영상은?


1.

제가 첫번째로 추천드리고자 하는 사이트는

점프 투 장고(https://wikidocs.net/book/4223) 사이트입니다.

 

이 사이트에서 알려주는 내용을 따라하시면

게시판 하나가 만들어져 있을 겁니다.

 

점프 투 장고의 가이드에 의해 만들어진 사이트는 아래 링크의 게시판 사이트입니다.

[파이보] http://django.pybo.kr

 

이 사이트에서 도움을 많이 받았고,

특히 꼼꼼하게 스텝 바이 스텝으로 설명해 주시는게

장고의 개념을 이해하는 데 많이 도움이 되었습니다.

점프 투 장고 웹사이트 화면



2.

두번째 추천 사이트는 장고 공식 문서 사이트입니다.

(시작하기 | Django 문서 | Django (djangoproject.com))

 

한글로도 번역이 나름 잘 되어있고,

장고의 공식 문서이기 때문에 내가 찾고자 하는 내용이 모두 있습니다.

 

예시도 적절하게 들어져 있어서

이해하기도 쉬웠습니다만,

아무래도 점프 투 장고 사이트보다는 좀 더 딱딱한 느낌입니다.

장고 공식문서 웹사이트 화면



3.

세번째 추천 사이트는 장고걸스(들어가며 · HonKit (djangogirls.org))입니다.

점프 투 장고 사이트와 마찬가지로 엄청나게 친절한 설명과

꼼꼼한 예시로 엄청 많은 도움이 되었습니다.

장고걸스 웹사이트 화면


웹사이트 구축을 위해 기본적으로 알아야되는 장고의 개념은?

개인적으로 이 부분이 가장 힘들었습니다.

 

우리 눈에 보이는 부분(프론트엔드)는

장고안에 template이라는 것을 통해 구현을 하게 됩니다. 

html파일이 template이라는 폴더안에 들어가면 

해당 웹사이트로 접속하는 사람들의 눈에 html이 보여지는 것이죠.

 

사실 고정된 내용을 계속 보여주는 사이트라면, 

(위에서 예를 들었던 점프투장고 같은 교육용 컨텐츠)

html만 있어도 충분히 웹사이트 하나를 구축할 수 있습니다. 

 

하지만 우리가 접하는 사이트의 대부분은 

고정적인 내용을 조회하는 것보다는 

내가 요청한 내용에 부합하는 내용을 보고싶어하죠.

 

예를 들자면 네이버의 검색기능이 그렇습니다. 

오늘 파이썬을 검색하는것과 

내일 파이썬을 검색하는 것이 다르고 

또 시간마다 조회되는 내용도 변합니다.

 

마찬가지로 제가 구축한 웹사이트(best-moment.kr)의 경우도 

DB(서비스 제공에 필요한 정보를 저장하는 공간)에서 

특정 키워드를 통해 검색된 결과를 보여주는 구조로 구축을 했는데요.

 

이럴 경우, templates와 DB를 연동시켜서 보야줘야겠죠.

 

위에 예를 든 저의 사이트에서 "마더"를 검색하시면

아마 "50:04 ~ 51:33" 이라는 결과가 조회되실 겁니다.

 

이런식으로 프론트엔드에 DB에 조회된 값을 적용하려면

View라는 것을 통해서 DB에서 어떤 정보를 가져올 건지

로직으로 처리해야 합니다.

 

View가 한마디로 교통정리를 해주는 신호등같은 역할이라고

보시면 될 것 같습니다.

 

그리고 위에서 잠시 언급한 DB의 경우에는 

Model이라는 것을 통해 구현을 하게 됩니다. 

Model 클래스 안에서 어떻게 저장값들을 받을 건지를 구현하게 됩니다.

 

이렇게 장고로 웹사이트 구현 시

기본이 되는 Model, View, Template에 대해서 말씀을 드렸는데요,

잘 정리된 그림이 있어서 공유드리려고 합니다. 

 

 

그림으로 보시면 조금 이해가 어려우실 수 있으나, 

직접 코딩을 하다보면 머릿속으로 정리가 되면서

이해가 되실 겁니다. 

 

제가 공부하면서 이해한 것은 아래와 같습니다. 

 

  - template : 우리 눈에 보이는 페이지를 만드는 곳 (frontend)

  - view : template에서 어떤 페이지를 어떻게 보여줄 지 처리해주는 곳 (중간에서 로직을 처리하는 곳)

  - model : 웹사이트에서 보여줄 정보들을 저장하는 곳을 정해주는 곳 (backend)

 

 

 

 

 

반응형
Comments