Node.js, 이제 TypeScript를 기본 지원한다! Node.js가 v23.6.0부터 TypeScript를 별도의 플래그 없이 실행할 수 있도록 지원하는데요.이 글에서는 새로운 기능이 어떻게 동작하는지, 그리고 주의해야 할 점들을 살펴보겠습니다.새로운 기능, 직접 확인해볼까요?다음과 같은 TypeScript 파일이 있다고 가정해봅시다.// demo.mtsfunction main(message: string): void { console.log('Message: ' + message);}main('Hello!'); 이제 이 파일을 바로 실행할 수 있습니다.node demo.mts 하지만 현재는 다음과 같은 경고가 표시되는데요.ExperimentalWarning: Type Stripping is a..
Node.js에서 AsyncLocalStorage로 비동기 컨텍스트 관리 간소화하기Node.js의 비동기 애플리케이션에서 컨텍스트 관리를 어떻게 AsyncLocalStorage가 해결하는지 알아볼까요? AsyncLocalStorage는 모든 비동기 작업 간에 컨텍스트를 유지할 수 있는 방법을 제공하는데요. 마치 요청을 따라다니는 비밀 저장 상자가 있어서, 코드의 어느 부분에서든 중요한 정보를 접근할 수 있게 해줍니다. AsyncLocalStorage 없이 작성한 일반적인 Express 애플리케이션AsyncLocalStorage가 없는 상황에서 어떤 모습이 되는지 살펴볼까요? 여러 함수에 걸쳐 userId를 전달해야 하는 상황입니다.// App.jsasync function handleRequest(req..
자바스크립트 WeakRef 완벽 가이드: 메모리 관리를 쉽게 이해해볼까요?자바스크립트에서 WeakRef가 메모리 관리를 어떻게 도와주는지 이해해볼까요? 자바스크립트로 객체를 생성할 때마다 브라우저 메모리를 사용하게 되는데요, 그 객체를 더 이상 사용하지 않으면 자바스크립트가 자동으로 그 메모리를 정리해줘야 합니다. 하지만 때때로 예상했던 대로 메모리 정리가 이루어지지 않을 때가 있습니다. 강한 참조강한 참조는 메모리 내 데이터에 "삭제하지 마라"는 태그를 붙이는 것과 같다고 생각할 수 있습니다. 자바스크립트에서 객체나 값에 가리키는 일반 변수를 생성하면, 이는 강한 참조를 만들게 됩니다.// 객체에 대한 강한 참조를 생성const user = { url: "www.trevorlasn.com", nam..
JavaScript Truthy와 Falsy 완벽 정리: 헷갈리는 타입 변환, 이제 끝내자!JavaScript를 처음 접했을 때, truthy와 falsy 개념이 단순하다고 생각했는데, 조금만 깊게 들어가면 상황이 복잡해지는 걸 느꼈습니다. "false는 falsy, true는 truthy다."라는 기본 개념은 쉽지만, edge case(경계 사례)는 정말 헷갈리는데요. 이번 글에서는 JavaScript의 truthy와 falsy 개념을 깊게 파헤치고, 타입 강제 변환(type coercion)으로 생길 수 있는 문제들을 예제로 정리해 보겠습니다.Truthy와 Falsy란?JavaScript에서는 특정 값들이 "참(true)"처럼 평가되거나 "거짓(false)"처럼 평가됩니다. 이를 각각 truthy와 ..
자바스크립트 단축 연산자 끝판왕! 논리 AND 할당 연산자 &&= 와 Null 병합 할당 연산자 ??= 로 코드 깔끔하게 정리하기자바스크립트 개발하면서 변수에 값 할당할 때, 특히 조건부 할당이나 기본값 설정할 때 코드가 길어지고 복잡해지는 경험, 다들 있으시죠? ES2021에 새롭게 등장한 &&=와 ??= 연산자는 이런 고민을 깔끔하게 해결해주는 멋진 도구입니다. 마치 마법처럼 짧고 간결하게 코드를 작성할 수 있도록 도와주는데요. 이번 포스팅에서는 &&=와 ??= 연산자를 사용하는 방법과 각각의 장점, 그리고 실제 활용 예시까지 자세하게 알아보겠습니다. 1. &&= 연산자: 조건부 할당의 마법사 &&= 연산자는 논리 AND 연산자(&&)와 할당 연산자(=)가 합쳐진 형태입니다. 기존 값이 참(trut..
자바스크립트 개발자를 위한 Promise 완벽 가이드: 콜백 지옥 탈출하기콜백 함수 지옥에 빠져 허우적대는 당신! 브라우저가 버벅거리며 긴 작업에 힘겨워하는 모습에 좌절한 적 있으신가요? 그런 여러분을 위해 Promise가 등장했습니다! 마치 새끼손가락 걸고 약속하는 것처럼 든든한 JavaScript Promise의 세계를 함께 알아볼까요? 자바스크립트의 Promise는 현실의 약속보다 훨씬 믿음직스러울지도 몰라요! 이번 포스팅에서는 Promise가 무엇이며, JavaScript에서 어떻게 작동하는지 자세히 살펴보겠습니다.비동기 작업이란 무엇일까요?Promise에 대해 알아보기 전에 비동기 작업에 대한 개념부터 짚고 넘어가는 것이 좋겠죠? 간단히 말해서, 비동기 작업은 컴퓨터가 즉시 완료하지 않는 모든 ..