[Node.js] 비동기 개념에 익숙해지기

개요 C++를 공부하면 포인터에서 숨이 턱 막히듯이, 자바스크립트를 공부하다 보면 넘어야 할 산이 비동기라는 개념입니다. 이 비동기라는 개념이 좀 잡혀있어야, express 라는 웹서버 모듈에서 핸들러를 어떻게 다루어야 할지 감이 오고, Promise 를 어떻게 사용해야 할 지도 조금 감이 생기지 않을까 싶습니다. 이 글은 이벤트 루프 등에 대해서 자세히 다루지 않습니다. 비동기, 논블로킹 IO 등 개념에 […]

Promise 작업 시간 초과하면 실패로 간주하기 (feat. setTimeout, Promise.race)

개요 요즘 자바스크립트에서는 Promise 가 많이 쓰입니다. 이른바 비동기 작업이라고도 하죠. 여러가지 시간이 좀 걸리는 작업들을 다룰 때 편하기 때문인데요, 그런데 너무 오래 걸리는 작업을 취소하고 싶지 않나요? 예를 들어 게시글의 댓글을 불러오기 위해 api 서버에 요청을 날렸는데, 2~3초가 지나도 묵묵부답이라면, 이건 api 서버가 잘못되었다고 보고, 작업을 취소하고, 유저에게 “서버로부터 응답이 없습니다. 잠시 후 다시 […]

Node.js Stream 개념을 익혀보자

목표 Stream 에 대한 개념 이해 간단하게 Readable 클래스 확장구현하기 사전지식 Node.js (본 글에 있는 코든 코드는 Node.js 에서 실행합니다. ) 자바스크립트 ES6 문법 클래스 확장/상속 이 글에서 다루지 않는 것 Stream 의 다양한 이벤트 Readable, Writable 생성자에 넘기는 옵션 pipe 함수의 정확한 동작 방식 Writable, Duplex, Transform 직접 만들기 개요 스트림이라는 말을 처음 들어봤을 […]

VScode + yarn 2 + Monorepo + TypeScript 프로젝트 세팅

목표 yarn 2 를 사용하여 더 효율적으로 패키지 관리하기 모노리포(Monorepo)에 발을 살짝 담구기 타입스크립트 기반으로 프로젝트 구성하기 (이건 사실 이 글에선 중요하지 않음) 사전 준비 타입스크립트를 하고 싶은 마음 vscode 를 에디터로 쓰고자 하는 마음 yarn 명령어 사전지식, yarn 을 선호하는 마음 아직 완벽하지는 않습니다. 특히 타입스크립트가 제대로 동작하는지에 대한 검증이 많이 필요합니다.. 일단 가장 […]

[신입일기] 첫 단추 잘못 끼워진 일 하는 법

개요 이제 회사에 들어간지 한 3개월 정도 되었습니다. 완전 신입이라고 할 수 있겠지요? 필자가 다니는 회사는 분위기가 자유로워요. 회사의 분위기가 자유로운 걸 싫어하는 사람도 있을 거예요. 필자는 성향상 좀 더 자유롭게 풀어놓는 걸 좋아하긴 해서 그건 만족합니다. 그렇다고 방임되고 싶다는 건 아닙니다 하하. 그런데 말입니다, 분위기를 떠나서, 일의 기본적인 형태가 갖춰진 상태로 와야 하는데, 그렇지 […]

[Javascript] 비동기, Promise, async, await 확실하게 이해하기

? 2022년 11월 2일 부로 글을 새롭게 리뉴얼했습니다! 많은 관심 바랍니다. 개요 본 글은 자바스크립트에서 Promise 에 대한 개념을 잡기 위해 작성한 글입니다. 자바스크립트의 기본 문법을 먼저 알아야 이 글을 조금 더 수월하게 보실 수 있습니다. 필자는 Node.js 기반에서 실행시키고 있습니다. 이 글에서는 어떻게 자바스크립트 실행 환경을 만드는지에 대해서는 다루지 않습니다. 최대한 차근차근 설명하려고 했기 […]

[리뷰] 모순 – 양귀자 장편소설

소설을 굉~장히 오랜만에 읽었다. 그것도 국내 소설을. 최근 들어 읽는 문학이라곤 인터넷 커뮤니티에서 돌아다니는 각종 썰 밖에 없었는데, 이번에 제대로 책으로 된 문학을 읽게 되었다. 책을 읽게 된 경위는 우선 백만년 만에 새로운 독서 모임을 가지게 되었는데, 거기서 첫 번째로 읽어오라는 책이 이 <모순> 이라는 책이다. 강력한 흡인력 <모순>은 1998년에 쓰여진 소설이다. 양귀자 라는 이름은 […]

[Rust] 배열 셔플해보기

개요 Rust 에서 vec! 으로 만든 배열의 값들을 셔플하는 간단한 예제를 만들어보아요. rust 가 너무 헷갈려서 이 쉬워보이는 연습도 힘겹게 했네요. 미리 알고 있으면 좋은 것들 let vs let mut : 변수를 선언할 때에는 기본적으로 불변형(immutable) 입니다. mut 키워드를 뒤에 붙이면 변형을 할 수 있습니다. 슬라이스: 그냥 배열같은 것의 일부분의 레퍼런스 같은 것이라고 이해하고 있습니다. […]

[Typescript] 인터페이스의 키 목록을 string 배열과 일치하도록 강제하기

개요 이런 걸 만들고 싶다고 가정합시다. 어떤 액션의 타입을 string 으로 받아온다고 합시다. 액션의 종류에 대해서 순회할 일도 있으므로 (값으로써 직접 가지고 있어야 하므로) 다음과 같이 배열로 만든다고 가정합시다. (‘go’ | ‘sleep’ | ‘dance’ 이런 식으로 직접 타입을 선언해봤자 이 타입을 기반으로 새 배열을 우리가 만들수는 없으므로.. 일단 배열을 직접 만들어야 합니다.) 그리고 각각의 액션을 […]

Scroll to top