상위 MongoDB 인터뷰 질문

Sang Wi Mongodb Inteobyu Jilmun



MongoDB는 오픈 소스 NoSQL 데이터베이스 관리 시스템입니다. 비정형 데이터를 쉽게 저장할 수 있을 뿐만 아니라 관리할 수 있습니다. 수백만 행의 구조화되지 않은 데이터를 관리하는 방법에 대한 질문이 있을 때마다 MongoDB를 권장합니다.

MongoDB의 첫 번째 버전은 2007년 2월에 10세대 소프트웨어 회사인 10gen은 2013년 후반에 회사 이름을 MongoDB Inc.로 변경했습니다.

MongoDB는 JSON 문서 형태로 데이터를 저장하는 데 사용되는 NoSQL 데이터베이스입니다. 이 기능 덕분에 대량의 비정형 데이터를 MongoDB에 쉽게 저장하고 관리할 수 있습니다. 데이터가 있는 이러한 문서 집합을 컬렉션이라고 합니다. 그리고 이러한 컬렉션은 관계형 데이터베이스에서 데이터를 저장하는 데 사용되는 테이블과 유사합니다.







다른 관계형 및 NoSQL 데이터베이스와 비교할 때 MongoDB가 인기 있는 데는 여러 가지 이유가 있습니다. 그 중 일부는 다음과 같습니다.



  • 개발자는 키-값 쌍에 따라 구조를 정의할 수 있습니다.
  • 관계형 데이터베이스와 마찬가지로 데이터에 행과 열이 필요하지 않습니다.
  • 계층적 MongoDB 구조는 데이터를 배열 형태로 저장할 수 있으며 복잡한 데이터도 저장할 수 있습니다.
  • 여러 프로그래밍 언어를 지원하므로 개발자가 데이터베이스를 쉽게 관리할 수 있습니다.
  • 또한 gridFS 및 복제 기능을 지원합니다.

그 인기로 인해 MongoDB로 작업하는 개발자에게는 많은 취업 기회가 있습니다. 이 기사는 가장 중요하고 많은 최고 등급 조직에서 일반적으로 묻는 질문과 관련이 있습니다.



몽고DB 인터뷰 질문

가장 자주 묻는 질문은 기본 수준, 중급 수준 및 전문가 수준의 세 가지 수준으로 나뉩니다.





기본 레벨

이러한 질문은 MongoDB의 기본 개념 및 용어와 관련이 있으며 인터뷰에서 모든 후보자가 이러한 질문에 답해야 합니다.

질문 1: NoSQL 데이터베이스와 해당 유형에 대해 무엇을 알고 있습니까?
NoSQL 데이터베이스는 문서 및 키-값 형식과 같은 다른 형식으로 데이터를 저장하는 대신 SQL 데이터베이스처럼 테이블에 데이터를 저장하지 않는 데이터베이스입니다.



NoSQL 데이터베이스에는 네 가지 중요한 유형이 있습니다.

  • 문서 데이터베이스: 이러한 데이터베이스는 데이터를 JSON 문서 형식으로 저장하고 이러한 문서가 결합하여 컬렉션을 형성하고 이러한 컬렉션이 결합하여 데이터베이스를 형성합니다.
  • 키-값 데이터베이스: 이러한 데이터베이스는 키-값 형식으로 데이터를 저장합니다(예: 'Name = John', 이 예제에서 'Name'은 키이고 'John'은 값).
  • 와이드 컬럼 스토어: 이러한 데이터베이스는 관계형 데이터베이스와 달리 동적 테이블 형식으로 데이터를 저장하며 이러한 테이블은 구조화되지 않습니다.
  • 그래프 데이터베이스: 이러한 데이터베이스에는 에지와 노드가 포함되어 있습니다. 노드는 정보를 저장하는 데 사용되는 반면 가장자리는 노드 간의 관계를 표시하는 데 사용됩니다.

