| En

소개

안녕하세요, DevOps 분야를 탐구 중인 황인준입니다.

i3wm으로 생산성 극대화하기

서론 i3 윈도우 매니저(i3wm)는 효율성과 생산성에 초점을 맞춘 타일링 윈도우 매니저로, 2009년 Michael Stapelberg에 의해 처음 개발되었다. C언어로 작성된 i3는 가벼우면서도 강력한 기능을 제공하며, 특히 키보드 중심의 워크플로우를 선호하는 개발자와 파워 유저들 사이에서 큰 인기를 얻고 있다. i3는 X Window System 환경에서 동작하며, 최근에는 Wayland 호환 버전인 Sway도 널리 사용되고 있다. 불필요한 시각적 요소를 최소화하고 화면 공간을 최대한 활용하는 철학을 바탕으로, 다중 모니터 지원, 효율적인 창 관리, 그리고 높은 수준의 사용자 정의 기능을 제공한다. ...

2025년 5월 5일 · 5 분 · 877 단어 · In-Jun

메모리 압축(ZRAM)으로 RAM 한계 넘기기

zram의 개념과 원리 zram(이전 명칭: compcache)은 리눅스 커널에서 제공하는 메모리 압축 기술로, RAM의 일부를 압축하여 가상 블록 장치로 사용하는 메커니즘이다. 이 기술은 2009년 Nitin Gupta에 의해 처음 개발되었으며, 리눅스 커널 3.14부터 정식으로 통합되었다. zram의 핵심 아이디어는 디스크 기반 스왑 대신 압축된 RAM을 스왑 공간으로 활용함으로써, 디스크 I/O의 부하 없이 메모리 사용량을 줄이는 것이다. zram 장치는 데이터를 메모리에 저장하기 전에 실시간으로 압축하고, 데이터 접근 시 실시간으로 압축을 해제한다. 이 과정에서 CPU 리소스를 일부 소모하지만, 디스크 I/O를 피할 수 있어 전체적인 시스템 성능 향상에 기여한다. 일반적으로 zram은 LZO, LZ4, ZSTD와 같은 고속 압축 알고리즘을 사용하여 2:1에서 4:1 정도의 압축률을 달성한다. ...

2025년 5월 2일 · 3 분 · 525 단어 · In-Jun

NAT(Network Address Translation) 이해하기

서론 NAT(Network Address Translation)는 네트워크 통신에서 사설 IP 주소와 공인 IP 주소 사이를 중재하는 핵심 기술이다. 이는 1990년대 중반 IPv4 주소 고갈 문제에 대응하기 위해 등장했으며, IETF의 RFC 1631 문서를 통해 처음 표준화되었다. NAT는 현재 가정용 공유기부터 대규모 기업 네트워크, 클라우드 인프라에 이르기까지 전 세계 인터넷 인프라의 근간을 이루는 필수 기술로 자리잡았다. NAT의 기본 개념 NAT는 라우터나 방화벽과 같은 네트워크 장비에서 동작하며, 내부 네트워크(사설 IP)와 외부 네트워크(공인 IP) 간의 IP 주소를 변환한다. 이 과정에서 패킷 헤더의 IP 주소와 TCP/UDP 포트 번호를 수정하고, NAT 테이블에 변환 정보를 기록하여 양방향 통신을 가능하게 한다. RFC 1918에 정의된 사설 IP 주소 대역(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)은 이러한 NAT 환경에서 내부 네트워크 구성에 광범위하게 활용된다. 패킷이 NAT 장비를 통과할 때 체크섬(checksum)도 함께 재계산되며, 이는 IP와 TCP/UDP 헤더의 무결성을 보장하는 데 필수적이다. ...

2025년 5월 1일 · 9 분 · 1758 단어 · In-Jun

이론과 실습으로 배우는 ARP 스푸핑

