반응형 backend29 Replica Lag이 무엇인지, 그리고 개선! 새로 이직한 회사에서 replica lag 문제를 개선하라는 테스크를 받게 되었다. 이 과정에서 분석 내용과 어떻게 해결 했는지를 공유하고자 한다. Replica Lag이란?우선 replica lag이 무엇인지 알아보자. 레플리카 렉이란 데이터 베이르 Replication 환경에서 마스터 서버의 데이터 변경 사항이 slave 또는 replica 서버에 반영되는데 걸리는 시간 지연을 의미한다.복제는 즉시 (real-time)으로 이루어지지 않고 항상 약간의 시간 지연이 발생할 수 있다. 랙이 발생하는 원인은 보통 다음과 같다.네트워크 지연레플리카 처리 지연 읽기 부하 : 레플리카 서버에 과도한 읽기 쿼리가 몰려 마스터로부터 받은 변경 사항을 적용하는 작업 (SQL Thread)이 지연될 수 있다. 하드.. 2025. 10. 1. [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. 이전 1 2 3 4 ··· 8 다음 반응형