| En

서브넷 마스크

서브넷 마스크의 등장 배경과 역사 서브넷 마스크(Subnet Mask)는 1985년 RFC 950을 통해 TCP/IP 프로토콜 스택에 공식 도입되었다. 이는 초기 인터넷의 클래스 기반 주소 체계(Classful Addressing)가 안고 있던 비효율성을 해결하기 위한 기술이었다. 1980년대 초반 인터넷은 A, B, C 클래스 체계를 사용했다. Class A는 첫 바이트(1-126)로 식별되며 약 1,600만 개의 호스트를 지원했고, Class B는 두 번째 바이트(128-191)로 식별되며 약 65,000개의 호스트를 지원했으며, Class C는 세 번째 바이트(192-223)로 식별되어 254개의 호스트를 지원했다. 문제는 이 구조가 지나치게 경직되어 있었다는 점이다. 예를 들어 1,000대의 호스트가 필요한 조직은 Class C(254개)로는 부족해 Class B(65,534개)를 할당받아야 했고, 그 결과 64,000개 이상의 IP 주소가 낭비되었다. 반대로 300대의 호스트가 필요한 조직도 Class C 전체를 통째로 고려해야 하는 등, 실제 수요에 맞춘 유연한 배분이 어려웠다. ...

2025년 2월 20일 · 10 분 · 2039 단어 · In-Jun

CIDR 서브네팅

CIDR의 등장 배경과 역사 CIDR(Classless Inter-Domain Routing, 사이더)은 기존 클래스 기반 IP 주소 할당 방식의 한계를 극복하기 위해 1993년 IETF가 RFC 1517, RFC 1518, RFC 1519를 통해 공식 도입한 방식이다. 이후 1998년 RFC 2050으로 개정되며 인터넷 라우팅 표준으로 자리잡았다. 1980년대 말 인터넷이 급속히 성장하면서 기존 클래스 기반 주소 체계(Classful Addressing)는 두 가지 문제를 드러냈다. Class C 네트워크(254개 호스트)는 너무 작고 Class B 네트워크(65,534개 호스트)는 지나치게 커서 실제 수요와 맞지 않았고, 그 결과 많은 IP 주소가 낭비됐다. 동시에 인터넷 라우팅 테이블이 폭발적으로 증가해 라우터의 메모리와 처리 성능에도 큰 부담이 생겼다. ...

2025년 2월 20일 · 9 분 · 1903 단어 · In-Jun

네트워크 클래스 A, B, C, D, E

클래스 기반 주소 체계란 클래스 기반 주소 체계(Classful Addressing)는 1981년 IETF의 RFC 791과 함께 IPv4에 공식 도입된 주소 할당 방식이다. 초기 인터넷에서는 주소 공간을 효율적으로 나누고 라우팅 테이블을 단순하게 유지하는 일이 중요했기 때문에, IP 주소의 첫 번째 옥텟 비트 패턴을 기준으로 A, B, C, D, E의 5개 클래스로 구분하는 체계가 설계되었다. 이 방식은 1980년대 초반처럼 인터넷 규모가 아직 작던 시기에 잘 맞았다. 대규모 조직, 중규모 기업, 소규모 네트워크를 비교적 명확하게 구분해 주소를 배정할 수 있었고, 각 클래스마다 네트워크 부분과 호스트 부분의 길이가 고정되어 있어 라우터가 첫 번째 바이트만 보고도 네트워크 경계를 빠르게 판단할 수 있었다. 하지만 1990년대 들어 인터넷이 급격히 성장하면서 주소 공간을 비효율적으로 쓰는 문제가 커졌고, 결국 1993년부터 CIDR(Classless Inter-Domain Routing) 방식으로 대체되기 시작했다. ...

2025년 2월 20일 · 9 분 · 1761 단어 · In-Jun

RAID 스토리지 구성

