본문 바로가기
반응형

backend28

[NestJS] TypeError: Do not know how to serialize a BigInt 문제 해결 개발을 진행하던 도중 만난 에러. 이 api를 호출했을 때 에러도 뱉어내지 않고 계속해서 응답이 오지 않는 상황이 벌어졌다. 서비스 단에서의 문제인가 봤더니 문제가 없었고 리턴 값에 console.log를 찍어봐도 잘 나오는데 리턴만 안됐다. gpt한테 바로 물어보니... 라길래 바로 json으로 강제로 직렬해보았다. 그랬더니 발생한 에러 TypeError: Do not know how to serialize a BigInt 이는 응답 데이터를 Nestjs에서는 JSON.stringify()로 직렬화할 때 BigInt 타입이 포함되어 있으면 발생하는 에러이다. 데이터가 많아질 거 같아 한 테이블의 pk 타입을 bigint로 설정했더니 이런 문제가 발생한 것이였다. 가장 안전하고 간단한 방법은 모든 Bi.. 2025. 5. 29.
[Prisma] $executeRawUnsafe와 $queryRawUnsafe() 차이 $executeRawUnsafe()와 $queryRawUnsafe()는 둘 다 Prisma에서 raw query를 직접 실행할 때 사용하는 함수이다. 하지만 당연히 차이가 있기 때문에 나눠진게 아니겠는가? 그 차이를 알아보자. $executeRawUnsafe()이 함수는 INSERT/UPDATE/DELETE 같은 실행만하고 결과를 받지 않는 쿼리에서 사용이 된다. 이 함수의 리턴 값은 쿼리에 의해 영향 받은 row의 수를 리턴하게 된다. 따라서 결과 데이터는 받을 수 없다. const count = await prisma.$executeRawUnsafe( `UPDATE "User" SET active = false WHERE last_login $queryRawUnSafe() 이 함수는 SELECT.. 2025. 4. 22.
[AI] 간단한 AI api 호출로 nsfw 컨텐츠 검수해보기 이직하고난지 한달도 되지 않아... 이전 회사의 ai 서비스 개발 경험을 바탕으로 새로운 업무를 맡게 되었다. 이른바 ai를 통해 nsfw 컨텐츠 검수 필터링 기능 도입이였다. 크리에이터와 팬을 잇는 서비스의 특성 상 이런 센슈얼한 이슈가 될 수 있는 컨텐츠는 필연적인 바... 현재 회사에는 모든 검수가 수동으로 이루어지고 있다고 했다. 해당 담당자의 화면에는 모든 포스트를 열람할 수 있는 화면이 뜨고 거기서 담당자가 문제가 될 만한 컨텐츠인지 아닌지를 직접 확인하고 있던 상황.. 이런 상황이기 때문에 당연히 담당자가 놓치거나하는 이슈가 발생할 수 있기 때문에 이 부분에서 ai를 통해 센슈얼한 컨텐츠만 필터링을 해서 볼 수 있는 기능이 요구 사항이였다. 처음 기존 담당자가 진행했던 부분은 직접 모델을 학.. 2025. 4. 22.
[Server] Nginx Nginx를 리버스 프록시로 설정 → Node.js 서버를 외부에 노출하지 않고 Nginx를 통해 트래픽을 전달로드 밸런싱 → 여러 개의 Node.js 인스턴스를 띄우고 Nginx가 트래픽을 분산정적 파일 서빙 → Nginx에서 정적 파일을 직접 제공캐싱 설정 → 성능 향사아을 위한 캐싱 적용압축(gzip, Brotli) 적용 → 트래픽 감소 및 성능 향상보안 설정 (HTTPS, CORS, Rate Limiting 등)프로젝트 구조nginx-node-docker/│── backend/ # Node.js 서버 코드│ ├── server.js│ ├── package.json│ ├── Dockerfile│── nginx/│ ├── default.conf .. 2025. 3. 26.
반응형