일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바스크립트
- 보안
- DATABASE
- 컴퓨터보안
- NEST
- 알고리즘
- 백트래킹
- 노드
- OS
- 탐욕기법
- node.js
- rest docs
- 데이터베이스
- node
- DB
- 스프링부트
- access control
- S3
- 운영체제
- 되추적
- AWS
- IT
- 컴퓨터 보안
- 컴퓨터
- API문서
- 디비
- 병행제어
- ES6
- 인터럽트
- 백준
- Today
- Total
목록node.js (11)
개발스토리
노드 내장 객체 따로 설치하지 않아도 바로 사용 가능하며, 브라우저의 window 객체와 비슷하다. 노드 프로그래밍을 할 때 많이 쓰이는 내장 객체를 알아보자. global 전역 객체이므로 모든 파일에서 접근할 수 있다. 생략이 가능하다. 이전 내용에서 사용했던 require 함수도 global.require에서 global이 생략된 것이다. global 객체 내부에는 매우 많은 속성이 들어 있으며, 이를 보려면 REPL을 이용해야 한다. ! 노드에 DOM, BOM이 없으므로 window와 document 객체는 사용할 수 없다. 전역 객체라는 점을 이용해 파일 간에 간단한 데이터를 공유하기도 한다. //globalA.js module.exports = () => global.message; //glob..
REPL 사용하기 자바스크립트는 스크립트 언어이므로 미리 컴파일을 하지 않아도 즉석에서 코드를 실행할 수 있다. 입력한 코드를 읽고(Read), 해석하고(Eval), 결과물을 반환하고(Print), 종료할 때까지 반복한다(Loop)고 해서 REPL이라고 부른다. VS Code에서 터미널을 키자. $ node //콘솔에서 REPL로 들어가는 명령어 > const str = 'hello'; > undefined > console.log(str); hello undefined > 위와 같이 출력되면 성공이다. 입력한 코드를 REPL이 읽고 해석한 뒤 바로 결과물을 출력했다. 그리고 종료되기 전까지 입력을 기다린다. 종료하려면 CTRL + C를 두번 누르면 된다. REPL은 한두 줄 짜리 코드를 테스트해보는 용..
클래스 클래스 문법도 추가되었다. 하지만 다른 언어처럼 클래스 기반으로 동작하는 것이 아니라 여전히 프로토타입 기반으로 동작한다. 프로토타입 기반 문법을 보기 좋게 클래스로 바꾼 것이라고 이해하면 된다. 다음은 프로토타입 상속 예제 코드이다. var Human = function(type){ this.type = type || 'human'; }; Human.isHuman = function(human){ return human is instanceof Human; } Human.prototype.breathe = function(){ alert('h-a-a-a-m'); }; var Zero = function(type, firstName, lastName){ Human.apply(this, argume..
서버로서의 노드 노드는 기본적으로 싱글 스레드, 논 블로킹 모델을 사용한다. 노드는(논 블로킹 방식으로 코드를 작성했다는 가정하에) libuv 라이브러리를 사용하여 I/O 작업을 논 블로킹 방식으로 처리한다. 따라서 스레드 하나가 많은 수의 I/O를 감당할 수가 있다. But, 노드는 CPU 부하가 큰 작업에는 적합하지 않다. 싱글 스레드 방식으로 서버를 운영할 때는 하나뿐인 스레드가 에러로 인해 멈추지 않도록 잘 관리해야 한다. 에러를 제대로 처리하지 못하면 하나뿐인 스레드가 죽어버려서 서버 전체가 멈추기 때문이다. 이와 같은 특성들로 노드는 개수는 많지만 크기는 작은 데이터를 실시간으로 주고받는 데 적합하다. 실시간 채팅 어플리케이션, 주식 차트 등 노드는 생산성은 매우 좋지만, Go처럼 비동기에 강..