본문 바로가기
반응형

나의 개발일지/node.js7

NestJS에서 이미지 및 영상 처리 작업의 부하를 줄이기 위해 BullMQ 사용 BullMQ를 사용하는 이유BullMQ는 Node.js 애플리케이션에서 비동기 작업 처리를 위해 Redis 기반의 큐 시스템을 제공하는 도구입니다. 주로 백그라운드 작업 처리나 시간이 오래 걸리는 작업을 메인 서버와 분리하여 성능을 향상시키기 위해 사용됩니다. 이로 인해 서버는 요청을 처리한 후, 리소스 집약적인 작업은 별도로 처리할 수 있습니다.BullMQ 장점성능: Redis의 빠른 데이터 처리 속도를 바탕으로 하여 대규모 작업 처리에서도 성능이 우수합니다.작업 실패 관리: BullMQ는 작업 실패 시 자동으로 재시도를 하고, 지정된 최대 재시도 횟수를 넘으면 실패로 기록합니다. 이 과정에서 로그와 디버깅 정보를 제공하여 안정적인 작업 처리를 보장합니다.확장성: 여러 워커를 통해 작업을 병렬로 처리할.. 2024. 10. 7.
Node.js(NestJS)에서 FFmpeg 사용하여 동영상 파일 처리하기 (+ AWS S3 업로드) FFmpeg란?FFmpeg는 멀티미디어 데이터(비디오, 오디오 등)의 디코딩, 인코딩, 변환, 스트리밍, 필터링 등을 지원하는 강력한 오픈 소스 라이브러리입니다. 다양한 포맷을 지원하며, 명령줄에서 제어할 수 있어 영상 및 오디오 처리에 널리 사용됩니다. FFmpeg의 주요 장점 중 하나는 거의 모든 멀티미디어 파일을 변환할 수 있다는 점이며, 고성능의 비디오 및 오디오 처리가 가능합니다.FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It s.. 2024. 10. 7.
nodejs(expressjs) 환경변수 validation NestJS의 ConfigModule을 접하고 expressjs로 만들었던 프로젝트에도 환경변수 유효성 검사와 기본값 설정을 추가해 봐야겠다고 생각하고 실행해 보았다. 왠지 라이브러리가 있을 것 같아 찾아보니 환경변수 유효성 검사와 기본값 설정 등을 할 수 있는 envalid라는 라이브러리가 있었지만 추가로 라이브러리를 깔고 싶지는 않아서 기존에 데이터 검증을 위해 설치했던 joi 라이브러리를 사용하였다. [npm envalid] https://www.npmjs.com/package/envalid envalidValidation for your environment variables. Latest version: 8.0.0, last published: 5 months ago. Start using en.. 2024. 2. 14.
NestJS 환경변수 관리 - process.env보단 ConfigModule을 Express.js를 사용할 땐 Node.js 내장 객체인 process 객체로 환경 변수를 관리했어서 NestJS의 ConfigModule을 접했을 땐 왜 process.env를 두고 ConfigModule을 사용하는 건지 아리송했다. 왜 굳이..? 하지만 굳이 ConfigModule이란 걸 만든 데에는 이유가 있지 않을까 싶어서 개인 블로그 만들기 프로젝트를 하며 이것저것 시도해 보았다. Configuration namespaces(app, db, secret 등으로 세분화해서 관리)까지 적용했다가 현재는 후퇴한 상태다. class에 주입해서 사용하는 거 말고 일반 함수에서는 어떻게 해야 좋을까 고민하다가 일단 process.env로 접근하는 걸로 수정했다. redis 연결 부분을 함수로 export.. 2024. 2. 7.
[nodejs | 노드js] package.json ▼ package.json npm에서 핵심적인 역할을 하며, 패키지에 관한 정보와 의존 중인 버전에 관한 정보를 담고 있다. 패키지 내의 의존성 관리를 위해 프로젝트마다 생성하여 패키지 목록과 버전을 관리한다. 프로젝트명, 버전, 만든 사람, GitHub 레포지토리 등 설치된 모듈의 정보가 담겨 있으며, 해당 프로젝트가 의존하고 있는 모듈이 무엇인지 파악할 수 있다. 누군가의 프로젝트를 클론할 때에도 유용하게 쓰인다. npm install 명령어만 이용하면 package.json 파일의 정보를 읽어 필요한 라이브러리를 모두 설치할 수 있다. { "name": "zerocho-blog", "version": "2.8.1", "description": "blog of ZeroCho", "private": t.. 2022. 7. 31.
[nodejs | 노드js] 모듈(module), 내장 객체 ▼ 모듈 특정한 기능을 하는 함수나 변수들의 집합 자바스크립트에서 코드를 재사용하기 위해 함수로 만드는 것처럼 모듈을 만들어 여러 프로그램에서 해당 모듈을 재사용 할 수 있다. 여러 파일에 걸쳐 재사용 되는 함수나 변수를 모듈로 만들어 두어 편리하게 관리할 수 있지만, 모듈이 많아지고 모듈 간의 관계가 얽히게 되면 구조를 파악하기 어렵다는 단점도 있다. require 함수나 module 객체는 따로 선언하지 않아도 사용할 수 있는 이유 : 노드에서 기본적으로 제공하는 내장객체이기 때문. cf) 자바스크립트 자체 모듈 시스템 문법 : 2015년 자바스크립트에서도 import/export라는 모듈 개념이 도입 되었지만, 브라우저에서는 구현 되지 않아 사용할 수 없었다가 크롬 60 버전부터 사용할 수 있게 되.. 2022. 7. 27.
반응형