내 Linux Devlog: WSL에서 Cloud까지 (1~5일)

발행: (2026년 2월 16일 오후 06:25 GMT+9)
11 분 소요
원문: Dev.to

Source: Dev.to

Linux 서버 관리 여정을 시작하는 것은 손전등 하나만 들고 어두운 방에 던져진 느낌과 같습니다. 강력한 기계가 그 안에 있다는 건 알지만, 한 번에 볼 수 있는 빛은 작은 원 하나뿐이죠.

TL;DR – 저는 Linux Upskill Challenge에 도전해서 단순히 “Linux를 사용하는” 수준을 넘어 실제로 관리해 보려 합니다. 마법에 의존하지 않고 풀‑스택 및 AI 프로젝트를 위한 원격 서버를 직접 다루고 싶어요.
제 환경: 로컬에서는 WSL, Google Cloud Platform (GCP) 가상 머신에 연결합니다.

아래는 제가 첫 주에 배운 모든 내용입니다.

Day 1 – “프런트 도어”

문제

공용 인터넷은 근본적으로 안전하지 않습니다. 데이터가 평문으로 전송되기 때문에 같은 네트워크에 있는 해커가 비밀번호와 기타 민감한 정보를 엿들을 수 있습니다.

해결책 – SSH

Secure Shell (SSH)은 내 로컬 머신과 원격 서버 사이에 암호화된 터널을 만듭니다. 누군가 트래픽을 가로채더라도 의미 없는 문자열처럼 보입니다.

키 기반 인증 vs. 비밀번호

  • 비밀번호 – 무차별 대입 공격에 취약합니다.
  • 키 쌍(비대칭 암호화) – 훨씬 더 안전합니다.
구성 요소역할
공개 키서버에 저장됩니다(“잠금” 역할).
개인 키내 로컬 머신에 저장됩니다(“물리적 열쇠” 역할).

서버는 챌린지를 보내고, 이는 개인 키로만 해결할 수 있습니다. 개인 키가 없으면 접근할 수 없습니다.

# WSL을 통해 연결하고, -i 플래그로 개인 키를 지정
ssh -i ~/.ssh/id_ed25519 gcp-tyronemt@34.9.x.x

“첫 5 분” 상태 점검

명령어표시 내용
uptime시스템 가동 시간 + 평균 부하
free -m사용 가능한 RAM(0이면 애플리케이션이 충돌)
df -h디스크 사용량(로그가 드라이브를 가득 채우지 않았는지 확인)
htop / top실시간 CPU 사용량(리눅스 작업 관리자)
uname -a커널 버전 및 시스템 아키텍처

핵심 요약 (Day 1) – 원격 연결 시 SSH는 절대 선택 사항이 아니며, 키 쌍은 비밀번호보다 훨씬 안전합니다. 로그인 직후에는 free, df 등으로 간단한 상태 점검을 반드시 수행하세요.

Day 2 – 매뉴얼 읽기 및 파일시스템 탐색

매뉴얼을 효율적으로 읽는 방법

  • man <command> – 전체 레퍼런스 (예: man ls).
  • help <builtin> – 내장 쉘 명령(cd, export, …)을 위한 도움말. type <command>를 실행해 내장 명령인지 확인하세요.
  • tldr <command> – 간결하고 예제가 풍부한 치트 시트 (설치: sudo apt install tldr).
  • apropos "<keyword>" – 설명으로 명령을 검색.

트리 탐색

CommandDescription
pwd현재 작업 디렉터리 출력 – 현재 위치를 보여줍니다.
cd /var/log절대 경로 (/부터 시작).
cd ~ or cd홈 디렉터리로 이동.
cd -이전 디렉터리로 돌아갑니다.
ls -ltra긴 형식, 시간 정렬, 역순, 숨김 파일 포함.

파일 조작

mkdir <folder>                # Create a folder
touch <file>                  # Create an empty file
rm -r <folder>                # Delete a folder and everything inside it
# Safer interactive delete:
rm -ri <folder>

키 포인트 (Day 2) – 매뉴얼을 읽는 방법을 알면 추측을 줄일 수 있고, 모든 것이 루트(/)에서 분기된다는 것을 이해하면 탐색이 훨씬 쉬워집니다.

Day 3 – 권한 관리

누가 권한을 가지고 있나요?

RoleDescription
root전체 권한을 가진 슈퍼유저 – 작은 오타 하나로 서버가 파괴될 수 있습니다. 절대 root로 직접 로그인하지 마세요.
sudoerssudo를 통해 슈퍼 권한을 부여받은 일반 사용자.
regular users자신의 홈 디렉터리(~)에만 제한됩니다. 전역적인 변경(예: 패키지 설치)은 할 수 없습니다.

sudo란?

  • root 자체가 아니라 – 실수를 방지하기 위한 감사 레이어 역할을 합니다.
  • 예시: cat /etc/shadowPermission denied; sudo cat /etc/shadow는 작동합니다.

