블루-그린 배포란? 무중단 배포 전략 이해하기

블루-그린 배포의 정의 블루-그린 배포(Blue-Green Deployment)는 서비스 중단 없이 새 버전을 배포하기 위한 전략입니다. 동일한 환경을 두 개(블루, 그린) 준비해 놓고, 한쪽은 현재 운영 중인 버전(블루)으로, 다른 한쪽은 새로 배포할 버전(그린)으로 구성합니다. 사용자의 트래픽은 처음에 블루 환경으로만 흐르다가, 그린 환경에서 배포와 테스트가 완료되면 트래픽을 한 번에 그린으로 전환합니다. 이렇게 하면 배포 도중 서비스가 멈추는 다운타임 … 더 읽기

리버스 프록시 vs 포워드 프록시, 헷갈리는 개념 한 번에 정리하기

프록시란 무엇인가 프록시(Proxy)는 클라이언트와 서버 사이에서 요청과 응답을 대신 전달해주는 중개자입니다. 클라이언트가 서버에 직접 요청하지 않고 프록시를 거쳐 통신하는 구조인데, 이 중개자가 누구를 대신하느냐에 따라 포워드 프록시와 리버스 프록시로 나뉩니다. 핵심은 ‘어느 쪽 편에 서 있는가’입니다. 포워드 프록시: 클라이언트를 대신하는 프록시 포워드 프록시는 클라이언트 앞에 위치해서 클라이언트를 대신해 서버에 요청을 보냅니다. 서버 입장에서는 실제 클라이언트가 … 더 읽기

CDN이 웹 페이지를 빠르게 만드는 원리

CDN이란 무엇인가 CDN(Content Delivery Network)은 전 세계 여러 지역에 분산된 서버 네트워크를 통해 웹 콘텐츠를 사용자에게 빠르게 전달하는 시스템입니다. 원본 서버(Origin Server)가 한국에 있어도, 미국이나 유럽 사용자가 접속하면 물리적 거리 때문에 응답 속도가 느려집니다. CDN은 이 문제를 해결하기 위해 이미지, CSS, JS, 동영상 같은 정적 콘텐츠를 사용자와 가까운 위치의 서버(엣지 서버, Edge Server)에 미리 복사해두고, … 더 읽기

DNS는 어떻게 도메인을 IP로 바꿀까?

DNS란 무엇인가 우리는 브라우저에 google.com처럼 사람이 기억하기 쉬운 도메인 이름을 입력하지만, 실제로 컴퓨터끼리 통신하려면 142.250.206.14 같은 IP 주소가 필요합니다. DNS(Domain Name System)는 바로 이 도메인 이름을 IP 주소로 변환해주는 인터넷의 ‘전화번호부’ 같은 시스템입니다. 전화번호부에서 이름을 찾아 전화번호를 알아내듯, DNS는 도메인 이름을 받아 해당 서버의 IP 주소를 알려줍니다. DNS는 어떻게 동작하는가 브라우저에 도메인을 입력하면 다음과 같은 … 더 읽기

L4 vs L7 로드밸런서, 어떻게 다를까

로드밸런서, 왜 필요할까 서비스를 운영하다 보면 서버 한 대로는 트래픽을 감당하기 어려운 순간이 옵니다. 이때 여러 대의 서버에 요청을 골고루 분산시켜주는 장치가 바로 로드밸런서입니다. 로드밸런서는 클라이언트와 서버 사이에서 트래픽을 어느 서버로 보낼지 결정하는 역할을 하는데, 이 결정을 어느 네트워크 계층에서 내리느냐에 따라 L4와 L7로 나뉩니다. 여기서 L4, L7은 OSI 7계층 모델의 4계층(전송 계층)과 7계층(애플리케이션 계층)을 … 더 읽기

최종적 일관성(Eventual Consistency)이란?

최종적 일관성이란 무엇인가 분산 시스템에서 여러 서버(노드)에 동일한 데이터를 복제해 저장할 때, 모든 노드가 항상 같은 값을 보장하기는 어렵습니다. 최종적 일관성(Eventual Consistency)은 데이터를 업데이트한 직후에는 노드마다 값이 다를 수 있지만, 시간이 지나 추가 업데이트가 없으면 결국 모든 노드가 동일한 값으로 수렴한다는 일관성 모델입니다. 즉 ‘지금 당장은 아니지만 언젠가는 모두 같아진다’는 것이 핵심 개념입니다. 동작 원리와 … 더 읽기

트랜잭션 격리 수준(Isolation Level) 완벽 정리

트랜잭션 격리 수준이란? 여러 사용자가 동시에 같은 데이터베이스에 접근하면 데이터 정합성 문제가 발생할 수 있습니다. 트랜잭션 격리 수준(Isolation Level)은 여러 트랜잭션이 동시에 실행될 때 서로의 작업을 얼마나 볼 수 있게 허용할지를 정하는 규칙입니다. 은행 창구에 비유하면, 여러 명이 동시에 같은 계좌를 조회하고 수정할 때 서로의 작업 중간 상태를 볼 수 있게 할지, 완전히 끝난 후에만 … 더 읽기

낙관적 락 vs 비관적 락, 무엇이 다를까

동시성 제어가 필요한 이유 여러 사용자가 같은 데이터를 동시에 수정하려고 하면 문제가 생긴다. 예를 들어 재고가 1개 남은 상품을 두 명이 동시에 주문하면, 둘 다 주문에 성공해서 재고가 -1이 되는 상황이 발생할 수 있다. 이런 데이터 정합성 문제를 막기 위해 사용하는 대표적인 방법이 바로 낙관적 락과 비관적 락이다. 비관적 락: 일단 잠그고 시작한다 비관적 락은 … 더 읽기

마스터-슬레이브 복제 구조 이해하기

마스터-슬레이브 복제란? 마스터-슬레이브 복제(Master-Slave Replication)는 하나의 데이터베이스 서버(마스터)에서 발생한 데이터 변경 사항을 하나 이상의 다른 서버(슬레이브)로 자동 복사하는 구조입니다. 마스터는 쓰기(INSERT, UPDATE, DELETE) 작업을 전담하고, 슬레이브는 마스터의 데이터를 그대로 복제하여 읽기(SELECT) 작업을 처리합니다. 흔히 회사의 원본 문서와 복사본을 떠올리면 이해가 쉽습니다. 원본 문서(마스터)에만 수정이 가해지고, 여러 부서에 배포된 복사본(슬레이브)은 그 수정 내용을 그대로 반영받아 사람들이 … 더 읽기

샤딩(Sharding)이란? 하나의 DB를 여러 개로 쪼개는 이유

샤딩(Sharding)이란? 서비스가 커지면 하나의 데이터베이스 서버로는 감당하기 힘든 순간이 옵니다. 사용자가 많아지고 데이터가 쌓일수록 조회 속도는 느려지고, 서버 하나에 걸리는 부하는 점점 커집니다. 이때 등장하는 개념이 바로 샤딩(Sharding)입니다. 샤딩은 하나의 큰 데이터베이스를 여러 개의 작은 데이터베이스, 즉 샤드(Shard)로 물리적으로 분산시켜 저장하는 기술입니다. 쉽게 말해 수백만 권의 책을 한 건물에 다 쌓아두는 대신, 여러 지점 건물에 … 더 읽기