Node.js vs Python

Sungho Kim·2022년 9월 18일
0

Node.js

목록 보기
1/1
post-thumbnail

백엔드로 서버를 빌드 할 경우, 가장 대표적인 웹 프레임워크로서는 Node.js, Django, Spring이 있다.

각각의 언어로는
Node.js = javaScript
Django = Python
Spring = java
가 사용된다.

개인 프로젝트를 진행할 때, Node.js와 Django중 어떤걸 사용할까에 대해 고민을 많이 했는데, 그동안 찾아본 각각의 장단점과 선택할때 고려해야 할 사항에 대해 얘기해보려 한다.

프레임 워크를 선택할때, 크게 3가지로 생각을 할 수 있는데,

  1. 좋아하는 언어가 있는가?
  2. 기존에 만들어져 있는 도구를 활용해서 만드는것을 좋아하는가 vs 도구를 하나하나 만드는것을 좋아하는가?
  3. CRUD만을 사용하는가 혹은 real time 데이터(API)를 활용하는가?

1. 좋아하는 언어가 있는가?

만약에 당신이 프론트 개발을 하고있고, JavaScript를 써본 경험이 풍부하다면, Node.js가 최상의 선택일 것이다. 웹과 커뮤니케이션 할 수 있는 유일한 언어가 JavaScript이기 때문에, 백엔드 역시 JavaScript를 통해 Node.js로 서버를 구현한다면 개발의 효율이 증가할 것이다.

그게 아니라 개발 입문을 python으로 진행했고, 기존에 crawling과 같은 파이썬 프로젝트들의 경험이 있다면 Django도 좋은 선택지다.

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

필자가 사용해본 경험으로는 가장 큰 차이점이 2번이다.
비유를 하자면 Node.js는 도화지에 그림을 그리는것이고, Django는 색칠공부 책을 산다음에 그안에 색상을 내가 원하는대로 잘 칠하는거? 라고 할수있다.

Django는 시작을 하면서 바로 view, model, authentication, admin등을 바로 활용할 수 있다. 따로 어드민 페이지를 만들지 않아도 이미 모든게 구축이 되어있어서 잘 활용하기만 하면 된다.

다만, 활용하기 위해서는 Django frame work에 대한 공부(사용 설명서)를 충분히 읽고, 그 안에서 정해진 규칙을 따라야지만 에러없이 작동을 한다는 점이 장점이자 단점이라고 할 수 있다.

그에 비해 Node.js는 시작해보면 정말 아무것도 들어있지 않다고 보면 되는데, 선택지가 많은 만큼, 자유도가 높다고 볼 수 있다.

3. CRUD vs Real Time Data(API)

단순 생성, 삭제, 수정, 읽기의 기능만 필요하다면 Django가 더 나은 선택이 될 수 있다. 이미 해당 기능들을 최적화 하기위한 컴포넌트들을 갖춰있기 때문에, 해당 기능들을 하나하나 만들어야 하는 Node에 비해 빠르게 개발을 할 수 있어서 효율성을 높일 수 있기 때문에다.

하지만 API활용을 많이하거나, 실시간 데이터 (채팅기능) 같은것을 사용할때는 Node.js가 더 나은 선택이 될 수 있는데, 이건 JavsScript가 갖고 있는 동기식 언어의 특징 때문이다.

정리: 그래서 뭘 사용해야 할까?

사실 정답은 없겠지만, 필자가 생각했을때 기존에 사용하던 언어를 기준으로 잡거나, 앞으로 사용하고 싶은 언어를 기준으로 결정을 하면 좋다고 생각한다.

앞으로 프론트쪽에 관심이 있거나, 기존에 JavaScript를 사용한 경험이 많다면 Node.js를 사용하면 되고,

앞으로 python을 이용한 프로젝트, 특히 AI나 수학연산이 많이 들어간쪽에 관심이 있거나, 개발을 파이썬으로 시작해서 python이 조금 더 친숙하다면 django를 사용해서 프로젝트를 진행해보는게 좋을거같다.

profile
공유하고 나누는걸 좋아하는 개발자

0개의 댓글