분류 전체보기

    [Next.js] Hydration을 알아보자

    회사에서 Next.js 기반의 프로젝트를 맡게 되어 태스크를 처리 하던 중, Hydration의 원리가 궁금해져 공부와 함께 기록을 남긴다. # Hydration이란? 참조 : Monica Powell article Keeping Server-Side Rendering Cool With React Hydration The purpose of this article is to share some helpful things to keep in mind to render a seamless experience as a Server-Side Rendered (SSR) site transitions from a window-less (server) environment to a browser. aboutmonic..

    [Express] 커스텀 미들웨어 적용기

    최근 비즈니스 로직을 수정하던 중, 라이브러리로만 적용하던 Express의 Middleware를 커스터마이즈해서 유용하게 사용했기에 기록으로 남긴다. # Middleware란? 참조 : Express 공식문서 Writing middleware for use in Express apps Writing middleware for use in Express apps Overview Middleware functions are functions that have access to the request object (req), the response object (res), and the next function in the application’s request-response cycle. The next fu..

    [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 큐를 가지며, 각 단계에서 정해진 역할만 수행 후 다음 페이즈로..

    [NestJS] 기존 Express 프로젝트 NestJS 이관기

    Express로 개발한 김캐디 예약 서버를 NestJS로 이관 및 리팩토링 한지 3주가 지났다... 서버는 이제 안정화가 되었고, 그에 따라 회고겸 기록을 남긴다. :) P.S. 메리크리스마스 🎄 # Express를 버리고 NestJS로 갈아탄 이유 여러 가지 이유가 있지만, 우선 Express의 자유로움이 싫었다. (나중엔 자유로움을 원하게 될지 모르더라도, 그리고 그럴 것 같지만 지금 당장은 그랬다.) 자유로움이란 모든 것이 될 수 있다. 아키텍처부터, 디렉토리 구조, 심하게는 네이밍 컨벤션까지. 물론 모든 것엔 트레이드오프가 있기에, 이런 자유로움으로 인해 얻는 이점도 분명 존재한다. 다만 내 실력이 부족했던 탓인지, 자유로움 속에서 코딩을 하며 따라오는 스트레스가 너무 심했다. 내가 짠 코드와 방..

    [Career] 김캐디

    내 첫 커리어이자 정들었던 김캐디를 퇴사하며,, 짧다면 짧은, 길다면 긴 1년 반 동안의 시간들을 되짚어본다. # 첫 시작 본방사수 프로젝트를 종료한 후, 나는 큰 깨달음을 얻었다. 학교에서 뛰어나 봤자 우물 안의 개구리고 나의 인생에서 큰 의미가 없겠구나.. (이때까지 과수석에 목을 매며 학점에 연연하던 나의 지난 과거가 후회됐다.) 그래서 무작정 현업 씬에 들어가야겠다고 생각했고, 그렇게 찾아본 결과 ICT 학점연계 프로젝트 인턴십이라는 프로그램을 알게 되었다. 이 프로그램은 상당히 솔깃했는데, 한 학기 동안 회사에서 인턴활동을 하며 무려 전공 15학점까지 챙겨주는 굉장히 엄청난 프로그램이었다. 그 당시 나의 상황에서 안 할 이유가 전혀 없었고, 그렇게 입사할 기업들을 탐색한 결과 김캐디라는 곳이 나..