핵심개념 이해하기
- 먼저 Node에 대해 알아보겠습니다.
- 아래는 node 공식 사이트에 나온 설명으로 Node.js®는 개발자가 서버, 웹 앱, 명령줄 도구 및 스크립트를 만들 수 있는 무료 오픈 소스 크로스 플랫폼 JavaScript 런타임입니다.
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
Node.js®는 개발자가 서버, 웹 앱, 명령줄 도구 및 스크립트를 만들 수 있는 무료 오픈 소스 크로스 플랫폼 JavaScript 런타임입니다.
node에 대해 저 자세하게 이해하고 싶으신 분들은 아래의 공식사이트를 봐주는 것이 좋습니다.
사용하는 곳
노드로 전반적으로 서버를 실행을 하지만 그 외에서도 사용이 가능합니다.
예를 들어 자바스크립트 프로그램을 실행하는 런타임으로 사용이 가능합니다.
서버로서의 노드
서버에 대해 알기 위해서는 네트워크 구조에 대해서도 알아야 합니다.
네트워크 구조 모델로는 피어-투-피어 구조와 클라이언트-서버 구조가 있습니다.
피어-투-피어 구조로는 모든 컴퓨터가 동등하게 요청과 응답을 합니다.
하지만 클라이언트-서버 구조는 서버와 서비스를 요청하는 클라이언트로 구성되어 있고
가장 일반적인 네트워크 구조라고 볼 수 있습니다.
예시로 웹사이트 주소를 입력(요청) 하면 웹사이트 페이지를 받아와 브라우저에 띄우는 것을(응답)
이라고 할 수 있습니다.
자바스크립트 런타임
노드는 자바스크립트 런타임입니다.
여기서 런타임은 특정언어로 만든 프로그램들을 실행할 수 있는 환경을 말합니다.
이벤트 기반
이벤트 기반 이란 이벤트가 발생할 때 미리 지정해 둔 작업을 수행하는 방식을 의미합니다.
노드도 이벤트 기반 방식으로 동작하므로, 이벤트가 발생하면 이벤트 리스너에 등록해 둔 함수를 호출합니다.
노드는 자바스크립트 코드의 맨 위부터 한 줄씩 실행하는데
함수 호출 부분을 발견했다면 호출한 함수를 호출 스택에 넣습니다.
여기서 이벤트 발생 시 호출할 콜백 함수들을 관리하고, 호출된 콜백 함수의 실행 순서를 결정하는 역할을 담당하는 것을
이벤트 루프라고 합니다.
이벤트 루프를 잘 활용하면 오래 걸리는 작업을 효율적으로 처리할 수 있게 되는데,
작업에는 두 가지 종류가 있습니다.
두가지 종류로는 동시에 실행될 수 있는 작업과 동시에 실행될 수 없는 작업입니다.
기본적으로 지금까지 해봤던 자바스크립트 코드들은 동시에 실행될 수 없습니다 하지만
자바스크립트 상에서 돌아가는 것이 아닌 I/O 작업 같은 것은 동시에 처리될 수 있습니다.
서버 외의 노드
처음에는 노드를 대부분 서버로 사용했지만, 현재는 사용 범위가 점점 늘어나서
웹, 모바일, 데스크톱 애플리케이션 개발에도 사용되기 시작했습니다.
노드기반으로 돌아가는 플레임 위크로는 리액트, 뷰등이 있다고 할 수 있습니다.
개발 환경 설정하기
개발환경은 전에 설치한 Node로 그대로 사용하겠습니다.
아래와 같은 방법으로 설정하였습니다.
'Back-End > Node.js' 카테고리의 다른 글
노드와 자바스크립트 2 (0) | 2024.05.16 |
---|---|
노드와 자바스크립트 (0) | 2024.05.14 |
Node.js에서 모듈과 npm 사용해보기 (0) | 2023.09.13 |
Node에서 사용할 터미널 명령어 정리 (0) | 2023.09.01 |
Node.js 설치 방법 (0) | 2023.05.28 |