
*<점프 투 장고 :https://wikidocs.net/78004> 와 <장고 공식 문서: https://docs.djangoproject.com/ko/3.2/intro/ >를 참고해서 포스팅한 게시물입니다.
※백엔드 공부를 시작하면서 블로그에도 같이 정리를 하면 좋을 것같아 시작하는 포스팅입니다. 오류나 오타 지적 환영합니다 :)
| 목차
1. Node.js VS django
2. django 란?
2-1 Django의 정의
2-1-1 프레임워크 vs 라이브러리
3. django 시작하기
3-1 파이썬 설치
3-2 파이썬 가상 환경 만들기
3-3 가상환경에 장고 설치하기
3-4 장고 프로젝트 생성하기
3-5 파이참 설치하고 장고 개발 서버 실행하기
1. Node.js VS django
백엔드(Backend)에 대한 공부를 시작하게 되면, 보통 우리는 Node.js라던지 Django라는 것을 접하게 될 것이다.
(백엔드는 서버와 DB를 관리하는 기술을 뜻함) 그래서 Node.js는 뭐고 Django는 뭔데..? 😯
두 개의 차이점을 잘 설명해주는 유튜브가 있어 링크를 걸어놓겠다. (https://youtu.be/PnhmeFakkXg)
유튜브에 나와있는 설명을 간략적으로 정리를 해보자면 우리가 무엇을 빌드하느냐에 따라 선택이 갈린다고 한다.
장고(django)는 *CRUD를 위한 최선의 옵션을 갖고있다. (ex. 인스타그램, 유튜브)
유저, 인증, 뷰,템플릿, URL,*Static filies 등이 최적화가 되어있는데 이로인해 사진을 update하고 read하며 댓글을 create, delete이 가능... 즉, 장고의 사용 예시들 중 하나인 인스타그램은 *CRUD 방식을 사용하기 때문에 장고를 사용하여 개발했다고 이해하면 될 것같다
*CRUD란 (C:Create, R:Read, U:Update, D:Delete)의 약자이다.
*Static filies 란 말 그대로 정적인 파일이라는 말이다. 주로 이미지, JavaScript 또는 CSS와 같은 추가 파일을 뜻함.
CRUD 외에 Real time이 필요할 때 API를 사용해야하는데 API가 자바스크립트 베이스일 경우 Node.js를 사용하면 좋다. (ex 넷플릭스 => CRUD외에 스트리밍이나 리얼타임을 자주 사용하기 때문이다.)
즉, 더 짧게 요약하자면
django를 추천 => CRUD를 활용할 경우
Node.js를 추천 => 리얼타임과 API 등등을 활용할 때
로 이해하면 될 것같다.
2. django 란?
여기서 우리는 django를 배워보도록 할 것이다. 근데 django가 도대체 뭔데? 배워야할 django가 무엇인지 부터 짚고 넘어가자.
2-1 Django의 정의
django 란?
=> 웹 프로그램을 쉽고 빠르게 만들어 주는 *웹 프레임워크다. (즉, 우리가 흔히 배웠던 C, Python과 같은 프로그래밍 언어가 아니다.)
여기서 웹 프레임 워크란 단어가 생소할 수도 있다.
실제로 웹 프로그램을 만든다고 하면 만들어야 할 기능은 수도 없이 많을 것이다. 그걸 어느 세월에 다 만들어...
하지만, 기능이 이미 만들어져 있는 웹 프레임워크를 사용하면 기능들을 사용자가 일일이 만들 필요가 없어진다. 그저 웹 프레임 워크에 있는 기능을 익혀서 사용하기만 하면 된다. (파이썬으로 만들어진 웹 프레임 워크 중 하나가 장고)
또한 장고는 기본적으로 SQL 인젝션, XSS(전에 해킹 기법 카테고리에서 포스팅했던 기법), CSRF, ClickJacking 과 같은 보안 공격을 기본적을 막아준다. 즉, 장고를 사용하면 이런 보안 공격에 대한 코드를 우리가 짤 필요가 없어진다.
보안 공격에 대한 코드를 짜지 않아도 되고 우리가 일일이 기능을 구현할 필요도 없으니 얼마나 편리한가..
2-1-1 프레임워크 vs 라이브러리
여기서 라이브러리(Library) 와 프레임워크(Framework)이라는 용어가 헷갈릴 수도 있을 것같다. (사실은 내가 그런 케이스다)
더 자세한 설명은 아래 유튜브를 참고하면 좋겠다.(https://www.youtube.com/watch?v=t9ccIykXTCM) 이 분 없었으면 진짜 공부 어떻게 하냐 여러모로 대단하신 분
공통점) 라이브러리와 프레임 워크는 둘다 코딩을 편리하게 하기 위해서 가져다 쓰는 것
차이점) "내가" 라이브러리를 부르고 "프레임워크"가 나를 부르는 것 (즉, 누가 누구를 컨트롤 하는가. 구글링을 해보니 흐름(Flow)의 제어권한이라고도 표현하는 것같다.)
라이브러리 ("내가" 코드를 컨트롤하고 모든 결정을 다 내린다 )
"내가" 필요할 때 부르는 것 (ex ) jQuery (웹사이트에 인터랙티브한 요소를 넣을 수 있음) )
프레임워크 ("프레임워크"가 정해준 규칙을 따라간다.)
프레임워크가 "나"를 부름. 프레임워크의 규칙을 따라야함 내가 코드의 규칙을 결정하는 입장 X (ex) django)
비유를 하자면 프레임 워크는 정해진 설계도를 가지고 레고를 조립하는 것이면, 라이브러리는 내 입맛대로 레고를 조립하는 느낌이다.
리액트는 라이브러리인지 프레임워크인지 정의하기 애매한 회색의 영역에 존재함.
3. django 시작하기
(* 이 글은 django에 대해 쓰는 글이므로 설치 환경이나 방법에 대해선 간략하게 쓰는 것에 대해 양해 부탁드립니다. 설치과정은 처음에 첨부한 점프 투 장고 문서를 보고 따라한 것이니 이를 참고하시면 될 것같습니다.)
3-1. 파이썬 설치
앞서 설명했던 것처럼 장고는 파이썬으로 만들어진 웹 프레임 워크이므로 파이썬을 설치해야한다. (이는 구글링을 하면 잘 나와있으므로 참고하면 된다.)
(+)보통 파이썬과 장고 개발에 많이 사용되는 에디터는 VScode와 Pycharm이다.
3-2. 파이썬 가상 환경 만들기
본격적으로 장고 개발 환경을 준비하기 위해선 파이썬 가상 환경이라는 개념을 알아야한다(장고를 파이썬 가상 환경에 설치할 것이기 때문)
Q. 근데 왜 가상 환경이 필요한데?
=> 하나의 데스크톱에 여러 버전의 파이썬을 설치해야하는 문제를 해결하기 위해 하나의 데스크톱 안에 독립된 가상 환경을 여러 개 만든다. 이로써 1 데스크톱에 여러 버전 파이썬을 사용 가능. 명령 프롬포트를 통해 가상환경을 만들수 있는데 이도 구글링을 하면 쉽게 만들 수 있다.
3-3. 가상환경에 장고 설치하기
https://wikidocs.net/70588 문서를 참고해서 설치과정을 따라오면 다음과 같은 결과를 볼 수 있을 것이다.

