목록2024/12 (26)
나의 잡다한 노트 및 메모
**데이터 웨어하우스(Data Warehouse)**는 다양한 출처의 데이터를 통합, 저장, 분석하기 위해 설계된 대규모 데이터 저장소를 의미합니다. 이는 비즈니스 의사결정을 지원하기 위해 분석 및 보고에 최적화된 구조로 설계된 데이터베이스 시스템입니다.데이터 웨어하우스의 특징주제 중심적 (Subject-Oriented):특정 비즈니스 주제(예: 판매, 고객, 재무 등)에 따라 데이터를 구성합니다.운영 데이터베이스(OLTP)는 트랜잭션 처리가 목적이지만, 데이터 웨어하우스는 분석 목적에 맞게 설계됩니다.통합적 (Integrated):서로 다른 시스템에서 수집된 데이터를 일관된 형식으로 변환하여 통합.예: 여러 지역에서 수집된 데이터의 통화 단위를 일관되게 변환.시간 변화(Time-Variant):데이터를..
Join은 데이터베이스에서 여러 테이블의 데이터를 서로 연결하여 하나의 결과 집합으로 만드는 작업을 의미합니다. 테이블 간의 관계를 활용하여 관련 데이터를 조회할 때 사용됩니다.Join의 필요성관계형 데이터베이스는 데이터를 정규화하여 여러 테이블로 나누어 저장합니다. 따라서 필요한 데이터를 한 번에 조회하려면 각 테이블을 Join을 통해 연결해야 합니다.예를 들어:고객 정보는 customers 테이블에, 주문 정보는 orders 테이블에 분리되어 있을 때, 특정 고객이 한 주문 정보를 조회하려면 두 테이블을 Join해야 합니다.Join의 종류다양한 Join 유형이 있으며, 필요한 데이터를 어떤 방식으로 결합할지에 따라 선택됩니다.1. INNER JOIN (내부 조인)두 테이블에서 공통된 값이 있는 행만 ..
**데이터 정규화(Normalization)**는 데이터베이스 설계에서 중복을 최소화하고 데이터의 일관성을 유지하기 위해 데이터를 구조화하는 과정입니다. 정규화는 데이터를 여러 테이블로 나누고, 각 테이블을 논리적으로 연결하여 효율적이고 관리하기 쉬운 구조를 만듭니다.정규화의 목표데이터 중복 제거: 중복된 데이터를 줄여 저장 공간을 절약.데이터 무결성 보장: 데이터 변경 시 일관성을 유지.유연성 향상: 데이터 구조 변경 시 영향을 최소화.데이터 관리 용이성: 삽입, 삭제, 갱신 시 이상현상(Anomaly) 방지.정규화 단계정규화는 여러 단계로 이루어지며, 각 단계는 특정 규칙을 만족합니다. 주요 단계는 다음과 같습니다:1. 제1정규형 (1NF):모든 열이 **원자값(Atomic Value)**만 포함하도..
캐싱에서 갱신 방식은 캐시와 원본 데이터(예: 데이터베이스, 파일 시스템) 간의 동기화를 어떻게 처리할지 결정하는 중요한 요소입니다. 갱신 방식에 따라 데이터 일관성과 성능이 크게 달라질 수 있습니다. 아래에서 주요 갱신 방식의 동작 원리와 장단점을 더 자세히 설명하겠습니다. 1. Write Through개념: 데이터를 캐시에 쓰는(write) 동시에 원본 데이터에도 저장하는 방식입니다.작동 흐름:클라이언트가 데이터를 캐시에 저장 요청.캐시는 데이터를 저장한 후 원본 데이터베이스에도 동일한 데이터를 저장.캐시와 원본 데이터는 항상 동기화된 상태를 유지.장점:데이터 일관성이 높음(캐시와 원본 데이터가 항상 동일).데이터 유실 가능성이 낮음(캐시에 장애가 발생해도 데이터베이스에 데이터가 남아 있음).단점:쓰..
**트랜잭션(Transaction)**은 데이터베이스에서 하나의 논리적인 작업 단위를 의미합니다. 트랜잭션은 하나 이상의 작업(쿼리)을 묶어 하나의 작업처럼 처리하며, 데이터베이스의 무결성을 유지하기 위해 반드시 완전하게 수행되거나 전혀 수행되지 않아야 합니다. 트랜잭션의 구성트랜잭션은 다음과 같은 작업으로 구성됩니다:시작: 트랜잭션이 시작됩니다.작업 수행: 데이터베이스에서 SQL 명령(SELECT, INSERT, UPDATE, DELETE 등)을 실행합니다.커밋(Commit): 모든 작업이 성공적으로 완료되었음을 확인하고 변경 내용을 데이터베이스에 영구적으로 저장합니다.롤백(Rollback): 작업 중 오류가 발생하면 트랜잭션을 취소하고 데이터베이스를 이전 상태로 되돌립니다. 트랜잭션의 예1. 은행..
ACID 성질은 트랜잭션이 데이터 무결성을 보장하기 위해 따라야 할 4가지 핵심 속성을 의미. 1. Atomicity (원자성)트랜잭션에 포함된 작업은 모두 성공하거나 모두 실패해야 합니다.중간에 오류가 발생하면 트랜잭션은 실행되기 전 상태로 되돌아갑니다 (Rollback).예: 은행에서 계좌 A에서 B로 송금할 때, A의 돈이 빠져나갔지만 B에 입금되지 않으면 안 됩니다. 따라서 둘 중 하나라도 실패하면 전체 트랜잭션이 취소됩니다.2. Consistency (일관성)트랜잭션 전후에 데이터베이스의 상태가 항상 일관된 상태를 유지해야 합니다.데이터베이스가 정의한 제약 조건(Constraints, 예: Primary Key, Foreign Key 등)을 위반하지 않아야 합니다.예: 계좌의 총 잔액이 트랜잭션..

