목록면접 공부 (12)
rabbit97 님의 블로그

블락과 논블락은 동기와 비동기에서 파생되었다는건 알겠는데 그럼 비동기와 논 블락킹의 차이점은?? - 비동기와 논 블락킹을 조합하는 방법은 굉장히 많이 사용하는 방법인데 이 둘의 차이점이라 하면 [ 비동기 vs 논블로킹 ]비동기, 논블로킹: 네트워크 요청을 보내고 다른 작업하기비동기, 논블로킹: 네트워크 요청을 보내고 특정 주기(10초, 1분, 5분) 확인하면서 다른 작업하기논블로킹: 네트워크 요청을 보내고 다른 작업을 할 수 있는데 하지 않고 네트워크 응답이 왔는지만 확인하기============================================================================참고 블로그 : https://velog.io/@slobber/%EB%8F%99%EA%B8%B..

한 줄 요약 : Node.js가 사용하는 비동기 I/O라이브러리로 비동기 작업이 어떤 커널이 지원하는지 확인 ===================================================================== 참고 블로그 : https://velog.io/@tastestar/Node.js-libuv Node.js libuv프로젝트를 마치고, 면접 준비를 하다보니 Node.js가 싱글 쓰레드 인줄 알고 있었는데, Node도 여러 스레드를 가지고 있지만!, 자바스크립트 실행하는 스레드가 하나라 싱글 스레드라는 걸 알게되velog.io Node.js libuv프로젝트를 마치고, 면접 준비를 하다보니 Node.js가 싱글 쓰레드 인줄 알고 있었는데, Node도 여러 스레드를 가지고 있지..

한 줄 요약 : 노드에서 비동기 작업을 관리하기 위한 구현체. 페이즈와 큐로 구성이 되어있으며 이벤트 루프가 살아있는 한 실행 할 수 있는 작업을 계속 수행하며 없으면 종료된다. ===================================================================참고 블로그 :https://www.korecmblog.com/blog/node-js-event-loop Node.js 이벤트 루프(Event Loop) 샅샅이 분석하기Node.js의 이벤트 루프를 구현과 함께 자세히 살펴봅니다www.korecmblog.com 글에 들어가기에 앞서Node.js의 이벤트 루프의 경우 공식 문서에 설명이 부족하고 이에 따라 여러 사람들이 각자 나름대로 분석한 글이 많아 무엇이 이..

정리 : Worker_Threads로 두개 이상의 작업이 가능하긴 하나 노드라는 환경을 이루는 핵심 요소가 '이벤트 루프 + 메인 스레드' 여서 이론적으로만 멀티 스레드가 가능은 하고 사실 개념은 싱글 스레드가 맞다. 개인적으로 궁금해서 찾아본 노드에서 여러게의 스레드로 작업 하는 방법Node.js에서 멀티 스레드 처리Node.js는 worker_threads 모듈을 통해 멀티 스레드를 지원.child_process나 cluster 모듈을 이용해 멀티 프로세스를 사용하여 병렬 처리가 가능.특정 작업을 백그라운드로 옮기거나 여러 코어에서 실행할 수 있음. 그럼 이게 장점이 뭘까?Node.js의 싱글 스레드 모델장점:I/O 작업에서 매우 효율적 (비동기 I/O를 사용할 경우).코드 구조가 간단하며, 동시성 ..

