👋 Hello, I am Seung-ho Ham

🧑🏻‍💻 A Developers who create code that changes the world

반응형

Database 8

[MongoDB] HTTP, gRPC ObjectId 타입 인식 문제

* MongoDB의 _id나 특정 키가 ObjectId 타입일 경우, 이를 문자열로 변환하지 않고 그대로 전송하면 클라이언트에서 처리할 수 없음 * 반대로 클라이언트에서 문자열로 보낸 값을 MongoDB 쿼리에서 ObjectId로 변환하지 않으면 쿼리 결과가 제대로 반환되지 않는 문제가 발생 데이터를 API로 주고받을 때, MongoDB 필드 중 ObjectId인 경우에는 서버/클라이언트에서 변환 처리를 명시적으로 해줘야함 이를 해결하기 위해, JSON 형식의 데이터를 처리할 때 _id 필드를 ObjectId 로 변환해주는 로직이 필요def convert(value): if isinstance(value, dict): for key, item in value.items(): ..

Database/MongoDB 2025.01.08

[MongoDB] MongoDB ReplicaSet 기본 구성

MongoDB ReplicaSetReplica Set (몽고 이중화)가장 일반적인 이중화 방법, 데이터를 복제하여 장애 복구몽고디비를 사용하면 레플리카셋을 생성함으로써 레플리카를 설정할 수 있음레플리카셋은 클라이언트 요청을 처리하는 프라이머리 서버 한 대와, 프라이머리 데이터의 복사본을 갖는 세컨더리 서버 여러대로 이루어짐프라이머리 서버에 장애가 발생하면 세컨더리 서버를 자신들 중에서 새로운 프라이머리 서버를 선출할 수 있음복제를 사용하는 상태에서 서버가 다운되면, 복제 셋에 있는 다른 서버를 통해 데이터에 접근할 수 있음서버상의 데이터가 손상되거나 접근할 수 없는 상태라면 복제 셋의 다른 멤버로부터 새로운 복제 데이터를 만들 수 있음Replica Set 설계 방법복제 셋을 설계하기에 앞서 과반수 개념을..

Database/MongoDB 2024.09.11

MongoDB와 관계형 데이터베이스, 데이터 타입과 설계 방식의 차이

[궁금했던 내용들]1. ObjectId란 무엇인가?MongoDB에서 ObjectId는 각 문서를 고유하게 식별하기 위해 사용되는 데이터 타입입니다. 모든 문서는 _id 필드를 가지고 있으며, 기본적으로 이 필드에는 ObjectId가 할당됩니다. ObjectId는 12바이트 크기의 고유한 식별자로 다음과 같은 정보를 포함합니다4바이트: 유닉스 타임스탬프 (문서가 생성된 시간)5바이트: 머신 ID (서버를 식별)3바이트: 프로세스 ID (MongoDB 프로세스를 식별)3바이트: 자동 증가하는 카운터 (같은 초에 생성된 ObjectId를 구별)이러한 구조를 통해 ObjectId는 전 세계에서 고유성을 유지하며, 시간 정보도 포함하고 있어 언제 생성되었는지 확인할 수 있습니다. 2. 왜 ObjectId를 사용하..

Database/MongoDB 2024.09.06

요구사항 정의서 작성

요구사항 정의서는 프로젝트에서 필요한 모든 요구사항을 명확하게 정의하고 문서화한 것 주로 소프트웨어 개발 프로젝트에서 많이 사용되며, 고객과 개발팀이 동일한 이해를 가지도록 돕는 중요한 문서  요구사항 정의서는 프로젝트의 방향을 정하고, 개발 과정에서 발생할 수 있는 혼란을 방지한다. 또한, 프로젝트가 완료된 후에도 고객이 원하는 결과물을 제공했는지 평가하는 기준이 된다.  요구사항 정의서에 포함되어야 할 내용요구사항 정의서에는 다음과 같은 항목이 포함되어야 합니다기능 요구사항: 시스템이 어떤 기능을 제공해야 하는지를 명확하게 정의비기능 요구사항: 시스템이 기능 외에도 갖춰야 할 특성, 예를 들어 성능, 보안, 확장성 등을 정의세부내용 및 요건: 각 요구사항이 어떻게 구현될지에 대한 구체적인 설명이 필요..

Database/MongoDB 2024.09.04

MongoDB CRUD와 문법

MongoDB에서의 CRUD(Create, Read, Update, Delete) 작업은 데이터베이스에서 데이터를 삽입하고, 조회하고, 수정하고, 삭제하는 기본적인 작업을 말합니다.1. Document 입력 - insertOne, insertManyinsertOne: 한 개의 document(문서)를 생성합니다.insertMany: 여러 개의 document를 한 번에 생성합니다.// 하나의 문서를 추가 (insertOne)db.test_2.insertOne( { title: "MongoDB Guide", author: "Jane Doe", views: 100 })// 여러 개의 문서를 추가 (insertMany)db.test_2.insertMany([ { title: "Python Tutor..

Database/MongoDB 2024.08.27

MongoDB 기본 명령어와 비교,논리 연산자

데이터베이스 및 컬렉션 관리show dbs // 모든 데이터베이스 목록 보기use test // 특정 데이터베이스 사용 (없으면 생성)show collections // 현재 데이터베이스의 컬렉션 목록 보기db.stats() // 현재 데이터베이스의 통계 정보 확인db.dropDatabase() // 현재 데이터베이스 삭제db.test_2.drop() // 특정 컬렉션(test_2) 삭제db.createCollection("test_5", { capped: true, size: 1234, max: 100 }) // 새..

Database/MongoDB 2024.08.26

MongoDB 기초 가이드: 데이터 삽입, 조회, 삭제 및 정규 표현식 활용

MongoDB는 비관계형(NoSQL) 데이터베이스로, 유연한 데이터 모델과 뛰어난 확장성으로 많은 개발자들 사이에서 인기를 얻고 있습니다. MongoDB에서 데이터를 삽입, 조회, 삭제하는 방법과 정규 표현식을 활용한 데이터 필터링 방법을 알아볼 것입니다.  MongoDB에서 데이터 삽입하기단일 문서 삽입('insertOne') : 하나의 문서를 삽입할 때는 'insertOne'을 사용합니다.다음은 'test_2' 컬렉션에 하나의 문서를 삽입하는 코드 입니다.db.getCollection("test_2").insertOne({    name: "User100",    age: 25,    address: "1001"}) 다중 문서 삽입('insertMany') : 여러 문서를 한 번에 삽입하려면 'ins..

Database/MongoDB 2024.08.02

SQL과 NoSQL은 뭐가 다를까? 차이점은?

SQL (Structured Query Language)과 NoSQL (Not Only SQL)은 데이터베이스 관리 시스템(DBMS)의 두 가지 주요 유형입니다. 이 두가지 시스템은 데이터 저장 및 관리 방식에서 중요한 차이점을 가지고 있습니다. 첫번째로 데이터 모델 부분에서의 차이를 가지고 있습니다.SQL은 구조화된 스키마로 이루어져 있습니다. 정해진 스키마를 사용하며, 데이터는 행과 열로 저장이 됩니다. 또한 테이블은 정해진 구조와 유형을 갖춘 데이터 필드로 구성됩니다. 그리고 관계형 데이터베이스로 관계형 모델에 따라 데이터가 저장되고 테이블간의 관계는 외래키를 통해 정의됩니다. 반면 NoSQL은 유연한 스키마로 이루어져 있습니다. 스키마가 없거나 매우 유연하며, 데이터 구조가 필요에 따라 동적으로 ..

Database/MongoDB 2024.08.02
반응형