Computer Science/DB6 Redis란? 우아한 레디스 영상과 구글링을 참조해서 작성된 문서입니다. (https://youtu.be/mPB2CZiAkKM) Redis in-memory 자료구조다.오픈소스인만큼 수정해서 사용해도 상관없다.레디스가 서포팅하는 자료구조String, set, sorted-set, hashes, listHyperloglog, bitmap, geospatial indexStreamRedis의 자료구조는 Atomic하기때문에 Race Condition을 피할 수 있다.그래도 잘못짜면 발생 왜 Collection이 중요한가? Redis 사용처Remote Data StoreA, B, C 서버에서 데이터를 공유하고 싶을때한 대 에서만 필요하다면 전역 변수를 쓰면 되지 않을까?Redis가 아토믹 보장주로 많이 쓰는 곳들인증 토큰 .. 2023. 3. 17. MongoDB 기본 개념에 대해 알아보기 (정리) https://www.youtube.com/watch?v=81JnYGT2HVQ MongoDB 소개 key-value와 다르게 여러 용도로 사용이 가능 (범용적) 스키마를 고정하지 않는 형태 - 스키마 변경으로 오는 문제 없음 - 데이터를 구조화해서 json 형태로 저장 (데이터를 key-value화 저장) Join이 불가능하기ㄷ 때문에 join이 필요없도록 데이터 설계 필요 MongoDB 특징 메모리맵 형태의 파일엔진 DB이기 때문에 메모리에 의존적 - 메모리 크기가 성능을 좌우 - 메모리를 넘어서는 경우 성능이 급격히 저하됨 쌓아놓고 삭제가 없는 경우가 적합 - 로그 데이터 - 이벤트 참여 내역 - 세션 트랜잭션이 필요한 금융, 결제, 빌링, 회원 정보 등에는 부적합 (이런 것들은 RDBMS 사용) 도.. 2022. 5. 13. DB 기초 DB를 이용하는 이유는 그냥 파일에 저장하는 것만으로는 얻을 수 없는 이득을 얻을 수 있기 때문에 (검색, 정렬, 보안) SQL(Structured Query Language)이란? RDBMS의 데이터를 관리하기 위해 설계된 프로그래밍 언어. 미국에서 시퀄(SEQUEL)이라고도 불림 DML (Data Manipulation Language): 데이터 조작어 select insert update delete 1. data row-by-row로 동작하여 더 느림 2. 조건절 가능 3. 롤백 가능 4. auto_increment 그대로 5. 개발자가 권한을 갖기도 하지만 신중히 결정 DDL (Data Definition Language): 데이터 정의어 create - create database board;.. 2022. 2. 3. 트랜잭션 A가 B에게 계좌로 돈을 보낸다고 가정하면 다음과 같은 과정이 필요하다. 1. A 계좌 잔액 확인 2. A 계좌 잔액 차감 3. B 계좌 잔액 확인 4. B 계좌 잔액 증가 이러한 일련의 과정을 트랜잭션이라고 한다. 트랜잭션은 4가지 특성(ACID)을 만족해야한다. 원자성(Atomicity) 전부 반영되거나 전부 반영되지 않게(All or Nothing) 지속성(Consistency) 결과가 지속돼야함 독립성(Isolation) 여러 트랜잭션이 서로 영향을 미치면 안됨 일관성(Durability) 결과가 변하면 안됨 하지만 성능을 위해 특성을 위배하게 됨 동시에 1000000개의 요청이 들어올 때 순차적으로 처리할 수 없기 때문 트랜잭션 격리 수준 (동시성) Read-uncommited Read-comm.. 2021. 11. 30. NoSQL NoSQL이란? 관계형 데이터 모델을 지양하며 대량의 분산된 데이터를 저장하고 조회하는 데 특화되었으며 스키마 없이 사용 가능하거나 느슨한 스키마를 제공하는 저장소를 말한다. 종류마다 쓰기/읽기 성능 특화, 2차 인덱스 지원, 오토 샤딩 지원 같은 고유한 특징을 가진다. 대량의 데이터를 빠르게 처리하기 위해 메모리에 임시 저장하고 응답하는 등의 방법을 사용한다. 동적인 스케일 아웃을 지원하기도 하며, 가용성을 위하여 데이터 복제 등의 방법으로 관계형 데이터베이스가 제공하지 못하는 성능과 특징을 제공한다. CAP이론 1. 일관성(Consistency) 일관성은 동시성 또는 동일성이라고도 하며 다중 클라이언트에서 같은 시간에 조회하는 데이터는 항상 동일한 데이터임을 보증하는 것을 의미한다. 이것은 관계형 데.. 2021. 10. 29. 정규화 정규화는 왜 생겼는가? 한 릴레이션에 여러 엔티티의 애트리뷰트들을 혼합하게 되면 정보가 중복 저장되며, 저장 공간을 낭비하게 된다. 또 중복된 정보로 인해 갱신 이상이 발생하게 된다. 동일한 정보를 한 릴레이션에는 변경하고, 나머지 릴레이션에서는 변경하지 않은 경우 어느 것이 정확한지 알 수 없게 되는 것이다. 이러한 문제를 해결하기 위해 정규화 과정을 거치는 것이다. 갱신이상 삽입 이상 : 원하지 않는 자료가 삽입된다든지, 삽입하는데 자료가 부족해 삽입이 되지 않아 발생하는 문제점을 말한다. 삭제 이상 : 하나의 자료만 삭제하고 싶지만, 그 자료가 포함된 튜플 전체가 삭제됨으로 원하지 않는 정보 손실이 발생하는 문제점을 말한다. 수정 이상 : 정확하지 않거나 일부의 튜플만 갱신되어 정보가 모호해지거나 .. 2021. 10. 29. 이전 1 다음