[Node.js] Node.js란?

Derrick Song·2022년 7월 13일
1

Node.js

목록 보기
1/4
post-thumbnail

웹 서비스 기획 그리고 개발.. 그리고 Node.js

자그마한 웹 서비스를 기획해서 5명의 팀원들과 함께 개발 중이다. (22년 5월 시작 ㅡ 10월까지 진행 예정)

배포 경험은 물론 풀스택 웹 개발 경험도 사실 부족하지만, 풀 스택 개발자이자 팀 리더로 프로젝트를 사실상 이끌어나가게 되었다.

백엔드 개발로는 Node.js를 이용하여 기본적인 서버 구축과 Restful API 구축으로 서비스의 전반적인 기능을 만드려고 계획중이다.

그럼 거두절미하고..

Node.js란 무엇일까?

일단, Node.js의 사전적 정의는 다음과 같다.

Node.jsJavaScript runtime이다.

하지만 이게 도통 무슨 소린지 쉽게 이해하기 어려울 것이다. 다음과 같은 의문이 생긴다.

Node.jsJavaScript runtime이라고 하는데 이게 도대체 무슨 말이지?
Node.js를 통해 서버를 구축하는 것 같은데, 그럼 Node.jsJavaScript기반 백엔드 프레임워크 인가?

여기에 대한 답은 다음과 같다.

Node.js는 말 그대로 JavaScript runtime이지 프레임워크가 아니다.

사실 개발자들은 Node.js를 JavaScript 기반 프레임워크로 오해하기 쉽다. React.js나 Vue.js 처럼 말이다. (사실 그렇게 생각하고 개발해도 크게 문제가 되지는 않는 것 같다)

하지만, 엄밀한 개발을 위해서는 정확히 Node.js가 무엇인지 이해할 필요가 있고, 그러려면 JavaScript의 성질부터 차근차근 이해해야한다.

JavaScriptbrowser에서 dom을 조작하기 위해 사용하는 프로그래밍 언어browser내에서 웹을 구성하는데 사용하는 프로그래밍 언어다.

Node.js는 JavaScript의 다른 버젼.
즉, JavaScript를 기반으로 만들어져서 다른 환경에 구현된 것

으로 생각하면 되겠다.

다시 말해, Node.js는 browser가 아닌 다른 환경에서도 JavaScript가 작동하게 하도록 허용하는 것이다.
그러니까, 우리는 Node.js를 활용해서 browser밖의 환경을 JavaScript로 구축할 수 있는 것이다.

좀 더 자세히 이론적인 부분에 접근해 보자면, node.js는 구글이 개발한 v8 engine을 이용하는데 이 engine은 JavaScript 코드를 컴파일 해서 머신 코드로 바꿔 주는 engine이다.

이 engine은 chrome같은 browser에 내장되어서 JavaScript 코드를 컴파일해준다. 하지만 browser에서는 local 환경의 file system에 접근해서, file을 열고, 읽고, 지우는 등의 task를 할 수 없다. 당연히 보안 이슈 때문이다.

하지만 Node.js는 이러한 기능을 v8 engine에 추가하여 서버를 구축하는 등의 다른 환경에서도 JavaScript를 이용하도록 해준다고 보면 된다.

profile
과학기술원 학생 개발자

0개의 댓글