728x90

React 8

Node, Nest 서버에서 2개의 DataSource 사용하기 (TypeOrmModule)

Nest에서 Db 접속을 TypeORmModule을 이용해서 하고 있는데,기존에 TypeOrmModule.forRoot() 함수를 썼었던 것을 TypeOrmModule.forRootAsync() 함수로 변경하면서 에러를 겪었다. DB를 하나만 이용하는 것이 아니라 2개를 사용해야해서 접속정보가 각각 다른데, 그것을 app.module.ts 파일에 2가지 Module을 선언해서 사용했었다. 아래 내용이 있다. DB 접속 주소는 케이스에 맞게 적고, name은 첫번째꺼는 default로 두번째꺼는 functions 라고 지정해놨다. configuration.yaml 파일은 아래처럼 지정을 해준다.const defaultOrmModule = TypeOrmModule.forRoot({ name: 'defaul..

React/Node 2025.05.22

[Javascript] forEach와 map의 차이

이 주제에 대해서 생각해보게 된 계기가 있는데, 최근에 소스 코드를 Sonarqube를 통해 스캔했는데 결과에서 이런 문구가 여러 개 나왔다.Consider using "forEach" instead of "map" as its return values is not being used here. 아무래도 map 대신 forEach를 쓰라는 것 같은데,기능이 똑같은데 굳이..? 라는 생각이 처음에 들었다. 이유를 찾기 위해서 두 함수의 기능을 자세히 알고보니까 이유를 알겠더라.. 두 함수는 모두 배열을 순회하면서 작업을 한다는 공통점이 있지만, 세부적인 기능이 약간 달랐다. 중요 포인트! 두 함수의 차이점은 map은 순회하면서 중요한 포인트는 새로운 배열을 리턴한다는 점이다!forEach의 경우 순회를 하..

React 2025.05.15

[ yarn] npm 대신 yarn 사용하기

node에서 패키지 관리자로 npm 을 기본으로 자주 사용한다.기존에 나도 계속 npm 을 썼었는데, 뭔가 패키지들 사이의 관계가 자주 꼬이는 것을 경험하여 속도도 더 빠르고 패키지간 관계도 더 정확하게 관리한다는 yarn을 이용하기로 결정했다. 두 개의 패키지 관리 툴을 동시에 섞어 사용하다보면 오히려 패키지가 더 꼬여서 설치될 수 있기 때문에,중간에 사용하다가 변경하게 된다면 싹 지우고 재설치를 하는 것이 좋다. 1. npm 사용npm을 사용할 때 명령어는 npm install 하면 된다.npm installpackage.json 파일을 토대로 node_modules폴더를 만들면서 안에 패키지를 저장하는데,저장하면 package-lock.json 파일을 만든다.혹시나 yarn 을 사용하다가 npm 을..

React/Node 2025.05.14

[Nest js] Nest에서 반복 스케쥴러 작업 만들기 (feat. cron, @nestjs/schedule)

Nest 서버에서 윈도우 스케줄러 처럼 반복 작업을 만들 수 있다.나는 어떤 위치의 폴더에서 생성된 지 2주가 지난 파일들을 삭제해주는 작업을 만들어보려고 했던 내용을 정리할 겸 남겨보려고 한다. 우선 nest 에서 cron을 쓰기 위해 패키지를 설치해야한다. npm install @nestjs/schedule  명령어를 통해 nestjs/schedule 을 설치한다.  그리고 나서 사용하려는 서비스 안에서 서비스명 위에 @Cron('* * * * * *') 라고 선언을 해주면 된다.  Cron을 nestjs/schedule에서 import해서 사용하게 된다. Cron() 내부에 선언되는 변수는 실행 주기를 선언해주게 되는데, 예시로 들어간 * 6개는 매 초마다 실행하겠다는 뜻이다. import { Cr..

React/Node 2025.04.03

[Node] TypeOrm - Oracle Db 사용 시 Slow Query Timeout 방법

React - node (express)를 이용하여 웹 서비스를 운영중인데,조회 쿼리가 엄청나게 오래 걸려서 서버 connection pool이 꽉 차서 에러가 발생하는 일이 생겼다. 조회 쿼리를 수정해서 지금은 그런 문제는 없지만만약을 방지하기위해서 일정 시간 이상 걸리는 조회쿼리의 경우 db connection을 끊어서 쿼리 실행을 취소시키는 방법을 찾아보게 되었다. 그런데 찾아보니 typeorm을 사용하는 경우 oracle db 에서는 세션을 kill 하지 않는이상 실행중인 쿼리를 중단시킬 수 있는 방법이 없었다. 세션을 kill하는 방법은 너무 위험하기도 하고 권한이 필요해서 권장되지 않기 때문에 다른 방법을 찾게 되었다. 찾아보던 중 typeorm을 사용하지않고 직접 oracledb를 사용해서 ..

React/Node 2024.10.21

Node express - frontend에서 넘어오는 request 본문 크기 제한 설정방법

React - node (express)를 이용하여 웹 서비스를 운영중인데,프론트쪽에서 request를 넘겨주는 부분에서 너무 큰 데이터를 넘겼다고 에러가 발생했다. PayLoad Too Large error 였는데 너무 큰 본문을 요청해서 발생한 에러였다.알고보니 request에서 json 데이터를 넘겨줄 수 있는 데이터 제한은 디폴트값이 100KB라고 한다.그래서 이부분을 늘려주기위해서는 백엔드에서 main.ts파일에 limit을 설정해주어야 한다. import { NestFactory } from '@nestjs/core';import { AppModule } from './app.module';import * as bodyParser from 'body-parser'; // body-parser ..

React/Node 2024.10.16

React-Node 프로젝트 IIS에 배포하기!

기존에 php로 되어있던 웹 프로그램을 React-node로 만들어서 Migration하는 프로젝트를 진행중이다.기본적인 기능을 대부분 마치고서 QA window Server에 IIS에 올려서 배포하는 방법을 정리해보고자 한다. 우선 윈도우 서버에서 IIS 서버 매니저를 통하여 Add Web Site를 한다. 이 사이트는 내가 추가할 사이트인데 실제로 루트 경로를 잡아주어야 하기 때문에 미리 Root로 잡을 폴더 위치에 루트 폴더를 만들어놓아야 한다.  (예. C:\IIS\wwwroot)그리고 사이트가 사용할 Application pool이 새로 생성이 되는데 ASP가 아니기 때문에 다른 설정이 필요하다. 그리고 node를 사용하기 위해서 서버에 설치해야할 파일 내용들이 몇 가지 있다.아래에 정리해 놨는..

React/REACT 2024.05.30

[nestjs] 신규 프로젝트 생성

PHP로 되어있는 웹 소스를 nestjs로 변경하고자 한다. 우선 신규 프로젝트를 생성하여 DB접속하는 부분을 1차 목표로 했다. npm을 설치한 상태에서 신규 프로젝트를 생성하는 과정을 정리해본다. 우선 프로젝트를 생성하고자 하는파일위치에서 cmd 를 입력하여 cmd창을 연다. 맨처음 콘솔창에서 npm i -g nest 를 실행한다. npm i -g @nestjs/cli 작업이 진행된 다음 프로젝트를 생성한다. nest new [프로젝트명] [프로젝트명] 위치에 만들고자 하는 프로젝트의 명칭을 입력한다. (예를 들면 testProject) 그리고 프로젝트파일로 cd 한 뒤 install 이어서 run start 혹은 run start:dev 하면 실행이 된다. cd 프로젝트명 npm install np..

React 2023.10.17
728x90