한줄 요약 : JSON Web Token의 줄인 말 # 구체적으로 어디서 처리하는지?, 어떠한 방식으로 검증을 하는지? : 처리: 사용자가 로그인하면 서버에서 JWT를 생성하여 반환검증: 클라이언트는 요청 시 JWT를 서버에 제출하고, 서버는 유효성을 검증하여 요청을 수락하거나 거부 # 재발급 방식과 주기는 어떻게 처리하는지?재발급 프로세스초기 발급:클라이언트가 로그인 시, 서버는 액세스 토큰과 리프레시 토큰을 발급액세스 토큰은 비교적 짧은 유효 기간을 가지며, 주로 사용자 인증에 사용리프레시 토큰은 더 긴 유효 기간을 가지며, 새로운 액세스 토큰을 발급받는 데 사용토큰 만료 확인:클라이언트가 서버에 요청을 보낼 때, 액세스 토큰이 만료되었는지 확인액세스 토큰이 만료되었을 경우 리프레시 ..
한줄 요약 : 깊은 복사는 객체의 모든 속성을 재귀적으로 복사, 얕은 복사는 객체의 참조를 복사따라서 얕은 복사는 메모리 사용량이 적고 속도가 빠르지만 무결성을 보장 할 수 없음깊은 복사는 메모리 사용량도 많고 속도가 느리지만 서로 다른 메모리 주소를 참조하기 때문에 데이터의 무결성을 보장 할 수 없음 추가 질문: 자바스크립트에서 각각 구현하는 방법은? 얕은 복사: Object.assign() 이나 스프레드 연산자 ( ... ) 를 사용깊은 복사: 재귀함수를 사용 또는 lodash 의 cloneDeep() 함수 사용=============================================================================참고 사이트 : https://f-lab.kr/insi..
한줄 요약 : 노드에서 사용하는 프레임워크로, 각 종 라이브러리와 미들웨어 등 내장되어있는 기능을 사용해서 코드 구조를 통일 시키는데 도움을 많이 주고 작업의 편리성도 많이 도와준다. 추가 질문 : 그럼 Express의 대안은 무엇인가? express의 대안으로는 koa, Fastify, nest등이 있다 각각의 기능의 장점은 Koa는 express의 개발팀이 만든 프레임 워크로 async/await 패턴을 사용함Fastify는 매우 빠른 프레임워크로 json을 자동으로 분석하기 때문에 속도가 빠름nest는 Angular에서 영감을 받은 프레임워크로 모듈기반 아키텍쳐와 의존성 주입을 지원 =====================================================참고 블로그 : h..
한줄 요약 : es6 문법에서 새로 추가된 문법으로 기존 함수와 다르게 간결하게 작성할 수 있는 편리함이 있다. 메소드 내부에서 화살표 함수를 사용하면, 화살표 함수는 자신만의 this를 가지지 않고, 상위 스코프의 this를 상속받기 때문에 this 관련 문제를 피하고 코드를 간결하게 작성할 수 있다. 물론 기존 함수와 화살표 함수 둘 다 장 단점이 있기에 상황에 맞게 잘 쓰는게 가장 좋은 선택이다. =======================================================================참고블로그 : https://codingeverybody.kr/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%ED%99%94%..

한줄 요약: 보통 컴퓨터는 코드를 읽을때 위에서부터 아래로 읽는데 아래에서 선언한 함수가 위에서도 읽을 수 있는 자바스크립트의 특징 굳이 함수가 아니더라도 let이나 const로 선언해도 참고가 가능하다. 하지만 예외는 있는데 범위가 접근을 못하는 구역이면 참고가 불가능 ==========================================================================출처 블로그 : https://velog.io/@saemileee/Javascript-%ED%98%B8%EC%9D%B4%EC%8A%A4%ED%8C%85-%ED%81%B4%EB%A1%9C%EC%A0%B8 JavaScript에서 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전..

한줄 요약 : promise와 같이 비동기 작업을 수행하는 문법 promise는 단점이 있는데 then() 체인을 길게 이어 나가면 콜백 체인과 마찬가지로 가독성이 매우 좋지 않음 그 단점을 보완 할 수 있는 문법 ======================================================================== 참고 블로그: https://velog.io/@tosspayments/%EC%98%88%EC%A0%9C%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EB%8A%94-awaitasync-%EB%AC%B8%EB%B2%95 예제로 이해하는 async/await 문법오늘은 Promise의 단점을 알아보고, `async/await` 문법으로 어떻게 비동..