[Node.js] 04 - async/await
·
Dev/Node.js
async/await란? ✅ 프로미스 기반 코드를 좀 더 쓰기 쉽고 읽기 쉽게 한다. ✅ 비동기 코드를 동기식으로 작성 가능하게 한다. - async: 함수 앞에 붙이면 Promise를 반환 - await: Promise 앞에 붙이면 Promise가 전부 수행될 때까지 기다렸다가 결과를 반환. async 함수에서만 사용 가능 - 변수 = await 프로미스; ➡ 프로미스가 resolve된 값이 변수에 저장 - 변수 = await 값; ➡ 값이 변수에 저장 아래 코드는 프로미스로 작성된 코드를 async/await로 수정한 예시다. ✅ 에러 처리를 위해 try-catch로 감싸주어야 한다. - 각각의 프로미스 에러 처리를 위해서는 각각을 try-catch로 감싸우저야 함 - 위 코드를 try-catch로 ..
[Node.js] 03 - Promise
·
Dev/Node.js
프로미스에 대해 시작하기 앞서 프로미스나인 영상을 시청하겠다. https://youtu.be/8uOBj0pINT8?si=PUE1LcmvKD0vgObJ 잘 시청했길 바란다. 프로미스(Promise) 프로미스는 비동기 작업의 최종 완료 또는 실패를 나타내는 객체다. ✅ new Promise(): 작업의 최종 완료 또는 실패에 관한 메시지를 반환 - resolve(성공 리턴 값): 작업 성공 시 호출될 callback 함수 - reject(실패 리턴 값): 실패 시 호출될 callback 함수 ✅ .then() - Promise 정상 수행 후 실행 - resolve를 통해서 전달한 값이 매개변수로 전달됨 ✅ .catch() - 오류 발생 시 실행 - reject를 통해 전달한 값이 매개변수로 전달됨 ✅ .fi..
[Node.js] 02 - Callback
·
Dev/Node.js
노드(비동기 방식)에서 callback이 필요한 이유. console.log('Start'); function loginUser(id, password) { setTimeout(() => { console.log('사용자 정보 얻음'); return {userId:id}; }, 3000); } const user = loginUser('msjwa', 215); console.log(`${user}님 환영합니다.`); console.log('End'); 코드를 보면 loginUser 함수에서 setTimeout을 사용하여 3초가 지난 후에 '사용자 정보 얻음'을 출력하고, 사용자 id를 반환한다. 해당 코드를 실행하면 아래와 같이 출력된 것을 볼 수 있다. 출력 결과에서 사용자 정보 얻기 전에 'undef..
[Node.js] 01 - 노드의 시작하기(특성 및 역할)
·
Dev/Node.js
특성 1. Single Thread ✅ 노드 프로세스는 멀티 스레드지만 사용자가 직접 제어할 수 있는 스레드는 하나이기 때문에 싱글 스레드. - Single Thread라 주어진 일을 하나밖에 처리하지 못한다. - 대신 Non-blocking I/O 기능으로 일부 코드(I/O)를 백그라운드(다른 프로세스)에서 실행 가능하다. - Single Thread 모델은 에러를 처리하지 못하는 경우 멈춘다. - 프로그래밍 난이도가 쉽고, CPU, 메모리 자원을 적게 사용한다. ✅ 멀티 스레드 활용 가능(Node 14ver.) - 멀티 스레드를 사용할 수 있도록 worker_threads 모듈 도입 - CPU를 많이 사용하는 작업인 경우에 활용 가능 2. Non-blocking I/O - 비동기 방식 - Blocki..