질문 2: MongoDB는 어떤 유형의 NoSQL 데이터베이스입니까?
MongoDB 데이터베이스는 문서 데이터베이스에 속하므로 JSON 문서에 따라 데이터를 저장합니다. 스키마를 따르지 않으며 모든 유형의 데이터 삽입을 허용합니다.

질문 3: MongoDB와 SQL 데이터베이스 중 어느 것이 더 좋습니까?
MongoDB는 비정형 데이터를 처리할 수 있다는 점에서 SQL 데이터베이스보다 나은 반면, SQL 데이터베이스는 관계형 데이터베이스와 달리 정형 데이터만 처리하고 아무런 제한 없이 저장합니다. MongoDB는 schemaless라는 특성 때문에 테이블 형태로 데이터를 배치하지 않고 여러 테이블에 데이터를 배치하기 때문에 SQL 데이터베이스에 비해 쿼리 처리가 빠르다. 쿼리가 데이터에 쉽게 액세스할 수 있고 MongoDB는 데이터를 다른 프로그래밍 언어로 매핑할 수 있어 사용자가 쉽게 작업할 수 있습니다.

질문 4: MongoDB에서 문서 및 컬렉션이란 무엇입니까?
데이터는 문서 형태로 MongoDB에 저장되고 이러한 문서가 결합하여 컬렉션을 형성하고 여러 컬렉션이 결합하여 데이터베이스를 형성합니다. 이를 이해하기 위해 school_data 데이터베이스의 예를 살펴보겠습니다. school_data 데이터베이스에는 classes_data가 포함된 컬렉션이 포함되어 있으며 이러한 문서(classes_data)에는 학생(student_data)의 데이터가 문서 형식으로 포함되어 있습니다.

질문 5: MongoDB 데이터 유형은 무엇입니까?
MongoDB가 지원하는 많은 데이터 유형이 있습니다.

문자열 데이터 유형은 알파벳/문자 형태로 데이터를 저장하며 8바이트여야 하며 UTF-8에 속해야 합니다(예: Jone).
정수 최대 64비트의 숫자를 저장하지만 크기는 서버에 따라 다를 수 있습니다(예: 1,54).
부울 이것은 0 또는 1일 수 있는 부울 값을 저장하는 데 사용됩니다(예: John is in class?). 대답은 예 또는 아니오입니다.
더블 이것은 22.8과 같은 부동 숫자를 저장합니다.
최소/최대 키 최소값과 최대값을 비교하는 데 사용됩니다.
어레이 하나의 키에 배열 또는 여러 값을 저장하는 데 사용됩니다.
타임스탬프 문서가 수정되면 수정 기록을 유지할 수 있습니다.
물체 포함된 문서를 저장합니다.
없는 null 값을 저장합니다.
상징 이것은 문자열의 유형이며 기호와 관련된 언어를 저장할 수 있습니다.
날짜 현재 시간과 날짜는 이러한 데이터 유형에 저장할 수 있습니다.
개체 ID 문서에는 고유 ID가 있으며 이 ID는 이 데이터 유형에 저장될 수 있습니다.
바이너리 데이터 기계어라고도 하는 이진 데이터가 저장됩니다.
암호 Javascript 코드는 이 데이터 유형의 도움으로 문서에 저장됩니다.
정규 표현식 모든 표현식을 이 데이터 유형에 저장할 수 있습니다.

질문 6: MongoDB의 대안은 무엇입니까?
MongoDB는 대용량 분산 데이터가 BSON 문서에 저장되는 NoSQL 데이터베이스 유형입니다. MongoDB의 대안은 Amazon DynamoDB, Microsoft Azure Cosmos DB, Couchbase, PostgreSQL, Redis 및 Cassandra가 될 수 있습니다.

중급

이러한 질문은 기본 사항보다 고급 개념과 더 관련이 있으며 인터뷰에서 일반 후보자가 이러한 질문에 대답해야 합니다.

