분류 전체보기 269

타입스크립트 Enum 정복: 실전 가이드 & 완벽 대안

타입스크립트 Enum 정복: 실전 가이드 & 완벽 대안이번 글에서는 타입스크립트 열거형(Enum)에 대해 자세히 살펴보려고 합니다.열거형은 어떻게 작동할까요?어떤 경우에 사용하면 좋을까요?사용하고 싶지 않을 때는 어떤 대안이 있을까요?마지막에는 어떤 상황에 무엇을 사용하는 것이 좋은지 추천해드리면서 글을 마무리하려고 합니다.  표기법 소스 코드에서 유추된 타입을 표시하기 위해 npm 패키지 ts-expect를 사용했는데요. 예를 들면 다음과 같습니다.// Types of values// @ts-expect-error: Argument of type 'number' is not assignable to parameter of type 'string'.expectType(123);// @ts-expect-e..

Javascript 2025.01.21

자바스크립트 정규 표현식의 새로운 힘! 패턴 수정자 알아볼까요?

자바스크립트 정규 표현식의 새로운 힘! 패턴 수정자 알아볼까요?요즘 자바스크립트 개발하며 정규 표현식 써보면서 꿀팁 하나 알려드릴까 합니다. 바로 패턴 수정자(Regular Expression Pattern Modifiers) 인데요! 이 기능 덕분에 정규 표현식을 더욱 유연하고 효율적으로 사용할 수 있게 되었답니다. 이 글에서는 패턴 수정자가 뭔지, 어떻게 쓰는지, 그리고 어떤 경우에 유용한지 자세히 알아볼게요.  패턴 수정자는 뭘까요? 기존에는 정규 표현식 플래그(예: i - 대소문자 구분 안 함)를 정규 표현식 전체에만 적용할 수 있었는데요. 하지만 패턴 수정자 덕분에 이제는 정규 표현식의 일부분에만 플래그를 적용할 수 있게 되었답니다. 마치 정규 표현식 안에 플래그를 직접 넣는 것처럼 말이죠! 예..

Javascript 2025.01.13

pnpm 10 주요 변경 사항 정리

pnpm 10 주요 변경 사항 정리pnpm 10이 출시되면서 몇 가지 중요한 변경 사항이 적용되었는데요.이번 업데이트에서는 보안 강화, 성능 개선, 설정 변경 및 새로운 기능 추가가 이루어졌습니다. ✅ Lifecycle 스크립트 기본 비활성화✅ pnpm link 동작 변경✅ SHA256 기반 보안 해싱 적용✅ 설정 변경 및 새로운 설정 추가✅ 글로벌 스토어 구조 개선✅ 기타 주요 Breaking Changes 하나씩 자세히 살펴보겠습니다! 👀1️. Lifecycle 스크립트 기본 비활성화 (보안 강화)이제부터 의존성(Dependencies)의 Lifecycle 스크립트가 기본적으로 실행되지 않습니다.이는 보안 강화를 위한 조치이며, 특정 패키지의 Lifecycle 스크립트를 허용하려면package.js..

Javascript 2025.01.13

ECMAScript 2025에 포함될 Import Attributes, 무엇이 달라질까?

ECMAScript 2025에 포함될 Import Attributes, 무엇이 달라질까?ECMAScript Import Attributes는 JavaScript에서 JSON, CSS, WebAssembly 같은 비(非) JavaScript 리소스를 더 쉽게 가져올 수 있도록 도와주는 기능인데요. 이 기능은 2024년 10월에 ECMAScript Stage 4에 도달했고, ECMAScript 2025 표준에 포함될 가능성이 높습니다.이번 글에서는 Import Attributes가 무엇인지, 어떻게 활용할 수 있는지, 그리고 앞으로 기대되는 기능들을 정리해 보겠습니다.JavaScript 모듈(ESM) 외의 리소스 가져오기JavaScript에서는 오래전부터 JavaScript 코드가 아닌 데이터나 리소스를 모..

Javascript 2025.01.13

Node.js, 이제 TypeScript를 기본 지원한다!

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..

Javascript 2025.01.13

sqlx와 PostgreSQL 타임존 완벽 정복!