RAID란 무엇인가? RAID(Redundant Array of Independent Disks)는 여러 개의 물리적 하드 디스크를 하나의 논리적 단위로 묶어 데이터 안정성을 높이거나 입출력 성능을 개선하는 저장 기술이다. 이 개념은 1988년 캘리포니아 대학교 버클리 캠퍼스의 David Patterson, Garth A. Gibson, Randy Katz가 발표한 논문 “A Case for Redundant Arrays of Inexpensive Disks"에서 처음 제안됐다. 당시 RAID의 약자는 “Inexpensive Disks(저렴한 디스크)“를 뜻했지만, 현재는 “Independent Disks(독립적인 디스크)“라는 표현이 더 널리 쓰인다. 핵심 목적은 단일 대용량 디스크 대신 여러 개의 소형 디스크를 조합해 비용 효율성과 신뢰성을 함께 확보하는 데 있었다. ...

2025년 2월 18일 · 20 분 · 4175 단어 · In-Jun

Docker Compose 멀티 컨테이너 개발 환경

Docker Compose는 다중 컨테이너 Docker 애플리케이션을 정의하고 실행하는 도구이다. YAML 파일에 서비스를 선언적으로 구성하고 단일 명령어로 전체 스택을 띄울 수 있어, 복잡한 멀티 컨테이너 환경도 일관되게 관리하기 쉽다. Docker Compose의 개요 Docker Compose란? Docker Compose는 여러 컨테이너로 구성된 애플리케이션을 정의, 실행, 관리하기 위한 도구로, docker-compose.yml 파일에 서비스, 네트워크, 볼륨을 선언적으로 정의하고 단일 명령어로 전체 애플리케이션 스택을 관리할 수 있다. Docker Compose의 역사 연도 이벤트 설명 2013 Fig 프로젝트 시작 Orchard 팀이 Docker 컨테이너 오케스트레이션 도구 Fig 개발 시작 2014 Docker의 Fig 인수 Docker가 Orchard를 인수하고 Fig를 Docker Compose로 리브랜딩 2015 Compose v1 안정화 Docker Compose가 공식 Docker 도구로 통합 2020 Compose Specification Docker Compose 사양이 오픈 표준으로 공개 2021 Compose v2 출시 Go로 재작성된 Compose v2가 Docker CLI 플러그인으로 통합 2023 Compose v2 기본화 docker-compose 명령이 docker compose로 대체되어 기본 도구로 채택 Docker Compose의 필요성 현대 웹 애플리케이션은 단일 컨테이너로 구성되는 경우가 드물며, 일반적으로 웹 서버, 애플리케이션 서버, 데이터베이스, 캐시, 메시지 큐 등 여러 서비스가 협력하여 동작한다. 이러한 멀티 컨테이너 환경을 개별 docker run 명령으로 관리하는 것은 다음과 같은 문제점을 야기한다. ...

2025년 2월 17일 · 8 분 · 1701 단어 · In-Jun

Docker 이미지 크기 최적화

Docker 이미지 최적화는 컨테이너 기반 애플리케이션의 빌드 시간 단축, 배포 속도 향상, 스토리지 비용 절감, 보안 취약점 감소에 직접적인 영향을 미치는 핵심 기술이다. 적절한 베이스 이미지 선택, 멀티 스테이지 빌드, 레이어 최적화 등의 기법을 적용하면 이미지 크기를 10배 이상 줄일 수 있고, 이는 CI/CD 파이프라인의 효율성과 클라우드 인프라 비용 절감에도 도움이 된다. Docker 이미지 크기 문제의 이해 왜 이미지 크기가 중요한가? Docker 이미지 크기는 빌드 시간, 푸시/풀 시간, 컨테이너 시작 시간, 스토리지 비용, 보안 공격 표면에 직접적인 영향을 미치므로, 프로덕션 환경에서 효율적인 운영을 위해서는 이미지 최적화가 필수적이다. ...

2025년 2월 17일 · 8 분 · 1551 단어 · In-Jun

Docker 설치와 첫 컨테이너 실행

