반응형

전체 글 305

ACID와 CAP 이론 비교

Overview오늘은 트랜잭션의 ACID 원칙과 CAP 정리에 대해 알아보고,이 두 개념이 어떻게 데이터베이스와 NoSQL에 적용되는지 비교해보려고 한다.ACID 원칙은 데이터 일관성 유지를 위한 트랜잭션 설계의 핵심 개념CAP 정리는 분산 시스템에서 데이터의 가용성과 일관성의 균형을 다루는 이론  이 두 가지를 이해하면 RDBMS(관계형 DB)와 NoSQL DB 선택 기준을 명확하게 파악할 수 있다.            1️⃣ ACID 원칙이란?ACID는 데이터베이스 트랜잭션의 4가지 핵심 속성을 의미한다. ACID 원칙설명 예제A (Atomicity) - 원자성트랜잭션은 모두 실행되거나, 전혀 실행되지 않아야 함은행 송금 시, A 계좌에서 돈이 빠져나갔지만 B 계좌로 입금되지 않으면 안됨C (Cons..

Database 2025.06.12

대형 Git 리포지터리에서 CI/CD 시간을 절반으로 줄이는 법: Git Sparse Checkout 실전 적용기

Overview대규모 Git 리포지터리를 다루는 개발자라면 누구나 겪는 공통적인 문제 중 하나는 느린 git clone 속도와 불필요한 데이터 다운로드이다.특히 GitLab CI/CD 환경에서는 매번 새로운 환경에서 작업이 시작되기 때문에, 전체 프로젝트를 모두 clone하는 과정 자체가 병목이 되곤 한다. 이 글에서는 Git의 `sparse-checkout` 과 `--filter=blob:limit` 기능을 활용해,필요한 폴더만 빠르게 clone하고 불필요한 파일 다운로드를 최소화하는 방법을 소개한다.GitLab CI/CD 환경에서 직접 적용한 실전 YAML 예시도 함께 제공하니, 대용량 프로젝트를 운영 중인 팀이라면 반드시 참고해볼 만한 내용이다. 1. 문제 상황CI/CD 파이프라인을 구..

IaC/CI CD Tool 2025.06.09

정규화(Normalization)와 반정규화(Denormalization)란?

Overview오늘은 데이터베이스 정규화(Normalization)와 반정규화(Denormalization)의 개념과 적용 사례에 대해 알아보려고 한다.데이터베이스 설계에서 정규화는 데이터의 일관성을 유지하고 중복을 최소화하는 과정이며, 반정규화는 성능을 최적화하기 위해 데이터를 일부 중복 저장하는 과정이다.이 두 개념을 적절히 활용하면 효율적이고 확장 가능한 데이터베이스 설계를 할 수 있다. 정규화(Normalization)란?정규화(Normalization) 는 데이터 중복을 줄이고, 무결성을 유지하며, 데이터 일관성을 보장하는 과정이다.이를 위해 데이터를 정규형(Normal Form, NF) 이라는 특정한 형식으로 변환하여 저장한다. 정규화의 목적데이터 중복(Minimizing..

Database 2025.06.05

Helm values.schema.json 완벽 정리

Overview오늘은 Helm Chart 개발에서 유용한 기능인 `values.schema.json` 에 대해 알아보겠다. Helm은 기본적으로 `values.yaml` 파일을 통해 사용자 정의 값을 설정하게 되는데, 이 값의 유효성 검사를 자동화하고 싶을 때 `values.schema.json` 을 사용할 수 있다. Helm `values.schema.json` 은 Helm Chart에서 제공하는 값(`values.yaml`)의 스키마를 정의하는 표준 JSON Schema 파일이다. 이 스키마를 통해, 사용자가 제공하는 값이 올바른 형식과 타입을 가지고 있는지 사전에 검증할 수 있다.​     📅 관련 글Helm에 대한 내용들은 이전 포스팅을 참고하길 바란다.2022.09.06 - [Container..

배포하다 서비스 터진 적 있다면? 꼭 알아야 할 Kubernetes 전략 가이드

OverviewKubernetes Deployment Strategy는 새로운 버전의 애플리케이션을 서비스 중단 없이 안정적으로 배포하기 위한 핵심 메커니즘이다. 기본적으로 Kubernetes는 RollingUpdate 전략을 사용하여 점진적으로 Pod를 교체하지만, 사용자의 요구사항에 따라 다양한 방식의 전략을 선택하거나 커스터마이징할 수 있다. 대표적인 전략은 다음과 같다.RollingUpdate: 기존 Pod를 하나씩 교체하며 가용성을 유지 (기본값)Recreate: 모든 기존 Pod를 제거한 후 새 버전을 일괄 생성 (다운타임 발생)Blue/Green: 별도 환경을 구성하여 스위칭 기반 배포 (빠른 롤백 가능)Canary: 일부 사용자 대상으로 점진적 배포 후 트래픽 확장 (실사용 기반 검증)..

Zero Trust 보안 모델 – 더 이상 신뢰하지 말고, 검증하라

Overview제로 트러스트(Zero Trust)는 “기본적으로 누구도 신뢰하지 않는다”는 철학을 바탕으로 한 최신 보안 모델이다.과거에는 기업 네트워크 내부를 신뢰할 수 있는 안전한 영역으로 보고, 외부만 방어하면 된다는 ‘경계 기반 보안(perimeter security)’이 주류였습니다. 하지만 클라우드 확산, 재택근무 증가, BYOD(Bring Your Own Device) 환경, 그리고 고도화된 공격 기법들로 인해 이러한 모델은 더 이상 안전하지 않다. 제로 트러스트는 사용자가 어디에 있든, 어떤 디바이스를 쓰든 항상 검증하고 최소 권한만 부여하는 원칙을 따른다. 이는 단순한 기술 도입이 아닌, 조직 전체의 보안 전략과 문화의 변화를 요구한다. 제로 트러스트의 핵심 원칙기본적으로 아무..

Kubernetes Endpoint와 EndpointSlice 완벽 정리

Overview쿠버네티스에서 서비스는 클러스터 내의 여러 파드(Pod)로 트래픽을 라우팅하는 역할을 한다.이때 서비스가 실제 어떤 파드로 연결해야 할지를 저장하는 객체가 바로 `Endpoint` 와 `EndpointSlice` 이다.오늘은 이 두 객체의 차이점과 진화 과정, 그리고 실제 운영 환경에서 어떤 의미를 가지는지까지 깊이 있게 알아본다.   📅 관련 글2024.02.02 - [Container Orchestration/Kubernetes] - Kubernetes Network        Endpoint란?Endpoint는 서비스에 연결된 모든 파드의 IP와 포트 정보를 가진 객체이다. 쉽게 말해 "이 서비스가 어디로 트래픽을 보낼지"를 담고 있는 주소록이다.kind: EndpointsapiV..

Kubernetes에서 Source IP를 보존하는 방법

OverviewKubernetes 클러스터에서 외부로부터 들어오는 요청의 Source IP(클라이언트 IP) 를 정확히 파악하는 것은 로깅, 보안 분석, 감시(Audit), 접근 제어 등 다양한 운영 및 보안 목적에서 매우 중요하다.그러나 Kubernetes의 기본 네트워크 구성에서는 서비스 타입에 따라 요청이 kube-proxy, NAT, ingress proxy 등을 거치며 Source IP가 변경되거나 소실되는 경우가 발생한다. 이 글에서는 Kubernetes 환경에서 Source IP가 왜 사라지는지, 그리고 이를 보존하기 위해 어떤 설정을 적용해야 하는지를 Service 타입별, Ingress 방식별로 정리한다.또한 실습을 통해 실제 요청 시 IP가 어떻게 보이는지, 어떻게 보존할 수 있는지를 ..

OpenStack Trove란? (Database as a Service - DBaaS)

Overview오늘은 OpenStack Trove에 대해 알아보겠다. Trove는 OpenStack 환경에서 MySQL, PostgreSQL, MongoDB 등 다양한 데이터베이스를 서비스 형태(DBaaS)로 제공하는 컴포넌트이다. 사용자는 직접 데이터베이스를 설치·설정할 필요 없이, OpenStack CLI 또는 API로 필요한 DB 인스턴스를 바로 생성하고 관리할 수 있다.​     📅 관련 글2022.05.11 - [Openstack] - Openstack이란?2022.07.29 - [Openstack] - Openstack Nova란?2022.08.08 - [Openstack] - Openstack Neutron이란? (network)2022.08.08 - [Openstack] - Opensta..

Openstack 2025.05.15

리눅스 커널 파라미터(sysctl) 기초와 실전 적용

Overview리눅스 커널 파라미터(kernel parameters, sysctl 설정)는 운영체제의 동작을 런타임에 세부 조정할 수 있게 해주는 설정 값들이다. 이러한 파라미터들은 가상 파일시스템인 `/proc/sys` 경로를 통해 노출되며 (`/proc/sys/vm/swappiness` 등), `sysctl` 명령어를 사용하여 조회하거나 변경할 수 있다. 주요 활용 분야로는 성능 튜닝, 보안 강화, 네트워킹 설정 등이 있으며, 메모리 관리부터 네트워크 스택 동작, 시스템 보안 옵션까지 다양한 커널 동작을 제어한다. 예를 들어 메모리 관리 관련 파라미터를 조정해 성능을 개선하거나, 특정 네트워크 기능을 활성/비활성화하여 트래픽 처리나 보안을 최적화하고, 보안과 관련된 파라미터를 조절해 시스템을..

Linux 2025.05.15
반응형