분류 전체보기
-
인덱싱은 데이터베이스 성능 최적화의 핵심이며, 제대로 사용하면 쿼리 속도를 크게 향상시킬 수 있습니다. MongoDB 인덱싱이란?인덱싱은 데이터베이스 테이블의 검색 속도를 향상시키기 위해 사용되는 데이터 구조입니다. MongoDB에서 인덱스는 컬렉션 내 문서들의 특정 필드 값을 정렬하여 저장합니다. 이를 통해 MongoDB는 전체 컬렉션을 스캔하지 않고도 빠르게 원하는 데이터를 찾을 수 있습니다.인덱싱의 장점쿼리 성능 향상: 인덱스를 사용하면 쿼리 실행 시간이 크게 단축됩니다.정렬 작업 최적화: 인덱스된 필드로 정렬할 때 성능이 향상됩니다.고유성 보장: 유니크 인덱스를 사용하여 필드 값의 중복을 방지할 수 있습니다.집계 연산 개선: 특정 집계 작업의 성능을 향상시킵니다.자주 쿼리되는 데이터에 대해서는 컬..
MongoDB 성능 개선! 빠른 속도 튜닝!을 위한 DB 인덱싱 적용 db.collection.createIndex인덱싱은 데이터베이스 성능 최적화의 핵심이며, 제대로 사용하면 쿼리 속도를 크게 향상시킬 수 있습니다. MongoDB 인덱싱이란?인덱싱은 데이터베이스 테이블의 검색 속도를 향상시키기 위해 사용되는 데이터 구조입니다. MongoDB에서 인덱스는 컬렉션 내 문서들의 특정 필드 값을 정렬하여 저장합니다. 이를 통해 MongoDB는 전체 컬렉션을 스캔하지 않고도 빠르게 원하는 데이터를 찾을 수 있습니다.인덱싱의 장점쿼리 성능 향상: 인덱스를 사용하면 쿼리 실행 시간이 크게 단축됩니다.정렬 작업 최적화: 인덱스된 필드로 정렬할 때 성능이 향상됩니다.고유성 보장: 유니크 인덱스를 사용하여 필드 값의 중복을 방지할 수 있습니다.집계 연산 개선: 특정 집계 작업의 성능을 향상시킵니다.자주 쿼리되는 데이터에 대해서는 컬..
2024.08.26 -
⚠️ 성능에 영향을 주는 쿼리를 확인하기 위한 용도일뿐, 이 자체로 성능을 개선하는 것과는 무관합니다.(오히려 프로파일링 활성화 모드일때 성능을 더 잡아먹음. 프로파일링 완료 후 반드시 프로파일링 비활성화를 해야 함)프로파일링 활성화mongo db 접속 및 해당 database 접근 후 사용.2개 중에 편한 방법을 이용하여 활성화할 수 있다. 1. mongosh(mongoshell) 을 통한 사용 시# mongosh 접속mongosh# admin db 접근use admin# db 권한 접속db.auth('사용자명','비밀번호')# 프로파일링할 db 사용: platform db 예시use platform# 프로파일링 활성화: 예시: 레벨 1, slowms 느린쿼리 임계치를 의미. 즉 100ms 를 초과하는..
MongoDB 성능 개선을 위한 점검 (DB 프로파일링 / db.setProfilingLevel)⚠️ 성능에 영향을 주는 쿼리를 확인하기 위한 용도일뿐, 이 자체로 성능을 개선하는 것과는 무관합니다.(오히려 프로파일링 활성화 모드일때 성능을 더 잡아먹음. 프로파일링 완료 후 반드시 프로파일링 비활성화를 해야 함)프로파일링 활성화mongo db 접속 및 해당 database 접근 후 사용.2개 중에 편한 방법을 이용하여 활성화할 수 있다. 1. mongosh(mongoshell) 을 통한 사용 시# mongosh 접속mongosh# admin db 접근use admin# db 권한 접속db.auth('사용자명','비밀번호')# 프로파일링할 db 사용: platform db 예시use platform# 프로파일링 활성화: 예시: 레벨 1, slowms 느린쿼리 임계치를 의미. 즉 100ms 를 초과하는..
2024.08.26 -
mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Mon 2024-08-26 13:39:12 KST; 3min 34s ago Docs: https://docs.mongodb.org/manual Process: 819091 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=1/FAILURE) Main PID: 819091 (code=exited, status=1/FAILURE) CP..
mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) MongoDB 서비스 재시작 실패: 문제 해결 가이드mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Mon 2024-08-26 13:39:12 KST; 3min 34s ago Docs: https://docs.mongodb.org/manual Process: 819091 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=1/FAILURE) Main PID: 819091 (code=exited, status=1/FAILURE) CP..
2024.08.26 -
파이썬에서 리스트를 다룰 때 흔히 마주치는 문제 중 하나는 리스트를 순회하면서 동시에 요소를 제거하는 상황입니다. 이런 작업이 예상치 못한 결과를 낳는 경우가 많은데, 오늘은 이 문제와 그 해결 방법을 알아보겠습니다.문제가 있는 코드다음 코드를 봐주세요:def remove_max_values(values): if not values: return max_val = max(values) for i, v in enumerate(values): if v == max_val: values.pop(i) result.append(v) return result# 테스트values = [5, 5, 4, 3, 5, 2]result = []print..
파이썬 리스트 순회 중 요소 제거(반복문 도중에 멈춤): 함정과 해결책파이썬에서 리스트를 다룰 때 흔히 마주치는 문제 중 하나는 리스트를 순회하면서 동시에 요소를 제거하는 상황입니다. 이런 작업이 예상치 못한 결과를 낳는 경우가 많은데, 오늘은 이 문제와 그 해결 방법을 알아보겠습니다.문제가 있는 코드다음 코드를 봐주세요:def remove_max_values(values): if not values: return max_val = max(values) for i, v in enumerate(values): if v == max_val: values.pop(i) result.append(v) return result# 테스트values = [5, 5, 4, 3, 5, 2]result = []print..
2024.08.21 -
Error: Unexpected token I in JSON at position 0 NextJS로 개발하실때 이런 에러 한번씩 뜨실겁니다. 이 에러에 대해서 처음 보시거나 모르시는분들은 프론트에서 문제를 찾으실겁니다. 막상 확인해보면 api 요청하는데 요청값이 잘못 들어가서 Backend server에서 에러가 나서 생긴 오류입니다. 저같은 경우도 아래의 에러 메세지 처럼 backend server에서 생긴 문제였습니다.
Error: Unexpected token I in JSON at position 0Error: Unexpected token I in JSON at position 0 NextJS로 개발하실때 이런 에러 한번씩 뜨실겁니다. 이 에러에 대해서 처음 보시거나 모르시는분들은 프론트에서 문제를 찾으실겁니다. 막상 확인해보면 api 요청하는데 요청값이 잘못 들어가서 Backend server에서 에러가 나서 생긴 오류입니다. 저같은 경우도 아래의 에러 메세지 처럼 backend server에서 생긴 문제였습니다.
2024.08.19 -
Python 유효성 검사하고 dictionary 특정 키값 업데이트하기. Clean하게. 유효성 검사 안하면 아래처럼 에러가 생깁니다.bson.errors.InvalidId: 'undefined' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string 우선 키값을 update하려면 아래처럼 유효성을 검사하고 새로운 value를 넣으면 됩니다. if aiPicPrompt: aiPicPrompt["_id"] = str(aiPicPrompt.get("_id")) 하지만 위의코드도 작동하지만 한줄로 줄이고, 더 멋지게 작성할 수 있습니다.aiPicPrompt and aiPicPrompt.update(_id=str(ai..
Python 유효성 검사하고 dictionary 특정 키값 업데이트하기[As Clean](bson.errors.InvalidId: 'undefined' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string)Python 유효성 검사하고 dictionary 특정 키값 업데이트하기. Clean하게. 유효성 검사 안하면 아래처럼 에러가 생깁니다.bson.errors.InvalidId: 'undefined' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string 우선 키값을 update하려면 아래처럼 유효성을 검사하고 새로운 value를 넣으면 됩니다. if aiPicPrompt: aiPicPrompt["_id"] = str(aiPicPrompt.get("_id")) 하지만 위의코드도 작동하지만 한줄로 줄이고, 더 멋지게 작성할 수 있습니다.aiPicPrompt and aiPicPrompt.update(_id=str(ai..
2024.08.16 -
Next.js에서 useSearchParams() 사용 시 주의사항문제 상황다음과 같은 에러 메시지를 보신 적 있나요?useSearchParams() should be wrapped in a suspense boundary at page "/loginPage". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout 이 메시지는 "/loginPage"에서 useSearchParams()를 사용할 때 Suspense 경계로 감싸지 않아 발생하는 오류입니다. Suspense는 리액트 18버전에서 도입이 되었습니다. 다음 링크를 참조해주세요.-> https://ko.react.dev/reference/react/Suspense..
useSearchParams() should be wrapped in a suspense boundary at page "/loginPage". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailoutNext.js에서 useSearchParams() 사용 시 주의사항문제 상황다음과 같은 에러 메시지를 보신 적 있나요?useSearchParams() should be wrapped in a suspense boundary at page "/loginPage". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout 이 메시지는 "/loginPage"에서 useSearchParams()를 사용할 때 Suspense 경계로 감싸지 않아 발생하는 오류입니다. Suspense는 리액트 18버전에서 도입이 되었습니다. 다음 링크를 참조해주세요.-> https://ko.react.dev/reference/react/Suspense..
2024.08.15 -
ESLint: A control must be associated with a text label.(jsx-a11y/control-has-associated-label) React 프로젝트에서 자주 마주치는 ESLint 오류 중 하나인 "A control must be associated with a text label.(jsx-a11y/control-has-associated-label)"에 대해 알아보고, 이를 해결하는 방법을 공유하려고 합니다.오류의 의미이 오류는 웹 접근성(Web Accessibility)과 관련이 있습니다. 간단히 말해, 사용자 인터페이스의 컨트롤(예: 버튼, 입력 필드)에 연관된 텍스트 레이블이 없을 때 발생합니다. 텍스트 레이블은 스크린 리더 사용자를 포함한 모든 사용자가 해..
ESLint: A control must be associated with a text label.(jsx-a11y/control-has-associated-label)ESLint: A control must be associated with a text label.(jsx-a11y/control-has-associated-label) React 프로젝트에서 자주 마주치는 ESLint 오류 중 하나인 "A control must be associated with a text label.(jsx-a11y/control-has-associated-label)"에 대해 알아보고, 이를 해결하는 방법을 공유하려고 합니다.오류의 의미이 오류는 웹 접근성(Web Accessibility)과 관련이 있습니다. 간단히 말해, 사용자 인터페이스의 컨트롤(예: 버튼, 입력 필드)에 연관된 텍스트 레이블이 없을 때 발생합니다. 텍스트 레이블은 스크린 리더 사용자를 포함한 모든 사용자가 해..
2024.08.15