Docker는 컨테이너 기반 애플리케이션을 개발, 배포, 실행하기 위한 플랫폼이다. 리눅스 커널의 네임스페이스와 cgroups를 활용해 격리된 환경을 만들며, 이 가이드에서는 우분투 리눅스에 Docker를 설치하고 첫 컨테이너를 실행하는 과정을 단계별로 설명한다. Docker 설치 전 요구사항 Docker 설치 요구사항 Docker Engine은 64비트 리눅스 시스템에서 실행되며, 커널 버전 3.10 이상이 필요하다. 우분투의 경우 20.04 LTS, 22.04 LTS, 24.04 LTS 버전이 공식 지원된다. 지원되는 우분투 버전 우분투 버전 코드명 지원 상태 권장 여부 Ubuntu 24.04 LTS Noble Numbat 공식 지원 권장 Ubuntu 22.04 LTS Jammy Jellyfish 공식 지원 권장 Ubuntu 20.04 LTS Focal Fossa 공식 지원 지원 Ubuntu 23.10 Mantic Minotaur 공식 지원 비LTS Ubuntu 18.04 LTS Bionic Beaver 지원 종료 예정 비권장 시스템 아키텍처 지원 Docker는 다양한 CPU 아키텍처를 지원하며, 각 아키텍처에 따라 설치 방법이 약간 다를 수 있다. ...

2025년 2월 17일 · 9 분 · 1818 단어 · In-Jun

Docker 컨테이너 기술

컨테이너 기술은 현대 소프트웨어 개발과 배포 방식을 크게 바꾼 핵심 기술이다. Docker는 이 기술을 대중화한 대표적인 플랫폼으로, 2013년 등장 이후 마이크로서비스 아키텍처와 CI/CD 파이프라인, 클라우드 네이티브 컴퓨팅 전반에서 널리 활용되고 있다. 컨테이너 기술의 역사와 Docker의 탄생 컨테이너(Container)란? 컨테이너는 애플리케이션과 그 실행에 필요한 모든 의존성(라이브러리, 설정 파일, 바이너리 등)을 하나의 표준화된 패키지로 묶어 어디서든 동일하게 실행할 수 있도록 하는 경량 가상화 기술이다. 컨테이너 기술의 발전 과정 컨테이너 개념은 Docker가 등장하기 훨씬 전부터 존재했으며, 운영체제 수준의 격리 기술은 수십 년에 걸쳐 발전해왔다. ...

2025년 2월 17일 · 7 분 · 1439 단어 · In-Jun

React 애플리케이션 Dockerfile 작성

React 애플리케이션을 Docker 컨테이너로 패키징하면 개발 환경과 프로덕션 환경 사이의 일관성을 유지하기 쉽다. CI/CD 파이프라인과 연동하기도 수월하고, Kubernetes, AWS ECS, Azure Container Instances 같은 다양한 배포 환경에서 동일한 이미지를 사용할 수 있어 배포 방식도 표준화된다. 여기에 멀티 스테이지 빌드와 nginx 기반 정적 파일 서빙을 적용하면 최적화된 프로덕션 이미지를 만들 수 있다. React 애플리케이션 컨테이너화의 이해 왜 React 앱을 컨테이너화하는가? React는 클라이언트 사이드 JavaScript 애플리케이션이며, 빌드 후에는 HTML, CSS, JavaScript 같은 정적 파일로 번들링되어 웹 서버를 통해 제공된다. Docker 컨테이너를 사용하면 빌드 환경의 일관성을 보장하고, 배포를 자동화하며, 환경별 설정도 더 쉽게 관리할 수 있다. ...

2025년 2월 17일 · 7 분 · 1480 단어 · In-Jun

Docker 이미지 레이어 구조

Docker 이미지 레이어(Layer)는 Docker 이미지를 구성하는 기본 단위다. 각 레이어는 파일 시스템의 변경 사항을 캡처하는 읽기 전용 계층으로, 이전 레이어 위에 차곡차곡 쌓인다. 이렇게 쌓인 레이어는 Union File System을 통해 하나의 파일 시스템으로 통합되어 컨테이너에 제공되며, 이 구조를 이해하는 일은 효율적인 이미지 빌드와 스토리지 최적화의 핵심이다. Docker 이미지 레이어의 개요 Docker 이미지 레이어란? Docker 이미지 레이어는 Dockerfile의 각 명령어에 의해 생성되는 파일 시스템의 스냅샷으로, 마치 Git의 커밋처럼 이전 상태로부터의 변경 사항만을 저장하여 공간 효율성을 극대화하는 구조이다. ...

2025년 2월 17일 · 8 분 · 1494 단어 · In-Jun
[email protected]