sqlx와 PostgreSQL 타임존 완벽 정복!안녕하세요! 오늘은 Go 언어에서 sqlx와 Postgres를 사용해 타임존을 다루는 방법에 대해 알아보겠습니다.사실 거의 database/sql 패키지 이야기가 될 것 같긴 한데요. UTC 기준으로 데이터를 저장하는 PostgreSQL에서, Go 쪽에서 특정 타임존을 기준으로 PostgreSQL의 timestamp 데이터를 가져오고 싶습니다.원본 데이터sample-db=# \d test_timezone 테이블 "public.test_timezone" 컬럼 | 타입 | 콜Collation | Nullable | 기본값-----------+------------------------..

Go 2025.01.12

예상치 못한 untyped int의 동작, 왜 이런 일이?

예상치 못한 untyped int의 동작, 왜 이런 일이? Go에서 const로 선언된 정수는 기본적으로 "untyped" 상태입니다.즉, 특정한 타입(int, int64 등)이 정해지지 않은 상태로, 사용되는 문맥에 따라 타입이 결정됩니다. 이런 특성 때문에 32비트 환경과 64비트 환경에서 다르게 동작하거나,컴파일 에러가 발생하는 경우가 있어 주의가 필요합니다. 이 글에서는 untyped int가 어떻게 동작하는지,그리고 예상치 못한 동작이 발생하는 이유를 예제와 함께 알아보겠습니다.1.  untyped int의 기본적인 동작다음과 같은 코드가 있다고 해볼까요?package mainimport "log"const x = 9876543210func main() { log.Printf("%v", x..

Go 2025.01.12

Node.js에서 AsyncLocalStorage로 비동기 컨텍스트 관리 간소화하기

Node.js에서 AsyncLocalStorage로 비동기 컨텍스트 관리 간소화하기Node.js의 비동기 애플리케이션에서 컨텍스트 관리를 어떻게 AsyncLocalStorage가 해결하는지 알아볼까요? AsyncLocalStorage는 모든 비동기 작업 간에 컨텍스트를 유지할 수 있는 방법을 제공하는데요. 마치 요청을 따라다니는 비밀 저장 상자가 있어서, 코드의 어느 부분에서든 중요한 정보를 접근할 수 있게 해줍니다. AsyncLocalStorage 없이 작성한 일반적인 Express 애플리케이션AsyncLocalStorage가 없는 상황에서 어떤 모습이 되는지 살펴볼까요? 여러 함수에 걸쳐 userId를 전달해야 하는 상황입니다.// App.jsasync function handleRequest(req..

Javascript 2025.01.08

자바스크립트 WeakRef 완벽 가이드: 메모리 관리를 쉽게 이해해볼까요?

자바스크립트 WeakRef 완벽 가이드: 메모리 관리를 쉽게 이해해볼까요?자바스크립트에서 WeakRef가 메모리 관리를 어떻게 도와주는지 이해해볼까요? 자바스크립트로 객체를 생성할 때마다 브라우저 메모리를 사용하게 되는데요, 그 객체를 더 이상 사용하지 않으면 자바스크립트가 자동으로 그 메모리를 정리해줘야 합니다. 하지만 때때로 예상했던 대로 메모리 정리가 이루어지지 않을 때가 있습니다. 강한 참조강한 참조는 메모리 내 데이터에 "삭제하지 마라"는 태그를 붙이는 것과 같다고 생각할 수 있습니다. 자바스크립트에서 객체나 값에 가리키는 일반 변수를 생성하면, 이는 강한 참조를 만들게 됩니다.// 객체에 대한 강한 참조를 생성const user = { url: "www.trevorlasn.com", nam..

Javascript 2025.01.08

JavaScript Truthy와 Falsy 완벽 정리: 헷갈리는 타입 변환, 이제 끝내자!

JavaScript Truthy와 Falsy 완벽 정리: 헷갈리는 타입 변환, 이제 끝내자!JavaScript를 처음 접했을 때, truthy와 falsy 개념이 단순하다고 생각했는데, 조금만 깊게 들어가면 상황이 복잡해지는 걸 느꼈습니다. "false는 falsy, true는 truthy다."라는 기본 개념은 쉽지만, edge case(경계 사례)는 정말 헷갈리는데요. 이번 글에서는 JavaScript의 truthy와 falsy 개념을 깊게 파헤치고, 타입 강제 변환(type coercion)으로 생길 수 있는 문제들을 예제로 정리해 보겠습니다.Truthy와 Falsy란?JavaScript에서는 특정 값들이 "참(true)"처럼 평가되거나 "거짓(false)"처럼 평가됩니다. 이를 각각 truthy와 ..

Javascript 2025.01.08