| En

i3wm 타일링 윈도우 매니저로 생산성 극대화

i3wm과의 만남: 생산성을 위한 선택 i3 윈도우 매니저(i3wm)는 효율성과 생산성에 초점을 맞춘 타일링 윈도우 매니저다. 2009년 독일의 개발자 Michael Stapelberg가 기존 wmii 윈도우 매니저의 한계를 보완하기 위해 개발했으며, 이름은 “improved tiling wm"에서 따왔다. C 언어로 작성된 i3는 약 10,000줄 규모의 비교적 작은 코드베이스로 이루어져 있으며, 마우스보다 키보드 중심의 워크플로우를 선호하는 개발자, 시스템 관리자, 파워 유저 사이에서 널리 쓰인다. Arch Linux, Gentoo, NixOS 사용자층에서도 자주 언급되는 편이다. i3는 전통적인 X Window System(X11) 환경에서 동작하며 디스플레이 매니저와 독립적으로 실행되기 때문에 LightDM, GDM, SDDM 같은 로그인 매니저와 함께 사용할 수 있다. 최근에는 Wayland를 지원하는 호환 구현인 Sway(i3-compatible Wayland compositor)도 널리 쓰이며, i3의 설정과 키 바인딩을 상당 부분 그대로 활용할 수 있다. i3는 “do one thing and do it well"이라는 Unix 철학에 가깝게 불필요한 시각 효과를 줄이고 화면 공간을 작업 콘텐츠에 집중하도록 설계되었다. 여기에 다중 모니터 지원, 효율적인 창 관리, 텍스트 기반 설정 파일을 통한 사용자 정의 기능을 제공한다. ...

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

zram 메모리 압축으로 RAM 한계 극복

zram의 개념과 원리 zram(이전 명칭: compcache)은 리눅스 커널에서 제공하는 메모리 압축 기술이다. RAM의 일부를 압축해 가상 블록 장치로 사용하며, 2009년 Nitin Gupta가 처음 개발했다. 이후 리눅스 커널 3.14부터 정식으로 통합되어 지금까지 널리 사용되고 있다. 핵심은 디스크 기반 스왑 대신 압축된 RAM을 스왑 공간으로 활용해 디스크 I/O 부담 없이 메모리 사용 효율을 높이는 데 있다. 특히 메모리가 제한된 환경에서 효과적이다. zram 장치는 데이터를 메모리에 저장하기 전에 압축하고, 접근할 때 다시 압축을 해제한다. 이 과정에서 CPU 리소스를 일부 사용하지만 디스크 I/O를 피할 수 있어 전체 성능에 도움이 되는 경우가 많다. 일반적으로 zram은 LZO(Lempel-Ziv-Oberhumer), LZ4, ZSTD(Zstandard) 같은 고속 압축 알고리즘을 사용하며, 2:1에서 4:1 정도의 압축률을 기대할 수 있다. 압축 알고리즘은 시스템 요구사항에 따라 선택할 수 있고, Ubuntu 24.04에서는 기본적으로 속도와 압축률의 균형이 좋은 LZ4를 사용한다. ...

2025년 5월 2일 · 4 분 · 777 단어 · In-Jun

우분투에서 MAC 주소 변경하기

MAC 주소 변경의 필요성 MAC 주소(Media Access Control address)는 네트워크 장치를 식별하는 물리적 주소다. 네트워크 인터페이스 카드(NIC)가 제조될 때 하드웨어에 할당되며, 일반적으로는 변경하지 않는다. 하지만 보안, 프라이버시 보호, 테스트 환경 구성 등의 이유로 MAC 주소를 일시적으로 바꿔야 할 때가 있다. 특히 공용 와이파이를 사용하거나 네트워크 추적을 줄이고 싶을 때 유용하다. Ubuntu를 포함한 대부분의 리눅스 배포판에서는 소프트웨어적으로 MAC 주소를 변경할 수 있으며, 이 글에서는 Ubuntu에서 MAC 주소를 확인하고 macchanger로 변경하는 방법을 정리한다. ...

2025년 4월 27일 · 6 분 · 1084 단어 · In-Jun

우분투 24.04 LTS에서 Wine 설치하기

Wine의 개념과 작동 원리 Wine(Wine Is Not an Emulator)은 Ubuntu 24.04 LTS를 비롯한 Linux, macOS, BSD 같은 UNIX 호환 운영체제에서 Windows 프로그램을 실행할 수 있게 해주는 호환성 레이어(Compatibility Layer)다. 1993년 Bob Amstadt와 Eric Youngdale가 시작한 오픈 소스 프로젝트로, 30년 넘게 개발이 이어지고 있다. 이름 그대로 Wine은 단순한 에뮬레이터가 아니라 Windows API를 다른 운영체제 환경에 맞게 연결해 주는 계층이라는 점을 강조한다. Wine은 가상 머신이나 에뮬레이터와는 다른 방식으로 동작한다. VirtualBox나 VMware 같은 가상화 소프트웨어는 완전한 Windows 운영체제를 가상 환경에서 실행하므로 시스템 리소스를 많이 사용하지만, Wine은 Windows 프로그램이 호출하는 API(Application Programming Interface) 함수를 Linux 시스템이 이해할 수 있는 형태로 실시간 변환해 네이티브에 가까운 성능을 제공한다. 예를 들어 Windows 프로그램이 파일을 열기 위해 CreateFile 함수를 호출하면 Wine은 이를 리눅스의 open 시스템 콜로 바꿔 처리한다. ...

2025년 2월 23일 · 7 분 · 1482 단어 · 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

우분투 OpenSSH 서버 설치 및 설정

