Node.js의 미래? 현직자들이 선호하는 조합은?

나는 보통 node.js를 그냥 일종의 런타임환경으로, 마치 '요리'에 비유를 하자면, 셰프 -> 리액트 같은 라이브러리 레시피 -> 코드 그리고 node.js를 셰프가 요리할 수 있는 주방에 비유하여 이해하고 있었고, 그 이상으로는 알아보지 않았다. 오늘 해당 포스팅을 통해 node.js가 뭔지, 이것의 전망과 앞으로 어떤 조합을 통해 프로젝트를 진행해나가는 것이 좋은지를 살펴보도록 하겠다.

Node.js의 전망?

node.js는 자바스크립트 언어로 만들어진 서버 사이드 플랫폼이다. 기존에는 웹 애플리케이션 개발 시, 브라우저에서 실행되는 클라이언트 사이드 기술인 자바스크립트와 서버 측에서 실행되는 서버 사이드 기술은 PHP/ASP 등 두가지 방법 중 하나를 선택해야 했다.(우리가 알고 있는 CSR/SSR과 연관지어 이해하면 될 것 같다.) 하지만, node.js는 이 두가지 방식을 모두 사용할 수 있도록 해주는 장점이 있다. 또한 퍼포먼스 측면에서뛰어나다. 그래서 이거 하나만 제대로 파는데 걸리는 시간이 CS기술과 SS기술을 모두 배우는데 걸리는 시간보다 훨씬 적어서 말 그대로 가성비 있는, 개발자들이 덜 골머리를 앓도록 하는 기술이라고 생각할 수 있습니다. (개인적으로 한가지 우려스러운 점은 처음부터 node.js만으로 프로젝트를 진행해서 이게 CS(ClientSide)기술과 SS(ServerSide)기술을 하나로 묶어놓은 것이란느 것을 간과하지 않을까 하는 점입니다.)

좀더 비유를 들어서 부연설명을 드려보겠습니다.

만약 대학교에서 사용할 가방과 필기구, 각종 기기와 학용품을 산다고 하자. 그러면 일단 노트북 크기와 노트북이 들어갈 가방의 사이즈를 고려해야 한다. 노트북이 너무 크고 가방이 작으면 들어가지 않을 것이고, 가방만 크고 노트북이 너무 작으면, 수업에서 노트북을 쓸때, 성능이라던가 화면크기 때문에 제대로 활용을 못할 것이다. 어떻게든 조정을 해서 노트북과 가방을 샀다고 하자. 거기서 끝나는 게 아니라, 이제 노트북에 호환이 되는 태블릿을 사야하는데, 아이패드르 살지, 삼성 갤럭시탭을 살지는 노트북과의 호환성에 달려있다. 어떻게든 호환이 되게 태블릿을 샀다고 하자. 그리고 이것들을 넣고 나서도 학용품과 책과 노트가 들어갈 공간이 있는지 까지도 고려해야 한다. 만약 책과 노트가 안들어간다면 가방을 다시 환불하고 좀 더 큰사이즈로 가방을 사아한다. 무턱대고 엄청 큰 여행용 가방을 사면 물론 다 들어가겠지만, 휴대가 불편할 것이 뻔하다. 이렇게 우리는 대학교에 입학하기 전부터 골머리를 앓게 될 것이다. 우리가 이런거에 시간낭비를 하지 않기 위해 패키지로 된 상품을 사게 된다.

자, node.js는 바로 우리 개발자가 골머리를 앓는 것을 최소화하도록 하기 위해 제공해주는 패키지 서비스라고 볼 수 있다.

따라서 node.js는 개발자들이 좀 더 적은 노력으로, 덜 스트레스 받고 개발을 진행할 수 있도록 해주는 것이라 볼 수 있다.

이제 실제 활용사례를 보겠습니다. 크롬 OS상에서 구동되는 v8엔진을 대체하기 위해 Node.js를 활용하고 있습니다. 뿐만 아니라 우리가 아는 클로벌 자이언트 기업, MAGA도 Node.js를 적극 도입하여 이미 서비스중인 상황입니다.

마찬가지로 우리도 이에 뒤처질세라, 국내 역량있는 IT기업인 네카라쿠베도 node.js를 이용하여 앱과 다른 서비스 제작을 진행중인 상태입니다. 앞으로 다른 더 쉽고 강력한 기술이 나오기 전까지는 node.js가 계속 장기집권을 이어갈 것이라고 예상됩니다.

Node.js와 주로 사용되는 언어 2가지

1>Javascript

거의 모든 사람이 아는 언어로, 당장에 brower를 키고 F12만 눌러도 코딩이 가능할 정도로 많은 이들에게 가까이 다가워 있는 언어가 아닌가 싶습니다.특징을 살펴보겠습니다.

1 . 동적이며, 타입을 명시할 필요가 없는 인터프리터 언어이다.
2 . 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 지원한다.
3 . 클라이언트 측 스크립트 언어로서, 웹 브라우저에서 실행된다.

  1. 웹 페이지의 동적인 효과를 제공한다. 5 . 다양한 라이브러리와 프레임워크가 존재한다.
  2. 자바스크립트를 이용하여 서버 측에서도 프로그래밍이 가능하다.

2>Typescript

요즘 함수형 프로그래밍이 각광 받고 있어 한번쯤 들어봤을 만한 언어이면서도, 아직 많은 사람들이 접하지는 못해본 그런 언어가 아닌가 싶습니다. 저도 프레이머에서 이벤트 구현할때 잠깐 살펴본 언어일뿐 거의 써보지 못했네요.
특징을 살펴보겠습니다.

1 . 풍부한 API 2 . 높은 생산성 3 . 안정성

Node.js의 주요 프레임워크 2가지

1.Express

구조/패턴에 대한 높은 자유도와 유연성, 확장성을 가진 프레임워크로 다음과 같은 특징이 있습니다.

1 . 웹서버를 빠르게 구현하기 위해 개발시에 구조에 대한 자유도가 높다.
2 . nestJs보다 가볍고 빠르게 비교적 간단한 웹을 위한 서버를 만들기 좋다.
3 . 큰 규모의 프로젝트를 작업할 때 각각 개발자마다 아키텍처가 달라 유지보수가 어렵다.

2.nest

DB, ORM, Configuration, 유효성 검사 등 많은 기능이 내장되어 있고, 모듈화가 편리하여 많은 IT기업에서 각광받는 프레임워크로 다음과 같은 특징이 있습니다.

1 . 모듈식 아키텍처가 정의되어 재사용성이 좋다.
_ _ (클래스, 라이브러리 사용하듯이 가져다 쓰기 좋다)
2 . 개발에 대한 자유도가 낮은 반면 통일성 있고 규모가 큰 프로젝트를 만들기 좋다.
3 . 대규모 프로젝트에서 Express보다 유리하다.

출처: https://fastcampus.co.kr/media_Node_23

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.