질문 7: 높은 수준에서 MongoDB와 SQL을 어떻게 비교할 수 있습니까?
SQL 데이터베이스는 테이블을 구성하는 행과 열의 형태로 잘 구조화되고 조직화된 방식으로 데이터를 저장하는 관계형 데이터베이스인 반면, MongoDB 데이터베이스는 문서에 데이터를 저장하는 NoSQL 데이터베이스입니다. 컬렉션이라고 하며 이러한 컬렉션이 결합되어 데이터베이스를 형성합니다.

질문 8: MongoDB에 ACID 트랜잭션 관리 및 잠금과 같은 기능이 있습니까?
아니요, 기본적으로 MongoDB는 다중 문서에서 ACID 트랜잭션을 제공하지 않지만 단일 문서에서 ACID 트랜잭션을 지원할 수 있습니다.

질문 9: MongoDB에서 인덱싱이란 무엇입니까?
MongoDB에서 인덱스는 데이터베이스의 일부 필드를 차지하고 인덱스를 만들기 위해 일부 데이터를 보유하는 특수 데이터 구조입니다. 인덱스는 데이터베이스의 검색 능력을 향상시키며, 많은 문서에서 특정 항목을 검색하는 대신 사용자가 인덱싱을 통해 지정된 문서로 바로 이동할 수 있습니다.

{
학생 아이디 = 1
학생 이름 = '폴'
국가 = '미국'
}

위의 예에서 “Student_id =1”은 인덱스이므로 누구든지 Student_id 또는 1로 검색하면 다음 문서가 열립니다.

질문 10: MongoDB에서 배열 필드에 인덱스를 만들 수 있습니까?

예, MongoDB의 배열 필드에 대한 인덱스를 생성할 수 있으며 배열의 각 값을 인덱싱합니다. 실제로 MongoDB는 자체적으로 다중 키 인덱스를 생성하므로 인덱스 필드가 배열인 경우 이를 지정할 필요가 없습니다.

질문 11: 단일 MongoDB 인스턴스에서 여러 Javascript 작업을 실행할 수 있습니까?
MongoDB V8 2.4 버전에서는 javascript 엔진이 추가되었기 때문에 단일 mongod 인스턴스에서 여러 Javascript 작업을 실행할 수 있습니다.

질문 12: MongoDB에서 저널링이란 무엇입니까?
MongoDB에서 저널링이 활성화되면 다음 디렉토리 내에 Journal의 하위 디렉토리가 생성됩니다. /데이터/db , 기본적으로 dbPath에 의해 정의된 경로입니다. 저널링이 실행되는 동안 MongoDB는 데이터 변경 사항이 디스크로 전송되기 전에 데이터를 편집하고 메모리와 디스크에 저장합니다. 데이터의 변경 사항이 저장되지 않아 오류가 발생한 경우 MongoDB가 Journal 파일에서 변경 사항을 검색하고 파일의 내구성을 보장할 수 있으므로 매우 유용합니다.

전문가 수준

이러한 질문은 MongoDB의 고급 개념과 관련이 있으며 전문 지원자는 이러한 질문에 답해야 합니다.

질문 13: MongoDB 샤딩 프로세스는 무엇입니까?
MongoDB에서 샤딩은 거대한 데이터베이스의 데이터를 여러 MongoDB 서버에 분산시키는 과정입니다. 따라서 데이터 처리가 용이하고 질의 응답 속도도 빠릅니다. MongoDB는 샤딩을 통한 수평 확장을 지원합니다.

MongoDB 클러스터는 다음 세 부분으로 구성됩니다. 파편 ; 복제본이라고도 하며 모든 서버에서 사용할 수 있습니다. 망고 ; 서버와 샤드 사이에서 인터프리터 역할을 하며 구성 서버 ; 클러스터 및 메타데이터의 구성 설정을 저장합니다.

