Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 20240820_NoSQL_김영래 #75

Merged
merged 2 commits into from
Sep 10, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions 기술세미나/_posts/2024-08-20-nosql.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
layout: post
title: NoSQL
author: 김영래
categories: 기술세미나
banner:
image: assets/images/post/2023-11-05.webp
background: "#000"
height: "100vh"
min_height: "38vh"
heading_style: "font-size: 4.25em; font-weight: bold; text-decoration: underline"
tags: [NoSQL, 기술 세미나]
---


# NoSQL이란?

### 1. 비관계형 데이터 모델
- 유연한 스키마 : RDBMS 처럼 정해진 스키마를 바탕으로 데이터를 입출력 할 때 형태가 정해지지 않는다.
- 다양한 데이터 모델 : JSON, XML 등의 데이터 형식으로 저장할 수 있다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nosql 예시 이미지, 혹은 다이어그램 등을 첨부 부탁드려요

### 2. 확장성
- 수평 확장 : 샤딩을 통한 분산 저장을 하는 NoSQL 특성 상 성능 확장을 위해 단순히 서버 컴퓨터의 수를 늘리는 방식이 가능하다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

scale out, scale up, 샤딩 등에 대한 다이어그램 이미지를 첨부 부탁드립니다.

- 샤딩 : 데이터를 조각내 분산 저장하는 데이터 처리 기법
### 3. 고가용성 및 장애 복구
- 자동 복제 : 데이터 복제 및 분산 저장을 통해 높은 가용성과 장애 복구가 가능하다.
- 고가용성 : 시스템이 지속적으로 안정적인 동작을 할 수 있도록 보장하는 것
- CAP 이론에서 분산 시스템은 Consistency, Availability, Partition Tolerance 중 두 가지 특성을 만족 가능 -> NoSQL은 Consistency를 포기
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cap 다이어그램 이미지를 추가 부탁드립니다.

### 4. 높은 성능
- Key-Value 에 기반한 DB이기 때문에 기본적으로 읽기와 쓰기에 빠른 속도를 가진다.
- 디스크 기반인 RDBMS와 달리 NoSQL은 메모리 기반이기 때문에 빠른 속도를 가질 수 있다.


# NoSQL 종류
### 1. Key-Value DB
- Key, Value의 쌍인 배열 구조의 데이터가 저장되는 가장 기본적인 형태
- ex. Redis, Oracle NoSQL DB
### 2. Wide Column Store
- Big Table DB라고도 하며, Key Value에서 발전된 형태의 Clumn Family 데이터 모델
- ex. Hbase, Cassandra, GoogleBigTable, Vertica
### 3. Document DB
- Key Value 에서 확장된 형태로 Document라는 구조화된 데이터 타입(JSON, XML)인 Collection 데이터 모델
- ex. MongoDB, CouchDB, Riak, Azure Cosmos DB
### 4. Graph DB
- Nodes, Relationship 데이터 모델
- ex. Sones, AllegroGraph, neo4j, BlazeGraph, Orient DB

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Key Value -> Column Family : 무엇이 어떻게 발전된 형태인지 등에 대한 설명이 첨부되면 좋을 것 같아요.

나머지 nosql 등에 대해서도 이미지가 첨부되면 좋을 듯 합니다.

# NoSQL 장단점
### 1. 장점
- 확장성, 가용성, 고성능, 유연성
- 비정형 데이터
- 설계 비용 감소
- 정의된 구조가 없어 정형화되지 않은 데이터
- ex. 동영상, 오디오 ,사진, 보고서, 문서 등
- 분산 시스템
- RDBMS에 비해 저렴한 비용으로 분산 처리 및 병렬 처리 가능
- 빅데이터 처리에 효율적
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

장점에 대해 어떻게 이런 장점을 가질 수 있는지 간략한 설명과 이미지가 추가되면 좋을 것 같습니다.

### 2. 단점
- 데이터 어벧이트 중 장애가 발생하면 데이터 손실 발생 가능성
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

어벹이트 오타 인듯 합니다.

- 많은 인덱스를 쓰려면 충분한 추가 메모리가 필요하다.
- 인덱스 구조가 메모리에 저장되기 때문이다.
- 데이터 일관성이 항상 보장되지 않는다.
- 최종적 일관성 지향
- 모든 업데이트가 시간이 지나면서 모든 노드에 전파되어 결과적으로 모든 노드가 일관된 상태가 되는 것을 보장하는 개념
- 특정 시간에는 데이터가 일관되지 않을 수도 있다.
- 가용성, 분할용인, 속도 를 위해 희생


# NoSQL 사용 분야
### - 실시간 빅데이터 처리
- Amazon
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

예시 이미지나, 칼럼 캡쳐 이미지 등이 추가되면 졸을 것 같습니다.

- DynamoDB : 전자 상거래 플랫폼 등을 위해 실시간 빅데이터 처리
### - 소셜 네트워크 서비스
- Instagram
- Cassandra : 대규모 데이터에 대한 빠른 쓰기와 확장성이 요구되는 피드 데이터, 시간에 따른 데이터 저장 등에 사용, 데이터 고가용성 및 장애 복구가 큰 장점



Loading