분류 전체보기 217

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

자바스크립트 단축 연산자 끝판왕! 논리 AND 할당 연산자 `&&=` 와 Null 병합 할당 연산자 `??=` 로 코드 깔끔하게 정리하기

자바스크립트 단축 연산자 끝판왕! 논리 AND 할당 연산자 &&= 와 Null 병합 할당 연산자 ??= 로 코드 깔끔하게 정리하기자바스크립트 개발하면서 변수에 값 할당할 때, 특히 조건부 할당이나 기본값 설정할 때 코드가 길어지고 복잡해지는 경험, 다들 있으시죠? ES2021에 새롭게 등장한 &&=와 ??= 연산자는 이런 고민을 깔끔하게 해결해주는 멋진 도구입니다. 마치 마법처럼 짧고 간결하게 코드를 작성할 수 있도록 도와주는데요. 이번 포스팅에서는 &&=와 ??= 연산자를 사용하는 방법과 각각의 장점, 그리고 실제 활용 예시까지 자세하게 알아보겠습니다.  1. &&= 연산자: 조건부 할당의 마법사 &&= 연산자는 논리 AND 연산자(&&)와 할당 연산자(=)가 합쳐진 형태입니다. 기존 값이 참(trut..

Javascript 2025.01.08

자바스크립트 개발자를 위한 Promise 완벽 가이드: 콜백 지옥 탈출하기

자바스크립트 개발자를 위한 Promise 완벽 가이드: 콜백 지옥 탈출하기콜백 함수 지옥에 빠져 허우적대는 당신! 브라우저가 버벅거리며 긴 작업에 힘겨워하는 모습에 좌절한 적 있으신가요? 그런 여러분을 위해 Promise가 등장했습니다! 마치 새끼손가락 걸고 약속하는 것처럼 든든한 JavaScript Promise의 세계를 함께 알아볼까요? 자바스크립트의 Promise는 현실의 약속보다 훨씬 믿음직스러울지도 몰라요! 이번 포스팅에서는 Promise가 무엇이며, JavaScript에서 어떻게 작동하는지 자세히 살펴보겠습니다.비동기 작업이란 무엇일까요?Promise에 대해 알아보기 전에 비동기 작업에 대한 개념부터 짚고 넘어가는 것이 좋겠죠? 간단히 말해서, 비동기 작업은 컴퓨터가 즉시 완료하지 않는 모든 ..

Javascript 2024.12.28