본문 바로가기

🧑🏻‍💻 Dev/Nest JS

(4)
[NestJS] nest start --watch와 node dist/main의 차이 "scripts": { ... "start:dev": "cross-env NODE_ENV=dev nest start --watch", "start:prod": "cross-env NODE_ENV=prod node dist/main", ... }, 환경을 dev와 prod로 나누기 위해서 실행 명령어를 확인하던 도중 둘 다 실행을 하는 것이지만, start:dev는 nest start --watch라는 명령어로 실행을 하고, start:prod는 node dist/main으로 실행을 했습니다. 둘 다 실행해 보면 동일하게 프로젝트를 실행하는 것 같은데 뭐가 다를까라는 의문이 들었습니다. 1. nest start --watch Nest 공식 문서에 들어가 보면 nest start 명령어에 대한 설명이 존재합..
[NestJS] AWS S3, Multer로 이미지 업로드 구현하기 1. S3 버킷 생성 S3 서비스를 이용하려면 AWS 사이트에 들어가서 S3 버킷을 생성해야 합니다. AWS 사이트에 로그인한 후 위에 검색창에 S3라고 검색하면, S3를 시작할 수 있습니다. 노란색 버튼 "버킷 만들기"를 클릭해서 버킷 생성을 시작합니다. 버킷 이름을 먼저 작성해 줍니다. 버킷 이름에는 지켜야 하는 규칙이 있습니다. "버킷 이름 지정 규칙 보기"라는 파란색 링크를 클릭하면 확인해보실 수 있습니다. 규칙을 지켜서 내 버킷이름을 입력해 줍니다. 객체 소유권은 권장되는 방향인 "ACL 비활성화됨"을 선택했습니다. 저는 역할별로 IAM 사용자를 만들어서 사용할 예정입니다. 일단 저는 퍼블릭 액세스 차단 설정을 기본적으로 선택되어 있는 대로 하고 넘어갔습니다. 나중에 버킷에 가서 권한에 대한 설..
[NestJS] FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 1. 문제 상황 자동화 배포 과정에서 Nest 애플리케이션을 빌드하는데, 빌드 실패가 나면서 이런 오류 메시지가 출력됐습니다. FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 말 그대로 할당된 Javascript 힙 메모리를 넘어섰다는 것입니다. 2. 문제 해결 방법 node -e 'console.log(v8.getHeapStatistics().heap_size_limit/(1024*1024))' 위 명령어를 터미널에 쳐보면 현재 설정되어 있는 힙 메모리를 확인할 수 있습니다. 확인해 보니 저는 495라고 떴습니다. 로컬에서는 동작이 됐으니 로컬에서 확인한 값과 동일..
[NestJS] winston 라이브러리를 이용하여 파일에 로그 남기기 Nest로 진행하고 있던 프로젝트가 있었습니다. InternalServerError(500)가 터지면 디버깅을 하거나, 오류에 대응할 때 효율을 높일 수 있도록 로그를 파일에 남기려고 적용하고자 했습니다. Java에서는 LogBack으로 로그를 관리하는 것 같은데, Nest에서는 Winston이라는 라이브러리를 사용한다. Winston Github에 가서 Winston이 제공하는 기능, 사용법을 확인해 볼 수 있습니다. GitHub - winstonjs/winston: A logger for just about everything. A logger for just about everything. Contribute to winstonjs/winston development by creating an ac..