질문 14: 수평 확장이란 무엇이며 MongoDB에서 어떻게 발생합니까?
단일 노드에 많은 데이터가 있을 때 여러 노드가 로드된 노드에 접근하여 로드를 분산합니다. 단일 노드의 로드를 다른 노드로 공유하는 이 프로세스를 확장이라고 하며 수평 확장이라고도 합니다.

질문 15: MongoDB 쿼리 언어를 사용하여 쿼리 계획에 대한 정보를 어떻게 얻을 수 있습니까?
그만큼 설명() 명령이 사용되며 'allPlansExecution, executionStats 및 queryPlanner' 모드를 지원합니다. 예를 들어:

DB . 레스토랑 . 설명 ( '실행 통계' ) . 찾기 (
{ '요리' : 1 , '자치구' : '브루클린' }
) ;

위의 예에서 레스토랑의 데이터는 explain() 명령에서 검색됩니다.

질문 16: MongoDB 집계 프레임워크를 설명하십시오.
MongoDB에서는 서로 다른 컬렉션에서 데이터를 가져오고 계산 후 집계라는 결합된 결과를 반환합니다. 세 단계가 있습니다. 먼저 입력을 받고 $match()를 사용하여 문서에서 필요한 문서를 필터링한 다음 $group()을 사용하여 필터링된 정보에 대한 집계 작업을 수행하고 마지막으로 정렬합니다. $sort()를 사용한 결과입니다.

질문 17: MongoDB 작업을 사용하여 둘 이상의 데이터베이스를 잠글 수 있습니까?
예, MongoDB는 둘 이상의 데이터베이스를 잠글 수 있습니다. 여러 데이터베이스를 즉시 잠그려면 MongoDB 작업을 사용합니다. db.copyDatabase() , 반면 작업, db.repairDatabase() 데이터베이스 편집에 전역 잠금을 적용하고 데이터베이스가 제거될 때까지 구현할 다른 작업을 제한합니다.

질문 18: MongoDB의 GridFS는 무엇입니까?
이미지, 동영상 파일, 오디오 파일과 같이 16MB를 초과하는 대용량 파일은 GridFS를 사용하여 MongoDB에서 관리하고 단일 문서가 아닌 파일의 일부 및 청크에 저장합니다. MongoDB는 기본적으로 fs라는 두 가지 형식만 지원합니다. files 및 fs.chunks는 파일의 청크 및 메타데이터를 저장합니다.

질문 19: MongoDB의 복제 현상을 어떻게 설명할 수 있습니까?
복제는 여러 서버 간에 데이터를 동기화하는 프로세스인 반면 MongoDB는 데이터를 복사하여 다른 서버에 복제하므로 서버 충돌 시 다른 서버에서 데이터를 검색할 수 있으므로 데이터의 보안이 보장됩니다.

질문 20: 몽고 쉘이 무엇입니까?
mongo 쉘은 MongoDB와 상호 작용할 수 있고 쿼리를 사용하여 데이터를 수정할 수도 있는 JavaScript 플랫폼입니다. 또한 데이터베이스 인스턴스 유지와 같은 관리 목적으로도 사용됩니다. 기본적으로 mongo shell은 설치 파일에 포함되어 있지만 설치되어 있지 않은 경우 MongoDB 서버에서 설치할 수 있습니다.

결론

MongoDB는 널리 사용되는 NoSQL 데이터베이스로 문서 형태의 데이터를 관리하는 데 사용되며 스키마가 없기 때문에 처리가 매우 쉽습니다. Twitter 및 Facebook과 같은 많은 잘 알려진 회사에서 사용합니다. 그 인기로 인해 MongoDB 인터페이스에서 작업하는 개발자에게는 수많은 직업 기회가 있습니다. 이 기사에서는 가장 자주 묻는 MongoDB 인터뷰 질문을 적절한 답변과 함께 공유했습니다.