목록분류 전체보기 (277)
내 잡다한 노트
프록시(Forward Proxy)와 리버스 프록시(Reverse Proxy)는 모두 "프록시"라는 개념을 공유하지만, 트래픽의 흐름 방향 및 주체, 활용 목적에 따라 크게 구분됩니다. 1. 프록시(Forward Proxy)개념:프록시는 클라이언트가 인터넷 리소스(웹 서버, API 등)에 접근할 때, 중간에 위치하여 클라이언트의 요청을 대신 전달하고 응답을 받아 전달해주는 중개자 역할을 합니다. 주로 클라이언트 측에 가까이 위치하며, 클라이언트는 프록시를 통해 외부 서버에 접근합니다.동작 방식:클라이언트(예: PC, 서버)는 직접 외부 서버로 접속하지 않고, 프록시 서버로 요청을 보냅니다.프록시 서버는 클라이언트를 대신해 외부 서버에 요청을 보내고, 응답을 수신합니다.프록시 서버는 받은 응답을 다시 클라이..
/etc/environment 파일에서 전역 환경변수를 설정할 수 있다. 이 파일은 PAM 로그인 시 자동으로 읽혀서 모든 로그인 세션에 환경 변수를 반영한다.(단, GUI 환경에서는 다르게 동작할 수도 있다.)
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):미들웨어는 메시지의 안정적인 전달과 장애 상황에서의 복구를 보장합..