주특기 입문
1. 동기, 비동기
1) 동기
- 먼저 실행된 코드의 결과가 나올때까지 대기
2) 비동기
- 실행된 순서와 관계없이 결과가 나옴
3) Blocking Model
- 코드의 실행이 끝나기 전까지 실행 제어권을 다른곳에 넘기지 않음
4) Non-Blocking Model
- 코드의 실행이 끝나기 전에 실행 제어권을 다르곳에 넘김겨 다음 코드 실행 가능
- JS 방식, 동기적 명령을 제외환 모든 함수는 비동기적 실행
5) 동기와 Blocking 비교
- 제어권을 넘기지 않으면 비동기 처리가 가능한 환경이어도 비동기 처리 불가능
2. 프로미스
1) 프로미스
- 비동기 처리를 동기적 처리로 변환해주는 객체
2) executor
- Promise 실행 함수, Promise가 만들어질 때 자동으로 실행
- new Promise(executor), execuotor 자리에는 함수만 올 수 있으며 resolve와 reject를 인자로 가짐
- new Promise ((resolve, reject) => {})
- Promise 연산 종료 시기와 상관없이 resolve, reject 중 하나 호출 필요
3) 3가지 상태
- Pending : 대기 상태(초기 상태)
- Fulfilled : 연산 완료
- Rejected : 연산 실패
4) then
- 호출한 Promise가 resolve 되면(Fulfilled상태) then함수 실행
5) catch
- promise안에서 에러가 throw되거나 reject되면 catch 함수 실행
6) 프로미스 반환값
- 항상 프로미스로 감싸져있음
- 비동기 함수의 결과 값도 항상 promise 객체로 resolve됨
3. await/async
1) await
- 비동기 함수 안에서 사용 가능
- 문법이 간결해짐
- promise가 fulfill/rejected가 될 때 까지 함수의 실행을 중단하고 대기(동기적 처리로 변환)
- 함수 실행 전까지 promise를 생성하지 않음
2) async
- awiat은 async 안에서 사용 가능
- 반환값이 promise가 아니면 즉시 반환
4. 객체 리터럴
1) 개요
- 리터럴(literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
- 즉 객체를 생성하기 위한 표기법
2) 특징
- 객체를 생성하기 위해 Class를 선언하고 new 연산자와 함께 생성자를 호출할 필요가 없이 일반적인 숫자, 문자열을 만드는것과 유사하게 생성 가능
'항해14기 본과정 > 항해14기 개발일지' 카테고리의 다른 글
[항해 14기] 개발일지14 (Node.js 입문) (0) | 2023.04.24 |
---|---|
[항해 14기] 개발일지13 (Node.js 입문) (0) | 2023.04.24 |
[항해 14기] 개발일지11 (Node.js) (0) | 2023.04.24 |
[항해 14기] 개발일지10 (프로그래머스 1LV - 카카오 기출) (1) | 2023.04.23 |
[항해 14기] 개발일지9 (프로그래머스 1LV) (0) | 2023.04.23 |