728x90

database 15

Redis

Redis빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어이다.보통 데이터베이스는 하드디스크나 SSD에 저장한다. 하지만 Redis는 메모리(RAM)에 저장해서 디스크 스캐닝이 필요없어 매우 빠르다.캐싱도 실시간으로 가능하며 실시간 채팅에 적합하다. 세션 공유를 위해서 세션 클라스터링에도 활용 가능하다.저장 공간이 RAM 이라면 휘발성 문제는?백업 과정이 존재한다.Snapshot : 특정 지점을 설정하고 디스크에 백업한다.AOF(Append Only File) : 명령(쿼리)들을 저장해두고, 서버가 셧다운 되면 재실행해서 다시 만들어 놓는 것이다.데이터 구조는 key/value 값으로 이루어져 있다. 따라서 Redis는 비정형 데이터를 저장하는 비관계형 데이터베이스 관리 시스템이다.value 5가지S..

Computer/CS 2024.07.16

24.07.16 C#

C#조건 연산자(Conditional Operator)조건 연산자는 ?: 은 큭이하게도 피연산자가 세 개이다.조건식 ? 참일 때의 값 : 거짓일 때의 값null 조건부 연산자?. 은 객체의 멤버에 접근하기 전 해당 객체가 null인지 검사해서 그 결과가 참이면 그 결과로 null을 반환하고, 그렇지 않은 경우 . 뒤에 지정된 멤버를 반환한다.?[] 도 동일한 기능을 수행한다. 배열과 같은 컬렉션 객체의 첨자를 이용한 참조에 사용된다는 점이 다르다.null 병합 연산자?? 연산자는 두 개의 피연산자를 받아들이고 왼쪽 피연산자가 null인지 평가한다. 평가 결과가 null이 아닌것으로 나타나면 왼쪽 피연산자를 그대로 반환하고, 만약 왼쪽 피연산자가 null인 것으로 평가되면 오른쪽 피연산자를 반환한다.Swi..

Database - 트랜잭션 격리 수준(Transaction Isolation Level)

