TIL💡/Database(27)
-
[EF Core]Entity Framework core
✅ Introduction Entity Framework Core은 가볍고, 확장 가능성이 높은 크로스 플랫폼 버전의 마이크로소프트 ORM이다. Entity Framework는 공식적인 데이터 액세스 플래솦밍다. ✅ Why Entity Framework Core EF Core은 ORM(Object-Relational Mapper)로 .NET 개발자들이 .NET 오브젝트로 데이터베이스 개발할 수 있도록 한다. 이는 lighweight, extensible하고, 크로스플랫폼적으로 사용될 수 있다. 이를 통해 개발자들이 데이터를 접근하는 코드를 작성할 필요를 줄인다. ✅ Basic Query Entity Framework Core는 LINQ(Language Integrate Query)를 사용해 데이터베이스로..
2022.03.13 -
[Redis] 데이터 타입의 최적화
레디스에서 모든 데이터 타입은 메모리를 저장하거나 성능을 높이는 다양한 인코딩을 사용할 수 있다. 예를 들어 단지 숫자만 갖는 문자열은 다른 인코딩을 사용하기 때문에 글자만 갖는 문자열보다 메모리를 덜 사용한다. 데이터 타입은 레디스 서버 설정에 정의된 임계값을 기반으로 다양한 인코딩을 사용한다. 레디스를 다운로드하면, redis.config라는 파일을 통해 설정값을 변경할 수 있고 커맨드라인을 통해 설정을 간단하게 바꿀 수 있다. $ redis-server --hash-max-ziplist-entries 3 --hash-max-ziplist-value 5 --list-max-ziplist-entries 3 --list-max-ziplist-value 5 --set-max-intset-entries 3 ..
2022.02.27 -
[Redis] 다양한 커맨드와 기능 소개
💚 Pub / Sub 메시지를 특정 수신자에게 직접 발송하지 못하는 곳에서 쓰이는 패턴 Publish-Subscribe(발송하다-구독하다)의 약자다. 발송자(Publisher)와 구독자(Subscriber)가 특정 채널을 리스닝하고 있다면, 발송자는 채널에 메시지를 보내고 구독자는 발송자의 메시지를 받는다. 레디스는 Pub/Sub 패턴을 지원하고, 메시지를 발송하고 채널을 구독하는 커맨드를 제공한다. 사용 예시 ✨ 뉴스와 날씨 대시보드 ✨ 채팅 애플리케이션 ✨ 지하철 지연 경고 등의 푸시 알림 ✨ SaltStack 툴이 지원하는 것과 유사한 리모트 코드의 실행 예제 발송자가 커맨드를 채널에 보내고, 채널을 구독한 서버는 해당 커내드를 실행하는 원격 커맨드 실행 시스템을 구현 PUBLISH 커맨드는 메시지..
2022.02.27 -
[Redis] 데이터타입 실습2
💚 Set 레디스에서의 셋은 순서가 없고 동일한 문자열이 없는 콜렉션이다. 따라서 셋에 동일한 엘리먼트를 계속 추가할 수 없다. 내부적으로 셋은 일부 커맨드(엘리먼트 추가 및 삭제, 검색의 성능 속도는 항상 O(1)다)를 최적화해야하기 때문에 해시 테이블로 구현됐다. 셋의 모든 엘리먼트 값이 정수면 셋의 메모리 영역은 줄어들고, 전체 엘리먼트 개수는 set-max-intset-entries 설정 값만큼 커질 수 있다. 셋이 가질 수 있는 엘리먼트의 최대 개수는 2^32 - 1이다. (아무래도 셋의 개수가 unsigned int형으로 세팅되어 있나 보다.) 즉 한 셋에 40억개 이상의 엘리먼트를 저장할 수 있음을 의미한다. 사용 예시 ✨ 데이터 필터링 주어진 한 도시에서 출발해서 다른 도시로 도착하는 모든..
2022.02.27 -
[Redis] Redis 학습 및 데이터 타입 실습1
Redis는 가장 인기 있는 인메모리(In-memory) Key-Value 저장소이다. Redis 기초 설명 String, Hash, List, Set, Sorted Set, Bitmap, HyperLogLog와 같은 강력한 데이터 타입 때문에 데이터 구조 서버라고도 불린다. Redis는 기본적으로 메모리에 저장하기 때문에 읽기와 쓰기 명령이 매우 빠르다. Redis는 디스크에도 데이터를 저장할 수 있다. 방법 Snapshot - 저장된 데이터를 바이너리 스냅샷으로 생성 Journaling - 시간에 걸쳐 실행된 모든 커맨드를 순서대로 저장해 사람이 읽을 수 있는 파일로 생성 이를 통해 데이터의 영속성을 달성할 수 있다. 추가적으로 Redis는 Key Expiration, Transaction, Publ..
2022.02.26 -
[SQL Server] Transaction
트랜잭션(Transaction) - 업무 처리를 위한 논리적인 업무 단위 - 데이터를 일관성있게 처리하기 위해 여러 개의 갱신 연산이 하나의 작업처럼 전부 처리되거나 아예 하나도 처리되지 않도록(All or Nothing) 동시 실행 구현 1. 트랜잭션의 특징 🔮 원자성(Atomicity) 트랜잭션은 분해가 불가능한 업무의 최소단위이므로 전부 처리되거나 아예 하나도 처리되지 않아야 한다. 🔮 일관성(Consistency) 일관된 상태의 데이터베이스에서 하나의 트랜잭션을 성공적으로 완료하면 그 데이터베이스는 여전히 일관된 상태여야 한다. 즉 트랜잭션 실행의 결과로 데이터베이스 상태가 모순되지 않아야 한다. 🔮 격리성(Isolation) 실행 중인 트랜잭션의 중간결과를 다른 트랜잭션이 접근할 수 없다. 🔮 ..
2022.02.12