Node.js 입문 1주차 -1

Han Lee·2022년 12월 12일
0

Node.js 입문

목록 보기
1/5

Node.js?

브라우저내에서만 사용 가능한 자바스크립트를 브라우저 없어도 동작하기 위해 만든 환경

  • 논 블로킹 I/O : 함수가 실행되는 중에도 다른 작업을 동시에 진행
    무조건 적으로 기다리는 것이 아니라 효율적으로 작동될 수 있는 특성

  • 싱글 스레드 : 하나의 프로그램에서는 하나의 스레드만 사용

  • 이벤트 루프 : 자바스크립트가 가지고 있는 싱글 스레드의 약점을 극복하기 위해

ES6

브라우저 표준화 매년 새로운 버전이 추가되고 있다. ES6는 전과 다르게 많이 바뀌어서 기억하는게 좋다.

REPL

구글 개발자 도구 console창, 터미널 node 실행, vscode이용

동기(Sync) & 비동기(Async)

동기 - 놀이기구에 순서대로 입장 후 운행하면 운행이 끝나고 전부 내릴 때 까지 추가 입장 불가
비동기 - 음식점에서 순서대로 들어가지만 나오는건 먼저 먹는 순서.

Blocking Model

코드의 실행이 끝나기 전까지 실행 제어권을 다른곳에 넘기지 않아 다른 작업을 하지 못하고 대기하는 것. -> 코드가 실행되고 정상적으로 완료 되기 전까지 다음으로 넘어가지 않음

Non Blocking Model

코드의 실행이 끝나지 않아도 제어권을 다른곳에 넘겨 다음 코드가 실행 -> 자바스크립트 특징

자바스크립트는 각 명령들이 순서대로 실행될 수 있게 구현되어 있지만, Non- Blocking Model에 의해 명령이 아닌 모든 함수는 비동기적으로 실행

function first() {
  console.log('First');
}

setTimeout(first, 1000); // 1000ms(1초) 뒤에 first 함수를 실행해준다.

console.log('Middle');
console.log('Last');

// Print: Middle
// Last
// First

setTimeout이 1초뒤에 실행 되어야 해서 멈추고 밑에 Middle, Last가 먼저 출력되고 1초지난 뒤 First 출력

Promise

자바스크립트에서 비동기 처리를 동기 처리할 수 있게 돕는 객체 유형
콜백 지옥을 promise로 처리 가능
promise 생성자 인터페이스

new Promise(executor);

// 예제
new Promise((resolve, reject) => {
	// 명령문
});

executor 실행 함수 resolve,reject 중 하나를 무조건 호출
생성자 -> 객체를 생성하는 함수를 생성자 함수라고 부름

promise 상태 - 반드시 3가지 상태를 지님

  • 대기(Pending) : 초기 상태
  • 이행(Fulfilled) : 성공적 완료
  • 거부(Rejected) : 연산이 실패

.then

promise 안에서 resolve가 실행 될 떄 then 메서드 실행

.catch

promise 안에서 reject가 실행 될 떄 catch 메서드 실행

비동기 함수

결과 값은 항상 Promise객체로 resolve 된다.
비동기 함수 안에서만 await 연산자를 사용할 수 있다.

async function 함수이름(){ //먕량믄 }

객체 리터럴

객체(Object)

원시 타입과 객체 타입으로 분류된다.

  • 원시 타입 : 변수에 할당 되는 값, 변경 불가
  • 객체 타입 : 복합적인 자료 구조 -> 객체기반의 자바스크리브는 객체가 중요하다.

객체 리터럴이란?

리터럴 : 사람이 이해할수 있게 생성하는 표기법
객체 리터럴 : 객체를 사람이 이해할 수 있게 생성하는 표기법
{ }를 이용해 생성한다.

프로퍼티

객체의 상태를 나타내는 값 = 키와 값으로 구성되어 있다. key:value
key는 ''쓸때는 띄어쓰기 특수문자등을 사용할 때

메서드

프로퍼티를 참조하고 조작할 수 있는 동작 = 프로퍼티 값이 함수일 때 메서드라 부른다.

profile
렌덤형 인간

0개의 댓글