1. Message-Oriented Middleware (메시지 지향 미들웨어)메시지 지향 미들웨어는 높은 수준의 영속적(persistent) 비동기 통신을 목표로 설계되었습니다.이 방식에서는 프로세스 간의 직접적인 동기화를 요구하지 않으며, 메시지가 **큐(queue)**에 저장됩니다.2. 주요 특징메시지 전달:프로세스 간에 메시지가 주고받아지며, 이 메시지들은 큐에 저장됩니다.큐는 메시지를 보관하여 수신자가 준비될 때 전달되도록 보장합니다.비동기 통신:송신자는 즉각적인 응답을 기다릴 필요가 없습니다.응답을 기다리지 않고 다른 작업을 수행할 수 있습니다.이는 시스템의 효율성을 높이는 데 기여합니다.장애 내성(Fault Tolerance):미들웨어는 메시지의 안정적인 전달과 장애 상황에서의 복구를 보장합..
먼저, 가상화란? -> 하나의 물리적 서버에서 여러 운영체제와 애플리케이션을 실행할 수 있도록 하는 기술 컨테이너나 VM의 근본적인 기술은 가상화이다. 컨테이너는 호스트 OS 커널을 공유한다. 그리고 컨테이너 간에는 프로세스 수준의 격리를 사용한다. (cgroups, namespaces ) 그에 비해, 가상화는 하이퍼바이저 위에서 완전한 운영 체제를 실행한다. 애플리케이션과 해당 OS를 모두 포함하므로 크기가 크다.하드웨어만 공유를 하게 된다. (호스트 OS와 게스트 OS는 별개)그리고, 각 VM은 하드웨어 수준에서 완전히 격리된다. 둘은 성능의 차이도 나는데,컨테이너는 호스트 OS 커널을 공유하므로 부팅 과정이 필요가 없고, 애플리케이션 수준에서 바로 실행이 가능하다.또한, 가볍게 사용할 수 있다. ..