Search
Duplicate

Django vs Node.js

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Django
Scrap
태그
9 more properties
(오류 수정은 환영합니다!)
Search
분석하기
Django
Node.js
웹 프레임워크
자바스크립트 런타임
인스타, 핀터레스트, 유데미
넷플릭스, 우버, 페이팔
이미 기본이 갖춰져있고 세팅이 되어있음.
프론트는 자바스크립트가 무조건임! 그런데 백엔드도 자바스크립트로 쓸 수 있다면 효율이 엄청 좋겠쥬?
비동기언어가 아니기 때문에 실시간 처리를 할 element가 없다.
모든 기능들을 일일이 만들어야 한다.
CRUD(create, read, update, delete)방식의 경우 장고가 최적화가 되어있어 쉽게 구현이 가능하다.
비동기 방식인 채팅기능이 필요할 경우 무조건 노드를 써야함.
COUNT6

웹 프레임워크란?

웹 서비스를 개발하기 위한 프레임워크(클래스와 라이브러리가 합쳐진 형태)이다.
프론트엔드용 프레임워크에는 Angular, React 등이 있음.
풀스택 웹 프레임워크에는 Django, Ruby on Rails 가 있음.

자바스크립트 런타임이란?

언어를 실행하는 환경 그 자체를 말한다. 모든 브라우저에는 자바스크립트가 내장되어있다.
브라우저 밖에서는 자바스크립트를 사용할 수 없을까??
브라우저 밖에서도 자바스크립트를 실행하기 위해 만들어진 것이 node.js인 것이다.
node.js를 이용하면 파이썬처럼 코딩도 가능하고 서버도 생성할 수 있지, 이 자체가 웹서버는 아니다.

장고와 노드JS는 개념자체가 다른데 왜 비교하지?

웹브라우저(익스플로러, 크롬, 사파리)는 html+css+js(자바스크립트)로 이루어진 코드를 읽고 화면에 뿌려준다. 저 셋 중에 유일한 '프로그래밍 언어'가 자바스크립트이므로 웹을 공부하는데 자바스크립트는 거의 절대적일 수 밖에 없다.
물론 이 셋 만으로도 웹페이지를 만들 수는 있지만, 엄청난양의 데이터를 기억하고 불러와야하는 웹페이지의 경우 따로 서버를 구축해 필요한 데이터만 뿌려주는게 효율적이다. (서버 분야가 궁금하다면? → 현대의 웹서버(WAS))
여기서 프론트엔드(client side)와 백엔드(server side) 개념이 생겨났고, 결국 이 둘을 연결시키는 것이 문제가 되었다. 파이썬으로 웹을 개발할 수 없을까? 해서 만들어진 것이 '장고' 이고, 자바스크립트로 서버를 다룰 수는 없을까? 해서 만들어진 것이 '노트js'이다.
결국 개발자는 자기가 쓰던 언어를 계속 쓰고 싶어하기 때문에(반박불가;;) 파이썬 개발자가 파이썬으로 웹까지 건드리고 싶다면 장고를 쓸 것이고, 자바스크립트 개발자가 서버까지 건드리고 싶다면 노드js를 쓸 것이다. 결국 자기 취향이고, 어떤 종류의 웹페이지를 만들지에 따라 노드와 장고를 선택하게 된다.
필자는 파이썬을 주로 공부 중이고 자바스크립트는 1도 모르기에 장고를 택했다. 관련 글을 앞으로 게시할 예정이다. 자바스크립트 언어를 안다면 node.js를 공부해보자!

더 나아가기

파이썬으로 웹을 개발하는 프레임워크는 장고만 있는게 아니다. 대표적으로 플라스크(flask), 조금 더 나아가 FAST API가 있다.
장고와 플라스크의 차이를 간략히 설명하자면 장고는 웹사이트 개발을 위한 프레임워크이고 플라스크는 작은 앱이나 서비스를 위한 프레임 워크이다. 장고는 비교적 무겁지만 대부분 구현되어 있어 사용하기 좋고 플라스크는 비교적 가볍지고 기본적인 것만 제공한다. 웹사이트 개발 목적은 장고, 그 외는 플라스크를 추천한다! (장고로 앱을 만들어도, 플라스크로 웹을 만들어도 상관없다. 효율성과 특화된 부분의 차이)
FAST API는 2018년도에 나온 프레임워크인데 신흥강자라고 할 수 있다. 알아보니 매우 빠르고 이름처럼 API쪽에 특화된 것 같다. FAST API를 사용해보는 것도 좋은 시도일 것 같다.