반응형
반응형
1.Intro타입스크립트 환경의 프로젝트를 개발하면서 날짜 처리를 위해 가볍고 강력한 dayjs 라이브러리를 도입했습니다.로컬에서 개발할 때는 dayjs().format()을 찍으면 한국 시간으로 아주 잘 나옵니다.console.log(dayjs().format()); // 출력: 2023-10-27T14:00:00+09:00 그런데 이 코드를 AWS나 Docker 같은 서버 환경에 배포하면 시간이 9시간 느리게(UTC 기준) 나오는 문제가 발생합니다.2.원인분석이유는 아주 간단합니다. day.js의 시간을 어떻게 가져오냐를 알면 답은 아주 쉬워집니다. day.js는 기본적으로 시스템의 시간을 가져오게 되어있습니다.내 컴퓨터 (Local): 윈도우 설정이 '서울'로 되어 있음 -> KST (+09:00)..
Nest.js도 다른 프레임워크와 마찬가지로 데코레이터를 제공합니다. 그런데 그중에서도 데코레이터를 커스텀, 즉 내가 사용하기 알맞게 설정이 가능한 '커스텀 데코레이터' 기능을 제공합니다.이런 커스텀 데코레이터를 알아보기전에 데코레이터가 무슨 동작을 하는지 한번 보겠습니다.※ 정의데코레이터는 이름 그대로 "장식해 주는 녀석"입니다. 클래스, 메서드, 프로퍼티 위에 붙어서 기능을 덧붙이거나 수정하는 역할을 합니다.중요한 사실은, 데코레이터는 마법이 아니라 그냥 함수(Function)라는 점입니다. 정확히는 "다른 함수를 감싸서 기능을 확장시키는 고차 함수(Higher-Order Function)"입니다.● 직접 해보자코드는 말로하는것보다 한번 짜보는게 제일 수월합니다. 아래와같이 메서드가 실행될때 자동으..
이전시리즈 보기https://gapal.tistory.com/71 Nest.js 라이프사이클 완전 정복 (1/3)- 모듈 초기화 단계(Initialization Phase)Nest.JS를 사용하다보면 서비스나 모듈이 언제 생성되고 언제 실행되는지 모를때가 있습니다. 그런 경험이 있다면 Nest.js의 라이프 사이클을 잘 모르기 때문일거라 생각합니다.그렇다면 과연 Nest.jgapal.tistory.comhttps://gapal.tistory.com/84 NestJS 라이프사이클 (2/3): 가드, 파이프, 인터셉터! 요청이 Controller를 통과하는 7단계이전 포스팅에서 onModuleInit()으로 초기 설정이 끝났으며 Nest.js에서 모듈 초기화가 끝났으면 다음 단계로 넘어가게 됩니다!(모듈 초..
이전 포스팅에서 onModuleInit()으로 초기 설정이 끝났으며 Nest.js에서 모듈 초기화가 끝났으면 다음 단계로 넘어가게 됩니다!(모듈 초기화 과정)https://gapal.tistory.com/71 Nest.js 라이프사이클 완전 정복 (1/3)- 모듈 초기화 단계(Initialization Phase)Nest.JS를 사용하다보면 서비스나 모듈이 언제 생성되고 언제 실행되는지 모를때가 있습니다. 그런 경험이 있다면 Nest.js의 라이프 사이클을 잘 모르기 때문일거라 생각합니다.그렇다면 과연 Nest.jgapal.tistory.com ※ 실행단계 (Running Phase) NestJS에서 실행 단계(Running Phase)란 app.listen()이 호출된 후 서버가 정상적으로 클라이언트 ..
2025-11-24 작성 (계속해서 팔로우 업 할 예정입니다.)아래 목록은 typescript 생태계에서 유명한 네임드 개발자 또는 프로젝트 깃 주소 모음집입니다. 계속해서 추가해 나갈 예정이며 현재는 아래 목록과 같습니다.공부 방법1단계: 각 개발자의 "Pinned" 저장소(상단 고정) 확인2단계: 프로젝트의 Contributing.md 읽기3단계: 최근 머지된 핵심 PR의 토론 정독4단계: Release Notes에서 설계 철학 파악 1. 언어 및 런타임 설계자 (Foundation & Core)JavaScript/TypeScript 환경 자체의 규칙과 근간을 설계한 사람 목록개발자 이름주요 기여 및 역할GitHub 주소Anders HejlsbergTypeScript 언어 설계의 아버지. 마이크로..
※"esModuleInterop"와 "allowSyntheticDefaultImports" 란?"esModuleInterop": true와 "allowSyntheticDefaultImports": true는 모두 CommonJS 모듈을 ESM import 문법으로 가져오는 과정에서 발생하는 호환성 문제를 해결하기 위해 사용되지만, 각각 하는 역할과 범위가 다릅니다.간단히 말해, esModuleInterop이 실제 코드(JavaScript)에 개입하여 문제를 해결한다면, allowSyntheticDefaultImports는 타입 검사(TypeScript) 단계에서만 개입하여 오류를 숨겨줍니다.1. allowSyntheticDefaultImports이 옵션은 TypeScript가 타입 검사를 수행하는 방식에..