반응형

용어 정리
비동기 입출력(논블록킹 입출력): 파일이 실행될 때 작업이 끝날 때까지 기다리지 않고 다른 작업을 실행하는 방식
콜백 함수: 변수에 할당된 함수를 다른 함수의 파라미터로 전달할 수 있다. 이렇게 파라미터로 전달된 함수를 다른 함수의 내부에서 호출하는 것이 콜백 함수이다.
이벤트 기반 입출력 모델: 파일 시스템에서 콜백 함수를 호출하는데, 파일 시스템이 이벤트와 함께 호출하는 방식
- 상당히 가볍고 효율적으로 많은 데이터를 주고받는 실시간 프로그램에서 큰 효과를 발휘
Node.js란?
자바스크립트를 프로그래밍 언어로 사용하는 비동기 방식을 사용하는 이벤트 기반 입출력 모델
Node.js가 만들어진 배경을 통해 Node.js의 기술 소개
- 과거 웹 서버에 파일 업로드 할 때, 업로드가 완료되기 전까지 웹 서버에서 데이터를 조회하거나 하는 다른 작업이 불가능 했음 이를 해결하기 위해 만들어짐
→ node는 비동기 입출력 방식을 적용 - 자바스크립트는 인터프리터를 사용하므로 전체적으로 속도가 느리다 (비동기로 바꿔도 느릴 수 있음)
인터프리터(interpreter): 코드를 한 줄씩 해석하면서 실행
→ 네이티브 코드로 바꾼 후 실행할 수 있는 V8 자바스크립트 엔진 개발로 해결 (node는 V8엔진을 이용) - 소스 파일 하나에 모든 기능을 넣기에 복잡하고 양이 많음
→ 모듈(Module) 사용: 코드를 분리하여 별도의 파일(모듈) 제작 → 필요할 때 불러서 사용할 수 있어 관리가 쉬움
Module 사용법
- 코드의 일부분을 떼어 별도의 파일로 저장한다. → 이렇게 만들어진 파일 = 모듈
- require() 함수로 모듈 호출
- 이렇게 불러들인 파일은 자바스크립트 객체로 인식됨
var module_1 = require('module_1');
추가적으로 이렇게 만든 모듈을 하나의 패키지로 만들어 두면 npm 프로그램을 이용해 공유가 편해짐
- npm(Node Package Manager): 다른 프로그래머가 미리 개발하여 올려둔 패키지를 찾아 설치하는 방법을 제공

노드 아키텍처
- 이벤트를 받아 처리하는 기능이 아키텍처에서 중요하다.
- 노드는 대부분 서버 쪽에서 동작하는 프로그램을 만드는 것이 주 임무이기 때문에 기본 기능인 소켓이나 HTTP 프로토콜을 사용해 데이터를 송수신 하는 기능을 포함함
HTTP를 이용해 웹 서버로 요청을 보내고 응답 받기
request()
웹 서버에 데이터를 요청, 응답을 받으면 콜백 함수가 자동으로 호출
응답에는 res라는 이름의 객체를 전달 받음
res: 수신한 데이터를 이벤트 이름으로 구별할 수 있는 객체
on()
콜백 함수와 이벤트를 바인딩(Binding)
바인딩: 서로 묶어서 연결
반응형
'프로그래밍 언어 > JavaScript' 카테고리의 다른 글
[JS] HTML에 JS, CSS 불러오기 (0) | 2023.12.30 |
---|---|
[JS] JavaScript 로 HTML 요소 동적 생성 (1) | 2023.12.30 |