서론 ARP 스푸핑(ARP Spoofing)은 네트워크 보안 분야에서 오래전부터 연구되고 있는 공격 기법이다. 이 공격은 ARP 프로토콜의 구조적 한계를 악용하여 네트워크 트래픽을 가로채거나 변조하는 것을 목적으로 한다. 본 글에서는 ARP 프로토콜의 기본 개념을 시작으로, ARP 스푸핑의 작동 원리, 실제 공격 실습, 그리고 이를 방어하는 방법에 대해 알아보겠다. ARP 프로토콜이란? ARP(Address Resolution Protocol)는 네트워크 계층(IP)과 데이터 링크 계층(MAC) 사이의 주소 변환을 담당하는 프로토콜이다. 쉽게 말해, IP 네트워크 상에서 통신을 하려면 상대방의 IP 주소뿐만 아니라 MAC 주소도 알아야 한다. 이때 ARP가 사용된다. ...

2025년 4월 28일 · 4 분 · 826 단어 · In-Jun

Ubuntu에서 MAC 주소 변경하는 방법

서론 MAC 주소(Media Access Control address)는 네트워크 장치를 식별하는 고유 주소이다. 보안이나 프라이버시 등의 이유로 이 주소를 변경해야 할 필요가 있을 수 있다. 이 글에서는 Ubuntu에서 MAC 주소를 변경하는 방법을 알아본다. MAC 주소란? MAC 주소는 네트워크 인터페이스 카드(NIC)에 할당된 고유 식별자이다. 48비트(6바이트) 길이의 이 주소는 일반적으로 XX:XX:XX:XX:XX:XX 형식의 16진수로 표시된다. 주소의 구성은 다음과 같다: 처음 3바이트: 제조업체를 나타내는 OUI(Organizationally Unique Identifier) 나머지 3바이트: 제조업체가 할당한 고유 번호 MAC 주소 확인하기 MAC 주소를 변경하기 전에 현재 주소를 확인하는 방법은 다음과 같다: ...

2025년 4월 27일 · 2 분 · 312 단어 · In-Jun

리버스 쉘 이해하기

서론 리버스 쉘은 일반적인 연결 방향과 반대로 작동하는 원격 쉘 기법이다. 대상 시스템이 공격자의 시스템으로 연결을 시도해 원격 명령 실행을 가능하게 한다. 방화벽과 NAT 환경에서 특히 유용한데, 대부분의 방화벽이 들어오는 연결은 차단하지만 나가는 연결은 허용하기 때문이다. 작동 원리 리버스 쉘이 작동하는 기본 흐름은 다음과 같다: 공격자는 자신의 시스템에서 특정 포트의 연결을 수신하는 리스너를 설정한다 대상 시스템에서 실행된 코드가 공격자 시스템으로 연결을 시도한다 대상 시스템의 입출력이 공격자에게 전달된다 공격자는 대상 시스템에 명령을 실행하고 결과를 확인할 수 있다 일반적인 원격 접속은 ‘공격자가 대상 시스템에 접속하는’ 형태지만, 리버스 쉘은 ‘대상 시스템이 공격자에게 연결해오도록 만드는’ 방식이다. 이런 역방향 연결이 방화벽을 우회하는 열쇠가 된다. ...

2025년 4월 27일 · 5 분 · 930 단어 · In-Jun

홈랩 #9 - 모니터링 시스템 구축하기

개요 이전 글에서는 CI/CD 시스템을 완성하고 프로젝트 자동화 시스템을 구축했다. 이번 글에서는 홈랩 쿠버네티스 클러스터를 모니터링하기 위한 기본 시스템을 구축하는 방법을 알아본다. Prometheus와 Grafana를 설치하고 기본 대시보드를 활용하여 클러스터 상태를 한눈에 볼 수 있도록 구성할 것이다. 또한 로그 수집을 위한 Loki를 설치하여 통합 모니터링 환경을 구성한다. 모니터링의 필요성 홈랩 쿠버네티스 클러스터를 운영하다 보면 다음과 같은 정보를 주기적으로 확인해야 한다: 클러스터 상태: 노드, 파드, 배포 등의 상태 리소스 사용량: CPU, 메모리, 디스크, 네트워크 사용량 애플리케이션 상태: 파드의 정상 작동 여부 시스템 로그: 문제 발생 시 원인 파악을 위한 로그 데이터 이런 정보를 시각적으로 모니터링하기 위해 다음 도구들을 사용한다: ...

