Language & Runtime/Node.js

    [Node.js] 나의 첫 오픈소스 angxios 개발기

    드디어(?) npm에 첫 오픈소스를 배포한 기념으로 글을 작성한다. # 개발 이유 회사에서 맡고 있는 프로젝트 중 하나인 예약서버를 리팩토링하던 중, 메인으로 쓰고있는 API Request 라이브러리인 axios를 내 방식대로 업그레이드 하고 싶은 욕구가 샘솟았다. 그 이유는 바로 Retry 처리 때문인데, 그때 당시의 나는 요청에서 에러가 날 경우 귀찮음과 일단 빨리 개발하자는 마인드를 핑계삼아 try catch로 Retry 처리를 했다. const callAPI = async () => { try { // 첫 번째 api 요청! const firstTry = await axios.get("API URL"); // 성공하면 이것저것 해야지... doSomething(firstTry); } catch (..

    [Node.js] Event Loop를 파헤쳐 보자

    Node.js로 서버를 굴리고 있는 나지만, 정작 내가 Node.js를 이해하고 사용하는지는 항상 의문이었다. 그에 따라 Node.js의 핵심 요소 중 하나인 Event Loop를 공부해 본다. # Event Loop란? 참조 : Node.js 공식문서 The Node.js Event Loop, Timers, and process.nextTick() | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 위 다이어 그램의 각 박스는 특정 작업을 수행하기 위한 이벤트 루프의 페이즈를 의미한다. 긱 페이즈 마다 콜백을 실행할 FIFO 큐를 가지며, 각 단계에서 정해진 역할만 수행 후 다음 페이즈로..