최근에 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는 현대 웹 개발의 핵심 기술로 자리 잡았으며, 다양한 웹 애플리케이션과 서비스에서 광범위하게 사용되고 있다
'IT > javascript' 카테고리의 다른 글
Javascript Module(모듈) 이란? 무엇이며 왜 사용하는지 확실하게 정리하기 (0) | 2024.06.13 |
---|