강의/fastcampus

[패스트 캠퍼스] 한 번에 끝내는 Node.js 웹 프로그래밍 : 백엔드 part1(Node.js와 개발환경 설정)

loia 2021. 7. 5. 00:06

 #Node.js #노드 

 

 

패스트 캠퍼스 서포터즈 3기를 마무리하며...

짧다면 짧고 길다면 길었던 4주간의 패스트캠퍼스 서포터 3기가 끝났습니다.

처음 서포터를 시작할 때만 해도 강의도 열심히 듣고 블로그도 열심히 해야겠다는 마음을 갖았는데

막상 시작해보니 회사 일과 병행하기가 만만치 않았네요...

 

당장 회사에서 진행하고 있는 일들(Cloud Native, Spring Boot, CentOS, SW Test 등)로

빠른 시일내에 Node.js 과정을 다 끝냈수 있을까?? 하는 걱정이 있었지만

다행히 서포터가 끝난 후에도 블로그 미션을 완수해서 평생 강의 수강이 가능하다는 과정 매니져님!! 그대는 천사???ㅎ

 

조금은 자유롭게 강의를 들으며 미진했던 블로그를 계속 이어가 보려고 합니다.

 

 

Javascript와 Node.js의 역사

초창기의 WEB은 정적인 형태의 시스템이었습니다.

HTML로 구성된 화면으로 Text와 이미지등으로 이루어진 Page들로 연결되어 구성되어있었습니다.

WWW(World Wide Web) 즉, 문서들 사이를 이동하며 HTML로 구성된 form을 전달해 주는 형태의 Web시스템이었죠.

 

초창기 HTML로 구성된 정적 WEB 시스템

Javascript는 이러한 정적인 화면에 동적으로 페이지를 구성해 주는 역할로 생겨났습니다.

댓글을 쓰고 지웠을때 화면을 새로 불러왔던 기존의 정적 HTML form에서

댓글의 부분만 다시 불러와서 화면에 그려주는 동적인 역할을 하는 Javascript가 생겨나게 되었죠.

Javascript를 통한 동적인 Web

 

이후 구글에서 v8엔진을 탑재한 chrome 브라우져를 공개하고 이른 오픈소스로 공개하게 되는데

이 v8은 환경에 상관없이 작동할 수 있는 javascript 엔진으로

브라우져든 서버든 javascript를 전달하면 v8이 javascript를 구동하게 되는 것이죠.

 

'라이언 달'이 v8를 바탕으로 서버에서 구동되는 javascript엔진을 만들고 이게 현재의 Node.js가 됩니다. 

 

 

 Node.js의 특징, 강점, 약점

Node.js의 특징은 Javascript의 비동기적 특성을 바탕으로 만들어 졌습니다.

Javascript의 비동기적 특성은 무엇일까요??

바로 CallBack에 의한 비동기 입니다.

 

데이터 처리 등 저수준의 오래 걸리는 일은 Node에게 맡기고(비동기)

프로그래머는 비즈니스 로직에 집중하여 개발 할 수 있게 됩니다.

따라서 매우 빠른 속도와 높은 확장성을 갖게 됩니다.

 

저수준 처리에 있서 속도의 한계가 있지만 WebAssembly 모듈도 어느정도 한계를 해소할 수 있습니다.

WebAssembly란 C로 작성된 프로세스를 바인딩 하여 저수준의 프로세스를 node가 처리할 수 있도록

지원해주는 모듈입니다.

 

마지막으로 방대한 오픈 소스 생태계로 인하여

이미 많은 도구들이 node로 개발이 되어있고 npm 명령을 통하여 가져다 사용할 수 있는 확장성이 있습니다.

 

 

마무리

node.js의 탄생과 특징등을 살펴 보았습니다.

사실 업무에서 node.js에 포함된 시스템을 사용해 보았지만 정확하게 어떤 역할을 하는지 불명확 했습니다.

프로젝트팀에서 셋팅을 해 놓았고 운영하는 입장에서는 단순하게 front-end를 install하고 구동할때 사용하는 정도만 필요했으닌깐요.

 

현업에서 가장 많이 사용되는 웹 시스템은 Vue.js, React등의 Front-end에 Spring Boot로 Back-end를 구성하고

RestAPI로 통신하는 방식을 많이 사용하고 있어 Fullsatck developer를 하면 이런 내용을 선듯 생각하였으나

본 강의는 javascript언어로 front-end뿐만 아니라 node를 활용한 back-end를 구성하는 강의인듯 싶네요.

 

최근 회사에서 Cloud-native 기초과정을 들어보며 node.js의 사용법을 조금이나마 습득하고 있지만

이 강의를 꾸준하게 들어보며 node의 진정한 역할을 알아가게 되는거 같습니다.