Node.js와 Django 중에서 무엇을 사용해야할까?

JUNHYUK CHOI
5 min readMay 18, 2020

백엔드, 서버를 빌드해야 하는 경우, 대표적인 웹 프레임워크(Web Framework)로서 Node.js, Django, Laravel, Spring 등이 있다.

Programming Language & Web Framework

오늘은 Node.js와 Django에 대해서 언제 어떤 프레임워크를 선택해야하는지를 알아볼 것이다. 프레임워크를 선택하기 전에 크게 네가지 관점에서 생각해보자.

  1. 좋아하는 언어가 무엇인가?
  2. 도구를 만들 것인가, 기존 도구를 가져다 쓸 것인가?
  3. 많은 데이터를 움직여야 하는가?
  4. 하드웨어에 접근해야 하는가?

좋아하는 언어가 무엇인가?

첫째, 좋아하는 언어를 선택하자.

만약 당신이 프론트 개발을 하고 있고, JavaScript를 정말 좋아한다면 Node.js는 최상의 선택이다. 왜냐하면 프론트는 좋던 싫던 간에 무조건 JavaScript를 사용해야 하는데, 만약 백엔드에서도 역시 JavaScript를 사용해 Node.js를 통해 개발한다면 개발 효율이 올라갈 것이다.

프론트에서는 JavaScript 이외에 언어 선택에 대한 다른 대안이 없다. 프론트 개발 언어는 오직 JavaScript뿐이기 때문이다. 하지만 백엔드의 경우에는 다른 대안이 많다. 예를 들면 Python, JavaScript, Ruby, PHP… 등 즉, 자유도가 높다는 것이다.

만약 당신이 JavaScript를 좋아하지 않는다면 백엔드에서는 많은 선택지가 있다. 좋아하는 언어를 선택하자.

도구를 만들 것인가, 기존 도구를 가져다 쓸 것인가?

둘째, 상대적으로 기본이 갖춰지고 이것저것 필요한 것들이 들어있는 프레임워크가 필요하다면 Django, 내가 쓸 기능들만 하나하나 직접 만드는 것을 좋아한다면 Node.js를 선택하자.

Photo by Glen Carrie on Unsplash

Node.js는 마치 레고 블럭이라고 보면 된다. 이게 무슨 말이냐면 Node.js에는 아무것도 들어있지 않다고 보면 되는데, 예를 들어서 작은 블록들을 하나하나 쌓아서 큰 성을 짓는 것과 같다고 생각하면 된다. 하나씩 붙여나가는 것을 좋아한다면 Node.js가 좋은 선택지가 될 것이다.

Photo by MARCIN CZERNIAWSKI on Unsplash

그에 비해 Django를 선택한다면 이것은 마치 큰 성과 같다고 볼 수 있다. Node.js가 부품을 쌓아 올려서 큰 성을 만들었다면, Django는 이미 지어진 큰 성이기 때문에 그것의 사용법을 익혀야 한다. 당신이 기본적인 기능을 갖추고 있는 프레임워크를 원한다면 Django를 선택하자.

많은 데이터를 움직여야 하는가?

셋째, 만약 많은 데이터를 움직이고 다뤄야 한다면 Node.js를 이용하자.

Photo by Tobias Fischer on Unsplash

예를 들어 Database 생성, Database 삭제, Data 전송, Data 저장 등의 작업을 한다면 데이터를 다루는 성능이 좋은 Node.js를 사용하는 것이 좋다. 여기서 말하는 Data는 Data Science를 말하는 것이 아니라 많은 유저들이 메시지를 전송하고, 받고하는 실시간 처리 같은 작업을 의미한다. 이런 경우에는 node.js는 좋은 성능을 보여줄 수 있다.

Django의 경우 python을 언어로 사용하는데 Python은 비동기 언어가 아니기 때문에 실시간 처리를 할 element가 없다. 그렇기 때문에 만약 채팅 기능을 만들고자 한다면 Node.js가 필요할 것이다.

하드웨어에 접근해야 하는가?

넷째, 하드웨어에 접근하고, Data Science나 이미지 압축 등을 해야한다면 Django를 선택하자.

Photo by Alexandre Debiève on Unsplash

하드웨어 접근에는 Node.js는 도움이 되지 않는다. 왜냐햐면 JavaScript는 메모리나 램, 즉 하드웨어에 접근할 수 없기 때문이다. JavaScript는 하드코어한 처리를 위해 설계된 것이 아니기 때문에 만약 당신이 이러한 것들을 하고 싶다면 Django를 쓰는 것이 좋다.

--

--