유용한 sudo 명령

# Become root temporarily (full root shell)
sudo -i

# See who logged in
last

# See failed login attempts (e.g., bots)
sudo lastb

전역 관리 작업

  • Hostname
    hostnamectl                     # Show current hostname
    sudo hostnamectl set-hostname <new-name>
    # On cloud providers, ensure persistence:
    # Edit /etc/cloud/cloud.cfg → preserve_hostname: true
  • Timezone
    timedatectl                     # Show current timezone
    sudo timedatectl set-timezone <Region/City>
    # Correct timezone = correct timestamps in logs.

핵심 요약 (Day 3)sudo는 안전망입니다. 절대 root로 직접 로그인하지 말고, 디버깅 시 로그가 의미 있게 만들려면 항상 올바른 시간대를 설정하세요.

Day 4 – 패키지 관리 및 파일시스템 계층

APT (Advanced Package Tool)

  • Sources list/etc/apt/sources.list.d/ubuntu.sources
  • Searchapt search "<keyword>"
  • Installsudo apt install <package> (설치가 시스템 전체에 영향을 미치므로 sudo가 필요합니다).

Filesystem Hierarchy (see man hier)

/
├─ /root          – root 사용자 홈 폴더
├─ /home          – 일반 사용자 홈 폴더
├─ /sbin          – 시스템 바이너리(관리자 명령, root 전용)
├─ /etc           – 전역 설정 파일
└─ /var
   └─ /log        – 시스템 및 보안 로그

Key Config & Log Files (all plain text!)

PathPurpose
/etc/passwd사용자 계정 정보
/etc/ssh/sshd_configSSH 데몬 설정
/var/log/auth.log모든 sudo 사용 및 로그인 기록

I also installed Midnight Commander (sudo apt install mc), a visual, text‑based file manager. Launch with mc; use F3 to view files and F10 to exit.

Key Takeaway (Day 4) – Linux는 본질적으로 텍스트 파일들의 집합입니다. 설정을 변경하려면 /etc 아래 파일을 편집하고, 문제를 해결하려면 /var/log 아래 로그를 확인하십시오.

Day 5 – (곧 공개)

다음 글을 기대해 주세요. 그곳에서 네트워킹, 방화벽, 그리고 Ansible을 활용한 배포 자동화에 대해 다룰 예정입니다.

텍스트 파일을 터미널에서 직접 관리하는 것은 필수 스킬

보기 및 편집

  • less vs more – 큰 파일을 읽을 때는 less를 사용합니다. 위아래로 스크롤하고 텍스트를 검색할 수 있지만, more는 훨씬 제한적입니다.
  • Dotfiles – 점(.)으로 시작하는 숨김 파일(예: .bashrc). 사용자 설정을 담고 있습니다. ls -a로 확인할 수 있습니다.
  • nano – 간단하고 기본 제공되는 터미널 텍스트 편집기입니다.

CLI에서 더 빠르게 작업하기

  • Tab Completion – 파일이나 폴더 이름을 자동 완성하려면 Tab 키를 누릅니다. 일치하는 항목이 여러 개이면 두 번 눌러 선택합니다.
  • Command History (history) – 지금까지 입력한 모든 명령을 보여줍니다.
  • Execution by Number![number](예: !20)를 입력하면 히스토리에서 해당 번호의 명령을 즉시 다시 실행합니다.
  • Reverse Search (Ctrl+R) – 과거 명령을 입력하기 시작하면 셸이 나머지를 자동으로 제안합니다. 시간 절약에 큰 도움이 됩니다.

고급 작업 공간

  • Bash shell – 많은 시스템에서 기본 인터랙티브 쉘입니다.
  • Custom PromptsPS1 변수를 편집하여 프롬프트 모양을 바꿀 수 있습니다.
  • Alternative Shellszsh 또는 fish는 더 나은 자동 제안과 풍부한 자동 완성을 제공합니다.
  • Multiplexers (tmux / screen) – 하나의 터미널 창을 여러 패널로 나누고, SSH 연결이 끊겨도 백그라운드에서 스크립트를 계속 실행할 수 있습니다.

핵심 요점 (Day 5)

모든 것을 손으로 직접 입력하지 마세요. Tab 자동 완성을 마스터하고, Ctrl+R로 이전 명령을 찾으며, 로그 파일을 읽을 때는 항상 less를 사용하세요.

0 조회
Back to Blog

관련 글

더 보기 »

슬픔에 대해 이야기해 봅시다.

서론 슬픔은 친척의 상실에만 국한되지 않는다. 우리는 또한 아이디어, 기대, 이상, 그리고 꿈의 죽음을 애도한다. 우리는 미래에 대한...에 대해 슬퍼한다.

스캔볼트

개요 ScanVault는 CLI‑first 문서 인텔리전스 플랫폼으로, 영수증, 인보이스, PDFs, 스크린샷, 화이트보드 사진과 같은 비구조화 파일을 변환합니다.