전체 글 27

[Linux] 실시간 리소스 및 디스크 사용량 확인 명령어 4가지

백엔드 개발을 하거나 공용 서버를 관리하다 보면 서버가 눈에 띄게 버벅거리거나 API 응답이 멈추는 순간을 마주하게 됩니다.여러 개발자가 쓰는 공용 서버에서는 무거운 스크립트나 쌓여가는 로그 파일 때문에 서버가 비명을 지르곤 하는데요. 오늘은 터미널에 접속했을 때 현재 서버의 CPU, 메모리, 디스크 상태를 3초 만에 스캔하고 원인을 박멸할 수 있는 필수 리눅스 명령어 4가지를 정리해 보았습니다.1. htop : CPU 및 메모리 실시간 모니터링서버의 CPU 가동률과 메모리 점유율을 실시간으로 확인하는 명령어입니다. 리눅스에 내장된 top이라는 명령어도 있지만, 시각적으로 훨씬 보기 편하고 프로세스 킬도 수월한 htop 사용을 강력히 권장합니다.# htop이 설치되어 있지 않다면 먼저 설치해 주세요!$ ..

Setting Log/Linux 2026.07.17

[Database] 인덱스(Index) 톺아보기: B-Tree 구조와 성능 최적화 원리

DB 조회에서 데이터가 수만 건일 때는 눈 깜짝할 사이에 끝나던 게, 수백만 건에서 느려지는 병목 현상을 경험하게 됩니다.이때 사용하는 것이 인덱스입니다. 잘 잡은 인덱스는 속도를 100배 이상 올리는 치트키가 되지만, 무분별하게 남용하면 삽입·수정 성능을 갉아먹는 양날의 검이 되기도 합니다.오늘은 데이터베이스 인덱스가 데이터를 찾아내는 물리적 원리와 그 중심에 있는 B-Tree 아키텍처, 그리고 인덱스를 걸어도 효과를 못 보는 나쁜 쿼리 유형을 정리해 봅니다.1. 인덱스의 물리적 원리: 책의 색인인덱스를 이해하는 가장 직관적인 비유는 두꺼운 전공 서적 맨 뒷장에 있는 '찾아보기'입니다.만약 1,000페이지짜리 책에서 'B-Tree'라는 단어가 나오는 페이지를 찾으려고 합니다.인덱스가 없다면 (Full ..

Dev Log 2026.07.15

[Backend] 멱등성(Idempotency): API 설계의 필수 안전장치

백엔드 API를 설계할 때 기능의 정상 가동만큼이나 중요한 것이 바로 예외 처리와 안정성입니다. 특히 돈이 오가는 결제나 주문 시스템을 다룰 때 가장 무서운 시나리오는 유저가 결제 버튼을 연달아 누르는 '더블 클릭' 현상입니다.시스템에 아무런 안전장치가 없다면, 유저의 실수 한 번으로 결제가 두 번 처리되는 대참사가 발생합니다. 이러한 중복 요청 문제를 아키텍처 레이어에서 완벽하게 가드레일 쳐주는 핵심 개념이 바로 멱등성입니다.1. 멱등성이란수학에서 멱등성이란 "연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질"을 뜻합니다. 예를 들어 어떤 수에 1을 곱하는 연산($f(x) = x \times 1$)은 100번을 연속해서 수행해도 결과가 처음과 똑같으므로 멱등합니다.이를 HTTP API 프로토콜에 ..

Dev Log 2026.07.14

[Docker] 도커 컴포즈 restart: 서버가 터져도 스스로 살아나는 인프라 구축

도커 컴포즈로 백엔드 API 서버나 데이터베이스를 배포하면, 새벽에 예외 처리가 안 된 치명적인 에러(OOM, 세그멘테이션 폴트, DB 커넥션 끊김 등)가 발생해 컨테이너 프로세스가 죽어버렸고, 아침에 일어나 보니 서비스가 통째로 다운(Exited (1))되어 있는 상황을 겪습니다.이를 방지하고 서버 인프라가 알아서 컨테이너의 상태를 감시하고 Self-healing하도록 가드레일을 쳐주는 옵션이 바로 restart 속성입니다. 오늘은 docker-compose.yml 파일에서 사용할 수 있는 4가지 재시작 정책의 차이점을 확실하게 비교 정리해 둡니다.1. restart 정책 4가지도커 컴포즈 명세서 내부에 적재할 수 있는 설정값은 아래 테이블과 같이 딱 4가지가 존재합니다.정책 (Value)설명실무 권장..

Setting Log/Docker 2026.07.10

[DevOps] 서비스 중단 없는 배포: 무중단 배포의 원리와 전략 (Rolling vs Blue-Green)

새로운 기능이 추가되거나 버그가 수정되어 서버를 배포할 때, 과거에는 "새벽 2시~4시 점검 안내" 팝업을 띄우고 기존 서버를 잠시 꺼둔 채 작업을 진행하곤 했습니다.24시간 끊김 없이 가동되어야 하는 글로벌 매시브 서비스나 빅테크 인프라에서는 단 1분의 다운타임(Downtime, 서비스 중단 시간)도 치명적인 매출 타격과 유저 이탈로 이어집니다.이를 해결하기 위해 등장한 개념이 바로 무중단 배포(Zero-Downtime Deployment)입니다. 오늘은 사용자가 서비스를 이용하는 도중에도 자연스럽게 신버전 코드를 반영하는 핵심 원리와 대표적인 배포 전략들을 파헤쳐 봅니다.1. 무중단 배포의 핵심 심장: 리버스 프록시의 라우팅 스위칭어떻게 서버를 끄지 않고 새 코드를 올릴 수 있을까요? 비밀은 사용자와..

Dev Log 2026.07.09

[Network] 멀티 스레드와 동시성 제어: 한정된 재고가 마이너스가 되는 이유와 방어 전략

웹앱 규모가 커지고 동시 접속자가 몰리면, 백엔드 엔지니어는 '동시성(Concurrency) 이슈'를 생각해야 합니다.대표적인게 쇼핑몰 선착순 이벤트입니다. "남은 재고가 딱 1개인데, 정확히 동시에 100명의 유저가 결제를 누르면 어떻게 될까?"동시성 제어가 아키텍처에 반영되어 있지 않다면, 재고가 0이 되는 것이 아니라 -99가 되는 대참사가 발생합니다.오늘은 멀티 스레드 환경에서 왜 자원 오염이 발생하는지 원인을 파헤치고, 방어하는 실무 전략들을 정리해 봅니다.1. 레이스 컨디션(Race Condition)의 메커니즘멀티 스레드 인프라 환경에서는 여러 스레드가 하나의 공유 자원(메모리 변수, DB 레코드 등)에 동시에 접근할 수 있습니다. 이때 공유 자원의 제어권을 두고 스레드들이 경쟁하는 상태를 ..

Dev Log/Network 2026.07.08

[Docker] Docker Compose 개념 및 실전 구축 가이드

지난 포스팅에서 도커 이미지와 컨테이너의 독립적인 개념을 이해했습니다. 하지만 실제 서비스를 프로덕션 환경에 배포하려면 하나의 컨테이너만으로는 부족합니다.간단한 웹 애플리케이션 하나만 만들더라도 [웹 가동 서버 컨테이너(Python/Java 등)] + [데이터베이스 컨테이너(MySQL/PostgreSQL)] + [인메모리 캐시(Redis)]가 맞물려 돌아가야 합니다.수많은 컨테이너들을 명령어 한 줄로 동시에 띄우고, 관리하고, 내부 사설 가상 네트워크 환경까지 한 방에 세팅해 주는 툴이 바로 도커 컴포즈(Docker Compose)입니다. 오늘은 도커 컴포즈의 명세 구조와 실전 아키텍처 코드를 뜯어봅니다.1. Docker Compose를 사용하는 이유도커 컴포즈가 없다면 개발자는 서버를 배포할 때마다 아..

Setting Log/Docker 2026.07.06

[Docker] Image & Container 개념 정리

백엔드나 인프라 DevOps를 접할 때 가장 먼저 마주치는 단어가 도커입니다. "도커를 쓰면 배포가 편해진다", "컨테이너로 격리한다" 같은 말은 많이 듣지만, 처음 접하면 이미지는 뭐고 컨테이너는 무엇인지 머릿속에 잘 그려지지 않습니다.오늘은 도커의 핵심이 되는 두 가지 개념인 이미지와 컨테이너를 이해하고, 핵심 명령어 가이드라인을 정리합니다.1. 도커가 등장한 이유: "내 컴퓨터에선 잘 되는데 왜 서버에선 안 되지?"도커가 없던 시절에는 개발 PC에서 잘 돌아가던 코드(예: Python 3.11, 특정 라이브러리 버전 기반)를 리눅스 운영 서버에 배포할 때 온갖 에러를 마주했습니다. 서버의 OS 버전이 다르거나, 다른 개발자가 깔아둔 낡은 패키지 버전과 충돌이 났기 때문입니다.이러한 문제를 "애플리케..

Setting Log/Docker 2026.07.05

[VS Code] 개발 속도를 올리는 VS Code 필수 단축키

Visual Studio Code를 다루는 속도는 개발 생산성과 직결됩니다. 숙련된 개발자들은 코딩할 때 마우스로 손을 거의 옮기지 않습니다. 줄을 복사하고, 변수 이름을 한 번에 바꾸고, 파일을 전환하는 모든 행위를 키보드 단축키 조합으로 하기 때문입니다.오늘은 실무에서 자주 사용하는, 손가락에 익어야 할 VS Code 핵심 단축키를 작업 흐름별로 깔끔하게 정리합니다.(Windows/Linux 환경 기준이며, macOS 사용자는 Ctrl 대신 Cmd(⌘), Alt 대신 Option(⌥)을 누르시면 됩니다.)1. 코드 편집 및 라인 제어마우스로 드래그하고 우클릭 후 복사-붙여넣기 하는 공수를 줄여주는 라인 제어 치트키입니다.Ctrl + X (줄 삭제): 블록을 지정하지 않아도, 현재 커서가 있는 한 줄 ..

Setting Log/Vscode 2026.07.04

[VS Code] VS Code 필수 익스텐션 추천 Top 5

VS Code(Visual Studio Code)가 전 세계 개발자들의 표준 IDE로 자리 잡은 비결은 강력한 확장성(Extension) 생태계에 있습니다. 순정 상태의 VS Code는 훌륭한 텍스트 에디터일 뿐이지만, 어떤 익스텐션을 장착하느냐에 따라 개발 환경 및 속도가 빠르게 늘어납니다.오늘은 가장 대중적이고 실무 효율을 극대화해 주는 필수 익스텐션 5가지를 이미지와 함께 정리해 봅니다.1. Material Icon Theme (사이드바 파일 아이콘 최적화)기능: 밋밋하고 구분하기 힘든 VS Code 기본 사이드바의 파일 및 폴더 아이콘을 머티리얼 디자인 기반의 직관적인 그래픽 아이콘으로 통째로 교체해 줍니다.왜 필수인가? 프로젝트가 커지면 수십 개의 폴더와 파일(.py, .json, .yml, ...

Setting Log/Vscode 2026.07.03