3-4. 장고 프로젝트 생성하기
장고 프로젝트를 생성하면 한 개의 웹 사이트를 생성하는 것과 같다. 프로젝트 안에는 여러 개의 앱이 존재하는데 앱들이 모여 웹 사이트를 구성한다.
여기서 앱은 우리가 흔히 알고있는 안드로이드 앱이나 ios앱인 하나의 프로그램을 뜻하는 게 아니다. 장고의 앱은 프로젝트를 구성하는 작은 단위의 기능을 뜻한다. 장고 프로젝트는 여러개일 수 있으니 이를 묶어줄 루트 디렉터리를 생성해줘야한다.
https://wikidocs.net/72377 문서를 참고해서 진행하면 다음과 같은 결과화면을 볼 수 있을 것이다.


3-5. 파이참 설치하고 장고 개발 서버 실행하기 (점프 투 장고에 써있는 에디터로 실행함)
https://wikidocs.net/72407 문서를 참고해서 따라오면 다음과 같은 결과를 볼 수 있을 것이다.


이렇게 우리는 django가 어떤 것인지, django의 설치와 간단하게 사용 찍먹(?)을 해보았다. 다음 게시물에는 장고의 공식문서에 나와있는 튜토리얼을 중심으로 게시물을 올릴 예정이다.
부족한 게시물이지만 도움이 많이 되었으면 좋겠습니다 :) 다음 게시물에서 봬요!
'웹 🌐 > Django' 카테고리의 다른 글
첫 번째 장고 앱 작성하기, part ② (Django 문서 참고) (0) | 2021.09.22 |
---|---|
첫 번째 장고 앱 작성하기, part ① (Django 문서 참고) (0) | 2021.09.22 |