| En

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

i3wm과의 만남: 생산성을 위한 선택 i3 윈도우 매니저(i3wm)는 효율성과 생산성에 초점을 맞춘 타일링 윈도우 매니저로, 2009년 독일의 개발자 Michael Stapelberg가 기존 wmii 윈도우 매니저의 한계를 극복하고자 처음 개발했으며 “improved tiling wm"의 약자로 i3라는 이름이 붙었다. C 언어로 작성된 i3는 약 10,000줄의 간결한 코드로 구성되어 가벼우면서도 강력한 기능을 제공하며, 특히 마우스를 거의 사용하지 않고 키보드만으로 모든 작업을 수행하는 워크플로우를 선호하는 개발자, 시스템 관리자, 그리고 파워 유저들 사이에서 큰 인기를 얻고 있고, Arch Linux, Gentoo, NixOS 사용자들 사이에서 특히 높은 채택률을 보인다. ...

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

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

zram의 개념과 원리 zram(이전 명칭: compcache)은 리눅스 커널에서 제공하는 메모리 압축 기술로, RAM의 일부를 압축하여 가상 블록 장치로 사용하는 메커니즘이며, 이 기술은 2009년 Nitin Gupta에 의해 처음 개발되었고 리눅스 커널 3.14부터 정식으로 통합되어 현재까지 널리 사용되고 있다. zram의 핵심 아이디어는 디스크 기반 스왑 대신 압축된 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 분 · 847 단어 · In-Jun

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

MAC 주소 변경의 필요성 MAC 주소(Media Access Control address)는 네트워크 장치를 식별하는 고유한 물리적 주소로, 네트워크 인터페이스 카드(NIC) 제조 시 하드웨어에 영구적으로 할당되며 일반적으로 변경되지 않는 것으로 설계되었다. 그러나 보안, 프라이버시 보호, 네트워크 접근 제어 우회, 테스트 환경 구축 등의 이유로 MAC 주소를 일시적으로 또는 영구적으로 변경해야 하는 상황이 발생할 수 있으며, 특히 공용 와이파이를 사용하거나 네트워크 추적을 방지하고자 할 때 유용하다. Ubuntu를 포함한 대부분의 리눅스 배포판에서는 소프트웨어적으로 MAC 주소를 변경할 수 있는 기능을 제공하며, 이 글에서는 Ubuntu에서 MAC 주소를 안전하고 효과적으로 변경하는 방법을 알아본다. ...

2025년 4월 27일 · 6 분 · 1189 단어 · 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의 이름은 재귀적 약어로 “Wine Is Not an Emulator"를 의미하며, 이는 Wine이 단순한 에뮬레이터가 아니라는 점을 강조하기 위해 선택되었다. Wine은 가상 머신이나 에뮬레이터와는 근본적으로 다른 방식으로 작동하며, Windows API 호출을 실시간으로 POSIX 호환 시스템 호출로 변환하는 역할을 수행한다. 가상화 소프트웨어인 VirtualBox나 VMware는 완전한 Windows 운영체제를 가상 환경에서 실행하므로 상당한 시스템 리소스를 소비하는 반면, Wine은 Windows 프로그램이 호출하는 API(Application Programming Interface) 함수들을 Linux 시스템이 이해할 수 있는 형태로 변환하여 네이티브에 가까운 성능을 제공한다. 예를 들어 Windows 프로그램이 파일을 열기 위해 CreateFile 함수를 호출하면 Wine은 이를 리눅스의 open 시스템 콜로 변환하여 실행한다. ...

2025년 2월 23일 · 8 분 · 1532 단어 · 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 분 · 1848 단어 · In-Jun

우분투 OpenSSH 서버 실행

SSH(Secure Shell)는 네트워크 상에서 다른 컴퓨터에 안전하게 접속하여 명령을 실행하고 파일을 전송할 수 있게 해주는 암호화된 네트워크 프로토콜로, 1995년 핀란드 헬싱키 공과대학의 Tatu Ylönen이 텔넷(Telnet)과 rsh(remote shell)의 보안 취약점을 해결하기 위해 개발했으며, 현재는 OpenSSH가 사실상의 표준 구현체로 자리잡아 전 세계 서버 관리의 핵심 도구로 사용되고 있다. Ubuntu에서 SSH 서버를 설치하고 설정하면 로컬 네트워크뿐만 아니라 인터넷을 통해서도 서버에 원격으로 접속하여 관리할 수 있으며, 이 글에서는 OpenSSH 서버의 설치부터 보안 설정까지 전체 과정을 단계별로 설명한다. ...

2024년 8월 14일 · 6 분 · 1170 단어 · 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 분 · 971 단어 · 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 분 · 953 단어 · In-Jun

Vim 텍스트 에디터

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

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

Docker의 Namespace와 Cgroup

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

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