궁금증 controller를 보면 자동으로 object를 json으로 serialize 해준다고 한다.어떻게 하는건지 궁금해졌다. 설명 import { ClassSerializerContextOptions } from './class-serializer.interfaces';import { Observable } from 'rxjs';import { CallHandler, ExecutionContext, NestInterceptor } from '../interfaces';import { ClassTransformOptions } from '../interfaces/external/class-transform-options.interface';import { TransformerPackage } fro..
Main.ts란import { NestFactory } from '@nestjs/core';import { AppModule } from './app.module';async function bootstrap() { const app = await NestFactory.create(AppModule); // 전역 파이프 설정 app.useGlobalPipes(new ValidationPipe()); // 전역 필터 설정 app.useGlobalFilters(new HttpExceptionFilter()); // 전역 인터셉터 설정 app.useGlobalInterceptors(new LoggingInterceptor()); await app.listen(3000);}bootstrap(); ..
문제 상황 : 현재 웹 어플리케이션으로 모니터링을 하는데, 아이패드가 꺼지면 화면에 counting이 동작 안하는 문제가 발생했다고 한다.이유 : 웹 브라우저나 운영체제의 에너지 절약 기능 때문에 백그라운드에서 실행 중인 프로세스인 웹 페이지의 javascript가 멈추거나 제한 되는 현상이다. 위처럼 application/service workers를 확인하면 위 페이지가 뜬다.background services에서 background sync 가 제대로 설정되어 있는지 확인해야한다.위 과정으로 현재 페이지에 등록된 서비스 워커를 확인할 수 있게 된다. if ('serviceWorker' in navigator) { navigator.serviceWorker.register('/service-w..
회사 프로젝트 내 node.js 버전을 v22 -> v20으로 바꾸기로 했다. $ node --versionv22.1.0$ nvm install 20 Downloading and installing node v20.13.1...Downloading https://nodejs.org/dist/v20.13.1/node-v20.13.1-darwin-x64.tar.xz...################################################################################################################################################################################################..
import { decrease } from "@/services/repositories/decrease.repository";jest.mock("@/services/repositories/decrease.repository");describe('테스트코드 작성 시작...', () => { ... test('취소하기 중 어떤 유닛 테스트...', async () => { (decrease as jest.Mock).mockResolvedValue(...); ... jest로 테스트하는 코드를 보면 위처럼 작성하는 코드를 볼 수 있다. jest.mock을 사용하면 모듈 내의 모든 함수와 클래스를 자동으로 모킹할 수 있다.그럼 위 코드는 어떻게 동작하는걸까? @/serv..
moleculer 프레임워크는 모노레포로 프로젝트를 구성해서 각 환경? 을 관리한다.모노레포는 공통이 되는 모듈을 npm에 배포해서 패키지형태로 관리하게 되는데이를 위해 Npm에 간단하게 배포하는 과정을 경험해보고자 한다. 1. 현재 프로젝트를 패키지로 만들기 $ npm init --scope=jihoon 개발자 Jihoon이라는 사람이 자신의 패키지를 발행하려고 할 때, jihoon이라는 스코프를 사용하여 패키지를 발행할 수 있다.이렇게 하면 패키지의 이름이 @jihoon/패키지이름 형식으로 지정되며, 해당 패키지가 Jihoon이라는 개발자에 의해 생성되었음을 명시적으로 알 수 있게 된다.따라서 npm init --scope=jihoon 명령어를 사용하면 Jihoon이라는 스코프로 새로운 npm 패..
molerculer는 kubernetes와 비슷하게 분산 시스템을 구축하고 관리하는 데 사용되는 도구이지만, 다른 목적과 영역에서 작동한다. Moleculer:Moleculer는 마이크로서비스 아키텍처를 구현하고 관리하는 데 사용되는 모듈러 서비스 프레임워크입니다.Node.js로 작성되었으며, 빠르고 확장 가능한 마이크로서비스 어플리케이션을 쉽게 개발할 수 있도록 지원합니다.서비스 간 통신, 분산 환경에서의 데이터 교환, 로드 밸런싱, 서비스 디스커버리 등의 기능을 제공하여 마이크로서비스 아키텍처를 구현하는 데 도움을 줍니다.Moleculer는 마이크로서비스 아키텍처를 구현하는 데 사용되는 프레임워크로, 애플리케이션의 내부 로직을 분리하여 서비스로 구성하고 관리할 수 있습니다.Kubernetes (K8s..
// AS-IS const dailyCalorieRepository = AppDataSource.getRepository(DailyCalorie); await transactionRunner(async (queryRunner) => { const bmiRepo = dailyCalorieRepository.create({ carbohydrate: carbohydrate, protein: protein, lipid: lipid, calorie: calorie, bmiId: foundBodyMassIndex.id, foods: foods, }); await queryRunner.manager.save(bmiRepo); }); //TO-BE await transactionRunner(async (queryRun..