목록2024/12 (19)
내 잡다한 노트
직렬화(Serialization)와 역직렬화(Deserialization)는 데이터 구조나 객체를 저장하거나 전송할 수 있는 형태로 변환하는 과정과 그 반대 과정을 의미 1. 직렬화(Serialization)란?정의직렬화는 복잡한 데이터 구조나 객체를 연속된 바이트 스트림으로 변환하는 과정입니다. 이를 통해 데이터를 파일에 저장하거나 네트워크를 통해 전송할 수 있게 됩니다.작동 방식데이터 구조 선택: 직렬화할 객체나 데이터 구조를 선택합니다.변환 과정: 객체의 상태(데이터)를 바이트 형태로 변환합니다.저장 또는 전송: 변환된 바이트 스트림을 파일, 데이터베이스, 메모리, 또는 네트워크를 통해 저장하거나 전송합니다.사용 사례데이터 저장: 객체 상태를 파일이나 데이터베이스에 저장할 때.네트워크 전송: 클라..
BGP 프로토콜은 Border Gateway Protocol의 약자로, 인터넷의 핵심 라우팅 프로토콜 중 하나입니다. BGP는 자율 시스템(Autonomous Systems, AS) 간의 경로 정보를 교환하여 데이터 패킷이 최적의 경로를 통해 전달될 수 있도록 하는 데 중요한 역할을 합니다. 아래에서 BGP의 개념, 동작 방식, 특징, 사용 사례 및 장단점에 대해 자세히 설명하겠습니다.1. BGP란 무엇인가?**Border Gateway Protocol (BGP)**은 네트워크 간의 라우팅 정보를 교환하는 데 사용되는 외부 게이트웨이 프로토콜(Exterior Gateway Protocol, EGP)입니다. 인터넷은 수많은 자율 시스템(AS)으로 구성되어 있으며, BGP는 이러한 AS들 간에 최적의 경로를..
GitHub에서 사용하는 라이선스는 오픈 소스 소프트웨어의 사용, 수정, 배포 조건을 명시하는 중요한 요소입니다. 적절한 라이선스를 선택하면 프로젝트의 권리를 보호하면서도 다른 개발자들이 코드를 활용할 수 있도록 할 수 있습니다. 아래는 GitHub에서 자주 사용되는 주요 라이선스들에 대한 설명입니다.1. MIT 라이선스특징:매우 간단하고 관대한 라이선스.소프트웨어를 자유롭게 사용, 복사, 수정, 병합, 배포, 재라이선스할 수 있습니다.원저작권 및 라이선스 고지를 포함해야 합니다.장점:사용과 배포에 대한 제한이 적어 많은 프로젝트에서 선호됩니다.상업적 용도로도 자유롭게 사용할 수 있습니다.단점:코드의 변경 사항을 공개할 의무가 없어, 수정된 코드를 폐쇄적으로 사용할 수 있습니다.2. Apache Lice..
1. 데이터 웨어하우스 (Data Warehouse)정의데이터 웨어하우스는 **구조화된 데이터(Structured Data)**를 저장하고 분석하기 위해 설계된 중앙화된 데이터 저장소입니다. 조직 내 다양한 데이터 소스에서 데이터를 가져와 통합하고, 의사결정과 비즈니스 인텔리전스(BI) 작업을 지원합니다.특징정제된 데이터: 데이터를 저장하기 전에 전처리(ETL)를 수행하여 데이터의 품질과 구조를 통일.스키마 온 라이트(Schema-on-Write): 데이터를 저장하기 전에 스키마를 정의해야 함.구조화된 데이터: 데이터베이스, ERP, CRM 등에서 가져온 정형 데이터를 처리.빠른 쿼리 성능: SQL과 BI 도구를 활용한 빠르고 효율적인 쿼리 수행.목적: 데이터 분석, 보고서 작성, 대시보드 생성.사용 사..
Jenkins의 공식 문서에서 Organization Folders 사용을 권장하는 이유는 주로 대규모 프로젝트 관리, 자동화된 리포지토리 발견, 일관된 파이프라인 관리 등을 통해 CI/CD 프로세스를 더욱 효율적이고 확장 가능하게 만들기 때문입니다. 1. Organization Folders란?Organization Folders는 GitHub, GitLab, Bitbucket과 같은 소스 코드 관리(SCM) 플랫폼에서 조직(Organization) 또는 사용자(User) 계정 아래에 있는 모든 리포지토리를 자동으로 탐색하고, 각 리포지토리에 대해 개별적인 Jenkins 파이프라인을 생성하는 기능입니다. 이를 통해 여러 리포지토리를 중앙에서 관리하고, 자동화된 방식으로 빌드 및 배포 파이프라인을 설정할..
분산 코디네이터(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):특정 주기(일별, 주별, 월별 또는 로그 크기 기준)에..