리눅스 학습 시리즈 안내
시리즈 목차 보기

리눅스를 공부하려고 하면 가장 먼저 부딪히는 문제는 "무엇부터 배워야 하지?"다. 명령어 몇 개만 익히고 끝낼 수도 없고, 반대로 처음부터 커널이나 쿠버네티스까지 들어가면 금방 지치기 쉽다.

그래서 리눅스는 입문 → 중급 → 고급 → 마스터 순서로 밟는 구조가 가장 효율적이다. 이번 글에서는 리눅스를 체계적으로 공부할 수 있도록 전체 커리큘럼을 한 번에 정리해본다.

1. 입문 과정: 리눅스와 친해지는 단계

입문 과정에서는 리눅스가 무엇인지 이해하고, 실제로 설치하고, 기본 명령어와 계정 관리에 익숙해지는 것이 핵심이다.

1-1. 리눅스 소개 및 설치

먼저 리눅스의 역사와 철학을 이해하면 왜 리눅스가 지금까지 널리 쓰이는지 감이 잡힌다. 그리고 Ubuntu, CentOS, Fedora 같은 대표 배포판이 어떤 성격을 가지는지도 알아둘 필요가 있다.

이 단계에서 다루면 좋은 내용:

  • 리눅스의 역사와 오픈소스 철학
  • 주요 배포판 소개
  • VMware, VirtualBox, 클라우드 환경에서 설치
  • 설치 후 기본 설정
  • 네트워크 설정, 업데이트, 패키지 설치

1-2. 리눅스 기본 명령어

리눅스는 결국 쉘 환경과 명령어에 익숙해지는 것이 매우 중요하다. 기본 명령어는 이후 모든 학습의 기초가 된다.

주요 학습 항목:

  • 파일 시스템 구조 이해 (/, /home, /etc, /var 등)
  • 파일/디렉토리 명령어 (ls, cd, cp, mv, rm, mkdir)
  • 파일 보기/편집 (cat, more, less, nano, vim)
  • 시스템 정보 확인 (uname, df, du, top, htop)

1-3. 사용자 및 그룹 관리

리눅스는 멀티유저 시스템이라 사용자, 그룹, 권한 개념이 매우 중요하다.

주요 학습 항목:

  • 사용자와 그룹의 개념
  • 사용자 관리 (useradd, usermod, userdel, passwd)
  • 그룹 관리 (groupadd, groupmod, groupdel)
  • 파일 권한과 소유권 (chmod, chown, chgrp)
  • sudo 권한 관리

1-4. 기본 네트워크 설정

서버 운영을 위해서는 네트워크의 기초를 반드시 알아야 한다.

주요 학습 항목:

  • IP 주소와 호스트네임 설정
  • 네트워크 인터페이스 관리 (ifconfig, ip)
  • SSH를 통한 원격 접속 및 관리

2. 중급 과정: 시스템 관리와 운영 감각 익히기

중급 단계부터는 실제 서버 운영에 가까운 지식을 다루게 된다. 파일 시스템, 프로세스, 서비스, 패키지, 로그를 이해하면 “실무형 리눅스”에 가까워진다.

2-1. 파일 시스템 작업

  • EXT4, XFS, Btrfs 같은 파일 시스템 이해
  • 파티셔닝과 마운트 (fdisk, parted, mount, umount)
  • 파일 시스템 점검/복구 (fsck, e2fsck)
  • 심볼릭 링크와 하드 링크

2-2. 파일 권한 및 ACL 관리

  • rwx 권한 체계 심화
  • ACL 관리 (getfacl, setfacl)
  • 고급 chmod 사용법 (SUID, SGID, Sticky Bit)

2-3. 프로세스 및 서비스 관리

  • 프로세스 관리 (ps, top, kill, nice, renice)
  • 서비스 관리 (systemctl, service, chkconfig)
  • 데몬과 서비스의 차이
  • cron을 이용한 작업 스케줄링

2-4. 소프트웨어 설치 및 관리

  • 패키지 관리 시스템 이해 (APT, YUM, DNF)
  • 설치/업데이트/삭제
  • 소스 컴파일 및 설치 (make, gcc, ./configure)

2-5. 로그 파일 관리

  • 시스템 로그의 중요성
  • 주요 로그 파일 위치와 역할
  • journalctl, logrotate 같은 도구 활용

