[Go] Context에 관한 고찰 - 2 : Context의 중요성과 메모리 누수
·
Language/Go
~Go Context 시리즈~[1] Context에 관한 고찰 - 1 : Context 란[2] Context에 관한 고찰 - 2 : Context의 중요성과 고루틴 누수[3] Context에 관한 고찰 - 3 : Graceful Shutdown의 미학Context가 중요한 이유Context의 중요성을 간과하고 context.Background()를 남발하는 코드는 당장에는 문제없이 동작하는 것처럼 보일 수 있다. 이는 마치 브레이크 없는 자동차로 텅 빈 직선 도로를 달리는 것과 같은데, 장애물이 나타나거나(에러 발생), 교차로에서 멈춰야 하거나(요청 취소), 주차해야 할 때(서버 종료) 비로소 재앙이 시작된다...후후... (그나저나 AI 비유법 기깔난다..ㅋㅋㅋㅋ 다시 돌리려다가 웃겨서 그냥 가져옴)..
[MongoDB] Skip 쿼리를 이용한 pagination 처리 시 주의할 점
·
Computer Science/Database
DB팀과 대화를 하면서 알게된, mongoDB에서 대용량 데이터 pagnination 처리(페이징 처리)를 할 때 주의할 점에 대해서 정리한다. mongo 쿼리로 페이지네이션 처리를 하는 가장 간단한 방법은 아마 아래와 같을 것입니다.1. 전체 데이터 개수를 구해서, 원하는 사이즈로 나눠서 순회를 돌린다.2. 쿼리는 sort, skip, limit 순서대로 사용한다. mongo에 대용량 데이터를 읽거나 쓸 때 모두 필요한 방법입니다.아무래도 한번에 많은 데이터를 불러오면, API 서버와 MongoDB 서버 모두에서 과도한 메모리를 사용하게 되고, 시스템이 다운되거나 성능이 저하될 수 있습니다. 그러나 여기서 skip 연산자를 무분별하게 사용할 때도 성능 저하가 발생될 수 있다는걸 알고 있나요? 저는 몰랐..