본문 바로가기
IT/javascript

javascript와 node js의 차이점과 개념 쉽게 정리 하기

by 바닐라이코노미 2024. 6. 18.
반응형

최근에 Node.js 학습을 하게 되면서 그동안 많이 들어봤지만

몰랐던 내용의 개념을 이해하고 정리한 내용을 기록하려 한다

 

Node.js 이야기를 하는데 왜 Javascript를 언급하지라고 생각할 수 있다

Node.js 에서 알 수 있듯이 Javascript는 확장자가. js이다

여기서 정확한 개념은 모르더라도 Javascript와 관련이 있겠구나라고 추측해 볼 수 있다

 

1. JavaScript란

JavaScript는 웹 페이지를 동적이고 상호작용적으로 만들기 위해 사용되는 프로그래밍 언어이다

원래는 웹 브라우저 내에서 실행되도록 설계되었기 때문에, 사용자의 입력에 반응하거나 페이지의 내용을 동적으로 변경하는 등의 작업을 수행한다

예를 들면, 사용자가 버튼을 클릭했을 때 팝업을 표시하거나, 스크롤에 따라 새로운 내용을 불러오는 것과 같은 기능을 JavaScript로 구현할 수 있다

 

2. Node.js란

Node.js는 JavaScript를 사용하여 서버 측 애플리케이션을 개발할 수 있게 해주는 런타임 환경이다

이는 JavaScript가 오직 브라우저에서만 실행될 수 있다는 초기의 제한을 넘어서, 개발자가 동일한 언어를 사용하여 서버와 클라이언트 양쪽 모두를 개발할 수 있게 되었다

Node.js는 비동기 이벤트 기반 아키텍처를 가지고 있어서, 많은 연결을 효율적으로 처리할 수 있으며, 주로 웹 서버, API 서버, 실시간 통신 애플리케이션 등을 개발하는 데 사용된다

 

- 여기서 잠깐! 런타임 환경은 대체 무슨 말이지?

런타임 환경(runtime environment)이란, 특정 프로그래밍 언어로 작성된 코드가 실행될 수 있도록 필요한 소프트웨어, 라이브러리, 및 환경 설정들을 제공하는 것을 의미한다

즉, 코드가 실제로 동작하기 위해 필요한 모든 실행 조건과 자원을 포함하는 실행 시스템이라고 볼 수 있다

 

Node.js의 경우, 이 런타임 환경은 JavaScript 코드가 웹 브라우저 바깥, 즉 서버 측에서 실행될 수 있도록 해준다

원래 JavaScript는 주로 웹 브라우저 내에서 작동하는 클라이언트 측 스크립팅 언어로 사용되었는데, Node.js를 통해 동일한 JavaScript 언어를 사용하여 서버 측 애플리케이션, API, 데이터베이스와의 상호작용, 파일 시스템 조작 등 다양한 백엔드 작업을 수행할 수 있게 되었다

Node.js의 런타임 환경은 JavaScript 코드가 서버 측에서 실행될 수 있도록 지원하며, 이를 통해 웹 애플리케이션의 백엔드 로직을 개발할 수 있는 환경을 제공한다는 의미이다

 

3. Node.js 특징

크로스 플랫폼 런타임 환경 : Node.js는 서버 측 애플리케이션을 위한 크로스 플랫폼 JavaScript 런타임 환경으로, Windows, Linux, Unix, Mac OS X 등 다양한 운영 체제에서 실행가능하다

 

비동기 이벤트 기반 아키텍처 : Node.js는 비동기 이벤트 루프를 기반으로 하는 아키텍처를 사용하여, I/O 작업을 효율적으로 처리하기 때문에 이로 인해 고성능 네트워크 애플리케이션 개발에 적합하다

 

npm (Node Package Manager) : Node.js의 패키지 관리자인 npm을 통해 수많은 오픈 소스 라이브러리와 모듈에 쉽게 접근하고 사용할 수 있고 이런 점이 개발 속도와 생산성을 크게 향상한다

 

서버 측 개발 : 웹 서버, RESTful API, 실시간 통신 애플리케이션 등 서버 측 로직을 구현하는 데 사용된다

 

단일 언어 사용 : 클라이언트 측과 서버 측 모두 JavaScript를 사용하여 애플리케이션을 개발할 수 있어, 개발 과정을 간소화하고 팀 내 협업을 용이하게 한다

 

이러한 특징들 덕분에 JavaScript와 Node.js는 현대 웹 개발의 핵심 기술로 자리 잡았으며, 다양한 웹 애플리케이션과 서비스에서 광범위하게 사용되고 있다

반응형