다재다능 개발자 성장기 🚀
항해99 👩💻92일차 TIL 본문
Node.js 기술면접 준비
var, let, const 의 차이점.
var : 변수 재선언이 가능하다. 에러 없이 다른 값이 출력될 수 있다는 문제가 있다.
let : ES6부터 추가. 변수 재선언은 불가능하고 변수 재할당은 가능하다.
const : ES6부터 추가.변수 재선언과 재할당 모두 불가능하다. 초기값을 반드시 지정해줘야 한다.
Event Loop란?
자바스크립트는 이벤트 루프를 이용해서 비동기 방식으로 동시성을 지원한다.
이벤트루프에서는 이벤트 발생 시 호출되는 콜백 함수들을 태스크 큐에 전달하고, 콜스택에 쌓여있는 함수가 없을 때 태스크 큐에 담겨있는 콜백 함수들을 콜스택에 넘겨준다.
Express의 역할
Node.js를 사용하여 쉽게 서버를 구성할 수 있게 도와주는 프레임워크이다.
웹 애플리케이션을 만들기 위한 각종 라이브러리와 미들웨어등이 내장되어있다.
npm과 yarn 각각에 대해 설명
npm : 자바스크립트 언어를 위한 패키지 관리자로, Node.js의 기본 패키지 관리자이다
yarn : npm의 속도, 안정성, 보안성과 관련된 단점을 보완하기 위해 만들어진 매니저 툴이다.
event-driven programming
어떠한 이벤트가 발생하면, 해당 이벤트에 대하여 반응 하는 프로그래밍을 말한다.
Promise란?
비동기 함수를 동기 처리하가 위해 고안한 객체이다. 비동기 작업이 완료된 이후에 다음 작업을 연결시켜 진행할 수 있는 기능을 가지고 있다. 작업 결과에 따라 성공 또는 실패를 리턴하며 결과 값을 전달 받을 수 있다.
node.js의 장단점
- 장점
싱글 스레드기반 비동기 IO처리로 매우 빠른 고성능 서버이다.
자바와같은 프로그래밍 언어보다 생산성이 좋아서 빠른 개발이 가능하다.
개발자 커뮤니티가 활성화 되어있고 많은 모듈이 이미 구현되어있다.
- 단점
싱글스레드이기 때문에 하나의 작업 자체가 시간이 많이 걸리면 전체 시스템의 성능이 낮아진다.
스크립트 언어의 특성 상 실행해봐야 에러를 확인 할 수 있다(컴파일시 확인 불가).
코드의 가독성이 낮아 유지 보수가 어려워질 수 있다.
콜백지옥 해결방안
- Promise
비동기 요청이 정상종료 되었는지 여부에 따라 resolve와 reject함수를 적절하게 실행함으로 인해 동기적으로 흐름을 제어할 수 있게된다. 비동기 작업이 성공했을 때의 후속조치로는 then, 실패 시의 후속조치는 catch로 지정한다.
- async / await
async : 함수에 async만 붙이면 자동 Promise객체로 인식되고 return값은 resolve()값과 같다.
await : Promise가 완료될 때까지 기다린 후, Promise가 resolve한 값을 반환한다. reject를 반환 할 경우 try-catch문으로 넘어간다. 또한 async함수 안에서만 사용가능하다.
Single Threaded Async
자바스크립트는 싱글 스레드 프로그래밍 언어라 한 번에 하나씩 밖에 실행할 수 없지만 WEB API, Callback Queue, Event roop 덕분에 멀티 스레드처럼 동시성을 지니고 있다.
비동기 처리 Promise와 async/await의 차이
Promise를 활용할 시에는 .catch()문을 통해 에러 핸들링이 가능하지만, async/await 는 핸들링 할 수 있는 기능이 없어 try-catch() 문을 활용해야 한다.
'항해99_6기_TIL' 카테고리의 다른 글
항해99 👩💻94일차 TIL (0) | 2022.06.08 |
---|---|
항해99 👩💻93일차 TIL (0) | 2022.06.07 |
항해99 👩💻91일차 TIL/WIL (0) | 2022.06.05 |
항해99 👩💻90일차 TIL (0) | 2022.06.04 |
항해99 👩💻89일차 TIL (0) | 2022.06.03 |