SSH(Secure Shell)는 네트워크를 통해 다른 컴퓨터에 안전하게 접속해 명령을 실행하거나 파일을 전송할 수 있게 해주는 암호화 프로토콜이다. 텔넷(Telnet)과 rsh(remote shell)의 보안 한계를 보완하기 위해 등장했으며, 오늘날에는 OpenSSH가 사실상의 표준 구현체로 널리 사용된다. Ubuntu에서 SSH 서버를 설치하고 설정하면 로컬 네트워크는 물론 인터넷을 통해서도 서버를 원격으로 관리할 수 있다. 이 글에서는 OpenSSH 서버 설치부터 기본 설정과 보안 강화까지의 과정을 단계별로 설명한다. SSH 프로토콜 개요 SSH(Secure Shell)란? SSH는 암호화된 통신 채널을 통해 원격 시스템에 안전하게 접속하는 프로토콜로, 22번 포트를 기본으로 사용하며 대칭키 암호화, 비대칭키 암호화, 해시 함수를 조합하여 기밀성, 무결성, 인증을 보장한다. ...

2024년 8월 14일 · 6 분 · 1147 단어 · In-Jun

우분투 24.04 LTS 고정 IP 설정

고정 IP(Static IP) 주소는 DHCP 서버로부터 동적으로 할당받는 대신 네트워크 관리자가 수동으로 지정하는 IP 주소다. 서버 운영, 원격 접속, 네트워크 서비스 호스팅처럼 IP 주소가 바뀌면 안 되는 환경에서 필수적으로 사용된다. Ubuntu 24.04 LTS에서는 Netplan을 기본 네트워크 구성 도구로 사용하며, NetworkManager를 통한 nmcli와 nmtui도 지원한다. 따라서 사용자는 환경과 선호에 맞는 방식으로 네트워크를 설정할 수 있다. 고정 IP의 필요성 DHCP vs 고정 IP DHCP(Dynamic Host Configuration Protocol)는 네트워크에 연결된 장치에 자동으로 IP 주소를 할당하는 프로토콜이다. 클라이언트 장치에는 편리하지만, 서버나 네트워크 장비는 IP 주소가 바뀌면 서비스 연결이 끊어질 수 있으므로 고정 IP가 필수적이다. ...

2024년 8월 10일 · 5 분 · 982 단어 · In-Jun

우분투 24.04 쿠버네티스 단일 노드 클러스터 설치

쿠버네티스(Kubernetes)는 2014년 Google이 오픈소스로 공개한 컨테이너 오케스트레이션 플랫폼으로, 현재 CNCF(Cloud Native Computing Foundation)에서 관리하며 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하는 데 사실상의 표준으로 자리 잡았다. 프로덕션 환경에서는 고가용성을 위해 다중 노드 클러스터를 구성하지만, 개발, 테스트, 학습 목적으로는 단일 노드 클러스터도 충분히 활용할 수 있다. 이 글에서는 Ubuntu 24.04 LTS에서 kubeadm을 사용해 단일 노드 쿠버네티스 클러스터를 구축하는 전체 과정을 다룬다. 쿠버네티스 아키텍처 개요 쿠버네티스 클러스터 구성요소 쿠버네티스 클러스터는 컨트롤 플레인(Control Plane)과 워커 노드(Worker Node)로 구성되며, 컨트롤 플레인은 클러스터의 상태를 관리하고 워커 노드는 실제 컨테이너 워크로드를 실행한다. ...

2024년 7월 27일 · 5 분 · 955 단어 · In-Jun

Vim 텍스트 에디터 튜토리얼

Vim은 1991년 Bram Moolenaar가 개발한 Vi IMproved의 약자로, 1976년 Bill Joy가 BSD Unix용으로 만든 vi 에디터를 확장하고 개선한 텍스트 편집기다. 문법 강조, 다중 실행 취소, 플러그인 지원, 분할 화면 같은 현대적인 기능을 갖추면서도 vi의 핵심 철학인 모달 에디팅(modal editing)을 계승해 키보드만으로 빠르게 편집할 수 있다. Vim은 거의 모든 Unix 계열 시스템에 기본 설치되어 있어 서버 관리와 SSH 환경에서 특히 자주 쓰이며, 오랜 기간 축적된 커뮤니티 지식과 플러그인 생태계도 큰 장점이다. ...

2024년 7월 6일 · 7 분 · 1491 단어 · In-Jun

Docker의 Namespace와 Cgroup

Linux 컨테이너 기술은 2002년 커널 2.4.19에서 mount namespace가 처음 도입된 이래로 꾸준히 발전해 현대 클라우드 인프라의 핵심 기반이 되었다. 이 기술의 중심에는 프로세스 격리를 담당하는 Namespace와 리소스 제어를 담당하는 Cgroups(Control Groups)가 있다. Docker, Kubernetes, Podman 등 모든 컨테이너 런타임은 이 두 가지 커널 기능을 활용해 가상 머신보다 훨씬 가볍고 빠른 격리 환경을 제공하며, 이를 이해하는 것이 컨테이너 기술을 깊이 파악하는 첫걸음이다. 컨테이너 기술의 역사적 배경 왜 컨테이너가 필요한가? 전통적인 가상 머신은 하드웨어 전체를 에뮬레이션하여 완전한 운영체제를 실행하기 때문에 리소스 오버헤드가 크고 시작 시간이 길다. 컨테이너는 호스트 커널을 공유하면서도 프로세스 수준에서 격리를 제공하여, 밀리초 단위의 빠른 시작과 최소한의 리소스 사용으로 동일한 격리 효과를 달성한다. ...

2024년 6월 5일 · 6 분 · 1269 단어 · In-Jun
[email protected]