트랜잭션 격리 수준(Transaction Isolation Level)Isolation Level트랜잭션에서 일관성 없는 데이터를 허용하도록 하는 수준이다.Isolation level의 필요성데이터베이스는 ACID 특징과 같이 트랜잭션이 독립적인 수행을 하도록 한다.따라서 Locking을 통해, 트랜잭션이 DB를 다루는 동안 다른 트랜잭션이 관여하지 못하도록 막는 것이 필요하다.하지만 무조건 Locking으로 동시에 수행되는 수많은 트랜잭션들을 순서대로 처리하는 방식으로 구현하게 되면 데이터베이스의 성능은 떨어지게 될 것이다.그렇다고 해서, 성능을 높이기 위해 Locking의 범위를 줄인다면, 잘못된 값이 처리될 문제가 발생하게 된다.Isolation level의 종류Read Uncommitted(레벨 ..

Computer/CS 2024.07.11

24.07.11 C#, CS

C#using System;usingC#의 키워드 중 하나다.SystemC# 코드에 기본적을 필요한 클래스를 담고 있는 네임스페이스다.;(세미콜론)컴파일러에게 문장의 끝을 알려준다.using static어떤 데이터 형식의 정적 멤버를 데이터 형식의 이름을 명시하지 않고 참조하겠다.전역 using(global using)소스파일 한 곳에서만 네임스페이스를 참조하면 프로젝트 내 모든 파일에서 별도의 using문 없이 해당 네임스페이스를 참조할 수 있도록 한다.파일 범위 네임스페이스namespace 선언 뒤에 {} 대신 ;(세미콜론)을 붙이면 그 파일의 모든 코드는 해당 네임스페이스 소속으로 들어간다.Static void Main(string[] args){}이 메소드는 프로그램의 진입점(Entry Point..

Database - DB 트랜잭션(Transaction)

DB 트랜잭션(Transaction)데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위이다.상태를 변화시킨다는 것은 SQL 질의어를 통해 DB에 접근하는 것을 의미한다.작업 단위많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미한다.트랜잭션의 특징원자성(Atomicity)트랜잭션이 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 한다.일관성(Consistency)트랜잭션의 작업 처리 결과는 항상 일관성이 있어야 한다.독립성(Isolation)둘 이상의 트랜잭션이 동시에 병행 실행되고 있을 때, 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없다.지속성(Durability)트랜잭션이 성공적으로 완료되었으면, 결과는 영구적으로 반영되어야 한다.Commit하나의 트랜잭션이 성공적으로..

Database - 정규화(Normalization)

정규화(Normalization)데이터의 중복을 줄이고, 무결성을 향상시킬 수 있는 정규화에 대해 알아보자Normalization중복된 데이터를 허용하지 않는 것이다.중복된 데이터를 만들지 않으면, 무결성을 유지할 수 있고, DB 저장 용량 또한 효율적으로 관리할 수 있다.목적데이터의 중복을 없애면서 불필요한 데이터를 최소화시킨다.무결성을 지키고, 이상 현상을 방지한다.테이블 구성을 논리적이고 직관적으로 할 수 있다.데이터베이스 구조를 확장에 용이해진다.과정정규화에는 여러가지 단계가 있지만, 대체적으로 1~3단계 정규화까지의 과정을 거친다.제 1정규화(1NF)테이블 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분리시키는 것을 말한다.만족해야 할 조건어떤 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있..

Computer/CS 2024.07.10

24.07.10 CS

CS정규화(Normalization)데이터의 중복을 줄이고, 무결성을 향상시킬 수 있는 정규화에 대해 알아보자Normalization중복된 데이터를 허용하지 않는 것이다.중복된 데이터를 만들지 않으면, 무결성을 유지할 수 있고, DB 저장 용량 또한 효율적으로 관리할 수 있다.목적데이터의 중복을 없애면서 불필요한 데이터를 최소화시킨다.무결성을 지키고, 이상 현상을 방지한다.테이블 구성을 논리적이고 직관적으로 할 수 있다.데이터베이스 구조를 확장에 용이해진다.과정정규화에는 여러가지 단계가 있지만, 대체적으로 1~3단계 정규화까지의 과정을 거친다.제 1정규화(1NF)테이블 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분리시키는 것을 말한다.만족해야 할 조건어떤 릴레이션에 속한 모든 도메인이 원자값만으로 되어..

Database - Index

IndexDB Index목적RDBMS에서 검색 속도를 높이기 위한 기술Table의 Column을 색인화 한다.(따로 파일로 저장한다)과정Table을 생성하면, MYD, MYI, FRM 3개의 파일이 생성된다.FRM : 테이블 구조가 저장되어 있는 파일이다.MYD : 실제 데이터가 있는 파일이다.MYI : Index 정보가 들어가 있는 파일이다.Index를 사용하지 않는 경우, MYI 파일은 비어져 있다. 그러나, 인덱싱하는 경우 MYI 파일이 생성된다.이후에 사용자가 Select 쿼리로 Index를 사용하는 Column을 탐색 시, MYI 파일의 내용을 검색한다.단점Index 생성시, .mdb 파일 크기가 증가한다.한 페이지를 동시에 수정할 수 있는 병행성이 줄어든다.인덱스 된 Field에서 Data를 ..

Computer/CS 2024.07.09

SQL과 NOSQL의 차이

SQL 장점명확하게 정의된 스키마, 데이터 무결성 보장한다.관계는 각 데이터를 중복 없이 한번만 저장한다.SQL 단점덜 유연하다. 데이터 스키마를 사전에 계획하고 알려야 한다.관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있다.대체로 수직적 확장만 가능하다.NoSQL 장점스키마가 없어서 유연하다. 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능하다.데이터는 애플리케이션이 필요로 하는 형식으로 저장된다. 데이터 읽어오는 속도 빨라진다.수직 및 수평 확장이 가능해서 애플리케이션이 발생 시키는 모든 읽기/쓰기 요청 처리 가능하다.NoSQL 단점유연성으로 인해 데이터 구조 결정을 미루게 될 수 있다데이터 중복을 계속 업데이트 해야 한다데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 ..

Computer/CS 2024.07.09
728x90