2025년 2월 28일 · 5 분 · 944 단어 · In-Jun

홈랩 #8 - CI/CD 구축해서 배포 자동화하기 (2)

개요 이전 글에서는 CI/CD 시스템의 핵심 구성 요소인 Harbor 레지스트리, Argo Events, Argo Workflows를 설치했다. 이번 글에서는 이 세 가지 구성 요소와 기존에 설치한 ArgoCD를 통합하여 완전한 CI/CD 파이프라인을 완성하고, GitOps 기반의 프로젝트 자동화 시스템을 구축하는 방법을 알아본다. CI/CD와 GitOps의 통합 기존 CI 시스템과 GitOps의 통합은 자연스러운 진화 과정이다. 기존의 CI는 코드 변경을 감지하여 빌드하고 테스트하는 데 중점을 두었다. 반면 GitOps는 배포 상태를 선언적으로 관리하고 자동으로 동기화하는 데 중점을 둔다. 이 두 가지를 결합하면 코드 변경부터 자동 배포까지 완전 자동화된 파이프라인을 구축할 수 있다. ...

2025년 2월 28일 · 13 분 · 2620 단어 · In-Jun

홈랩 #7 - CI/CD 구축해서 배포 자동화하기 (1)

개요 이전 글에서는 홈랩 쿠버네티스 클러스터에 Vault를 설치하고 시크릿 관리 시스템을 구축했다. 이번 글에서는 CI/CD 시스템의 기반이 되는 세 가지 핵심 컴포넌트인 Harbor 레지스트리, Argo Events, Argo Workflows를 설치하고 기본 설정하는 방법을 알아본다. CI/CD 시스템의 구성 요소 홈랩 환경에서 완전한 CI/CD 파이프라인을 구축하기 위해서는 다음과 같은 핵심 컴포넌트들이 필요하다: 컨테이너 레지스트리: 빌드된 이미지를 저장하고 관리하는 저장소 이벤트 처리 시스템: 코드 변경 등의 이벤트를 감지하고 처리하는 시스템 워크플로우 엔진: 빌드, 테스트, 배포 등의 작업을 실행하는 엔진 선언적 배포 시스템: 배포 상태를 관리하고 동기화하는 시스템 이 중 4번(선언적 배포 시스템)은 이미 이전 글에서 설치한 ArgoCD가 담당한다. 이번 글에서는 나머지 세 가지 컴포넌트를 설치하고 구성한다. ...

2025년 2월 28일 · 7 분 · 1397 단어 · In-Jun

홈랩 #6 - Vault를 활용한 시크릿 관리

개요 이전 글에서는 홈랩 쿠버네티스 클러스터에 Traefik 인그레스 컨트롤러를 설치하고 외부 접근을 구성했다. 이번 글에서는 쿠버네티스 클러스터에서 민감한 정보(비밀번호, API 키, 인증서 등)를 안전하게 관리하기 위한 HashiCorp Vault 설치와 구성 방법을 다룬다. 왜 기본 쿠버네티스 시크릿으로는 부족했나? GitOps 방식으로 홈랩 환경을 구성하면서 시크릿 관리가 난제였다. 기본 쿠버네티스 Secret을 사용해보니 몇 가지 한계가 명확했다. 첫째, GitOps와의 통합 문제다. Git에 시크릿을 그대로 저장할 수 없고, base64로 인코딩해도 쉽게 복원 가능해 보안에 취약하다. ...

2025년 2월 26일 · 9 분 · 1878 단어 · In-Jun
[email protected]