목록전체 글 (299)
내 잡다한 노트
분산 코디네이터(Distributed Coordinator)는 분산 시스템에서 여러 노드나 컴포넌트 간의 작업을 조정하고 일관성을 유지하기 위해 사용되는 핵심 구성 요소입니다. 분산 환경에서는 여러 독립적인 시스템이 협력하여 작업을 수행해야 하는데, 이 과정에서 효율적이고 신뢰성 있는 조정이 필요합니다. 분산 코디네이터는 이러한 요구를 충족시키기 위해 다양한 역할을 수행합니다.주요 역할상태 관리(State Management):시스템 전체의 상태를 추적하고 관리합니다. 이를 통해 각 노드가 현재 어떤 작업을 수행하고 있는지, 어떤 리소스를 사용 중인지 등을 파악할 수 있습니다.리더 선출(Leader Election):분산 시스템에서는 종종 특정 작업을 조정할 리더 노드가 필요합니다. 코디네이터는 리더를 ..
1. Declarative Pipeline장점가독성구조화된 문법을 사용하므로 코드가 직관적이고 읽기 쉬움.정해진 구문(pipeline, stages, steps) 덕분에 초보자도 쉽게 이해 가능.에러 방지Jenkins에서 선언형 문법을 강제하기 때문에 문법 오류를 줄일 수 있음.Jenkins의 자동 완성 및 구문 검증 기능과 잘 연동됨.표준화팀 간에 파이프라인 작성 방식이 일관될 수 있음.반복 가능한 작업에 적합.내장 기능post 블록과 같은 후처리 단계(always, success, failure)를 기본 제공.agent 설정, 환경 변수(environment) 선언이 간단.단점제한된 유연성복잡한 조건 분기나 동적인 작업에는 적합하지 않음.특정한 로직을 구현하려면 Scripted Pipeline으로 전..
logrotate는 리눅스 시스템에서 로그 파일을 효율적이고 자동적으로 관리하기 위한 도구이다. 서버나 애플리케이션은 동작하면서 다양한 이벤트 및 상태 정보, 에러 메시지를 로그로 기록하게 되는데, 이 로그 파일의 크기가 무한정 커지면 디스크를 과도하게 차지하고 관리가 어려워진다. logrotate는 이러한 로그 파일을 일정한 정책에 따라 주기적으로 회전(rotation)하거나, 오래된 로그를 삭제하거나, 압축하고, 권한을 재설정하는 등 로그 파일 관리 전반을 자동화하여 시스템 관리자의 부담을 줄여준다.아래는 logrotate의 주요 개념과 동작 방식, 설정 방법 등에 대한 자세한 설명이다. 주요 기능 및 동작 원리로그 회전(log rotation):특정 주기(일별, 주별, 월별 또는 로그 크기 기준)에..
프록시(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) 동시에 원본 데이터에도 저장하는 방식입니다.작동 흐름:클라이언트가 데이터를 캐시에 저장 요청.캐시는 데이터를 저장한 후 원본 데이터베이스에도 동일한 데이터를 저장.캐시와 원본 데이터는 항상 동기화된 상태를 유지.장점:데이터 일관성이 높음(캐시와 원본 데이터가 항상 동일).데이터 유실 가능성이 낮음(캐시에 장애가 발생해도 데이터베이스에 데이터가 남아 있음).단점:쓰..