3. 고급 과정: 서버 운영과 보안으로 확장

고급 단계에서는 리눅스를 단순 사용이 아니라 “운영 플랫폼”으로 다루게 된다. 자동화, 네트워킹, 보안, 서버 서비스 구축이 핵심이다.

3-1. 리눅스 쉘 스크립트

  • 쉘 스크립트 구조와 문법
  • 변수, 조건문, 반복문
  • 파일 처리와 파이프라인
  • 자동화 스크립트와 크론탭

3-2. 고급 네트워킹 기술

  • 네트워크 인터페이스 구성 (ip, nmcli)
  • 방화벽 설정 (iptables, firewalld)
  • 네트워크 트러블슈팅 (ping, traceroute, netstat, ss)
  • NFS 설정 및 사용

3-3. 인터넷 프로토콜 이해

  • TCP/IP 프로토콜 스택
  • IPv4 vs IPv6
  • DNS 설정 및 관리
  • DHCP 서버 설정

3-4. 리눅스 서버 환경 구성

  • 웹 서버 (Apache, Nginx)
  • 데이터베이스 서버 (MySQL/MariaDB, PostgreSQL)
  • FTP/SFTP 서버 구성
  • SAMBA 기반 파일 공유

3-5. 리눅스 보안 관리

  • 보안 기초와 강화 방법
  • SELinux 개념 및 설정
  • SSL/TLS 인증서 관리
  • auditd, fail2ban을 통한 감사와 방어

3-6. 리눅스 고급 관리 기술

  • 커널 튜닝 (sysctl)
  • RAID, LVM
  • 성능 모니터링/최적화 (iostat, vmstat, sar)
  • AWS, GCP, Azure 같은 클라우드 환경 운영

4. 마스터 과정: 전문가 레벨 심화 주제

여기서부터는 리눅스를 단순히 운영하는 수준을 넘어, 대규모 환경과 고급 아키텍처를 다루는 단계다.

4-1. 고급 스크립트 작성 및 자동화

  • 고급 Bash 스크립트
  • Ansible 기반 자동화 및 구성 관리
  • Docker와 컨테이너 관리

4-2. 클러스터링 및 고가용성

  • 클러스터링 기본 개념
  • HAProxy, Keepalived 기반 고가용성
  • Kubernetes 기초와 클러스터 구성

4-3. 리눅스 커널 분석 및 튜닝

  • 커널 모듈 이해와 컴파일
  • 커널 파라미터 튜닝
  • gdb, systemtap 같은 디버깅 도구

4-4. 리눅스 네트워크 심화

  • 고급 방화벽 (nftables)
  • VPN 설정 및 운영 (OpenVPN, IPSec)
  • 네트워크 분석과 최적화 (iperf, tcpdump)

4-5. 클라우드 및 컨테이너 기술

  • 클라우드 네이티브 애플리케이션
  • Docker Swarm, Kubernetes 심화
  • 서버리스 컴퓨팅 개념

어떻게 공부하면 좋을까?

이 커리큘럼을 전부 한 번에 공부하려고 하면 오히려 부담이 커진다. 좋은 방법은 아래처럼 단계별로 끊어서 가는 것이다.

  1. 입문 과정으로 리눅스 환경에 익숙해지기
  2. 중급 과정으로 시스템 운영 감각 익히기
  3. 고급 과정으로 서버, 보안, 자동화까지 확장하기
  4. 필요에 따라 마스터 과정으로 심화하기

특히 서버 운영, 보안, 네트워크 쪽에 관심이 있다면 입문 단계를 빨리 통과한 뒤 중급과 고급 과정에 시간을 더 많이 쓰는 편이 효율적이다.

마무리

리눅스는 단순히 명령어를 외운다고 끝나는 분야가 아니다. 설치, 계정, 권한, 네트워크, 서비스, 보안, 자동화가 서로 연결되어 있어서 단계적으로 쌓아가는 방식이 가장 중요하다.

이번 글은 전체 로드맵을 정리한 개요편이다. 다음 글부터는 입문 과정, 중급 과정, 고급 과정, 마스터 과정 순서로 하나씩 더 자세히 풀어보면 훨씬 체계적인 학습 자료가 될 수 있다.


시리즈 이동