(오류 수정은 환영합니다!)
📕Django vs Node.js
📕웹 프레임워크란?
- 웹 서비스를 개발하기 위한 프레임워크(클래스와 라이브러리가 합쳐진 형태)이다.
- 프론트엔드용 프레임워크에는 Angular, React 등이 있음.
- 풀스택 웹 프레임워크에는 Django, Ruby on Rails 가 있음.
📕자바스크립트 런타임이란?
- 언어를 실행하는 환경 그 자체를 말한다. 모든 브라우저에는 자바스크립트가 내장되어있다.
- 브라우저 밖에서는 자바스크립트를 사용할 수 없을까??
- 브라우저 밖에서도 자바스크립트를 실행하기 위해 만들어진 것이 node.js인 것이다.
- node.js를 이용하면 파이썬처럼 코딩도 가능하고 서버도 생성할 수 있지, 이 자체가 웹서버는 아니다.
📕장고와 노드JS는 개념자체가 다른데 왜 비교하지?
- 웹브라우저(익스플로러, 크롬, 사파리)는 html+css+js(자바스크립트)로 이루어진 코드를 읽고 화면에 뿌려준다. 저 셋 중에 유일한 '프로그래밍 언어'가 자바스크립트이므로 웹을 공부하는데 자바스크립트는 거의 절대적일 수 밖에 없다.
- 물론 이 셋 만으로도 웹페이지를 만들 수는 있지만, 엄청난양의 데이터를 기억하고 불러와야하는 웹페이지의 경우 따로 서버를 구축해 필요한 데이터만 뿌려주는게 효율적이다.
(서버 분야가 궁금하다면? → 현대의 웹서버(WAS))
- 여기서 프론트엔드(client side)와 백엔드(server side) 개념이 생겨났고, 결국 이 둘을 연결시키는 것이 문제가 되었다. 파이썬으로 웹을 개발할 수 없을까? 해서 만들어진 것이 '장고' 이고, 자바스크립트로 서버를 다룰 수는 없을까? 해서 만들어진 것이 '노트js'이다.
- 결국 개발자는 자기가 쓰던 언어를 계속 쓰고 싶어하기 때문에~~(반박불가;;)~~ 파이썬 개발자가 파이썬으로 웹까지 건드리고 싶다면 장고를 쓸 것이고, 자바스크립트 개발자가 서버까지 건드리고 싶다면 노드js를 쓸 것이다. 결국 자기 취향이고, 어떤 종류의 웹페이지를 만들지에 따라 노드와 장고를 선택하게 된다.