리눅스 마스터 1급 취득 여정 및 실습

2025. 11. 29. 16:19자격증/리눅스마스터 1급

선택한 이유 :  현업에서 실제 운영서버를 노트북, 데스크탑, AWS 등 서버로 리눅스를 보통 쓴다.

 

목적 : 정보처리기사를 취득하면서  이어서 공부하려고 한다. 특히, 다음과 같은과 같은 부분을 실습하려고 한다.

 

  • 2급 (기초): 리눅스라는 '자동차'를 운전하는 법 (명령어 사용, 파일 관리, 기초 조작)
  • 1급 (심화): 자동차의 '엔진'을 뜯어고치고 튜닝하는 법 (서버 구축, 네트워크 설정, 보안, 최적화)

따라서 1급을 공부하시면 2급 내용은 자연스럽게 복습 및 심화 학습이 됩니다.


현업에서 가장 자주 사용하는 '찐' 실습 3가지

서버를 처음 구축하는 단계(DNS, Mail 설정 등)는 사실 한 번 셋팅하면 잘 안 건드립니다. 하지만 개발자나 엔지니어로서 매일 숨 쉬듯이 하게 될 작업은 따로 있습니다.

이 3가지는 자다가 깨워도 할 수 있을 만큼 능숙해져야 합니다.

1. "로그 까보기" (Log Analysis) - 빈도 1위

서버에 문제가 생기면 제일 먼저 하는 말이 "로그 봐봐"입니다.

  • 상황: 스프링 부트(Spring Boot) 서버가 500 에러를 뱉거나 죽었을 때.
  • 필수 명령어:
    • tail -f catalina.out (또는 app.log): 실시간으로 올라오는 로그 확인.
    • grep "ERROR" catalina.out: 로그 파일에서 'ERROR'라는 글자가 들어간 줄만 뽑아내기.
    • grep -A 10 "Exception" catalina.out: 예외(Exception) 발생 지점부터 아래로 10줄 보기.
  • 실습: 의도적으로 에러를 내고 grep으로 원하는 에러 메시지만 딱 찾아내는 연습.

2. "프로세스 & 포트 확인" (Process & Port) - 빈도 2위

"서버 띄웠는데 접속이 안 돼요" 또는 "포트가 충돌 났어요" 할 때 씁니다.

  • 상황: 톰캣을 켰는데 이미 8080 포트를 누가 쓰고 있어서 안 켜질 때, 혹은 좀비 프로세스 죽일 때.
  • 필수 명령어:
    • ps -ef | grep java: 자바 프로세스가 살아있는지 확인.
    • netstat -nlp | grep 8080: 8080 포트를 누가 잡고 있는지(PID) 확인.
    • kill -9 [PID]: 해당 프로세스 강제 종료.
  • 실습: 톰캣을 띄워놓고 터미널에서 프로세스 번호(PID)를 찾아 강제로 죽여보기.

3. "권한 문제 해결" (Permission) - 빈도 3위

리눅스는 권한(Permission)에 매우 엄격합니다. "Permission denied" 에러는 일상입니다.

  • 상황: 파일을 업로드했는데 수정이 안 되거나, 쉘 스크립트를 만들었는데 실행이 안 될 때.
  • 필수 명령어:
    • ls -al: 소유자(User)와 그룹(Group), 권한(rwx) 확인.
    • chmod 755 [파일]: 실행 권한 부여 (스크립트 실행 시 필수).
    • chown [user]:[group] [파일]: 파일의 주인을 변경 (예: root로 만든 파일을 일반 유저가 쓰게 할 때).
  • 실습: root 계정으로 파일을 하나 만들고, 일반 계정으로 로그인해서 그 파일을 수정하거나 지우려고 시도해보기(에러 체험), 그 후 권한을 줘서 성공해보기.

결론: 무엇부터 할까요?

리눅스 마스터 1급의 방대한 서버 설정(DNS, Sendmail 등)도 중요하지만, **현업 투입 직후 당장 욕 안 먹고 일하려면 위 3가지(로그, 프로세스, 권한)**가 훨씬 급하고 중요합니다.

지금 계획 중이신 **'리눅스 서버 구축'**을 진행하시면서, 뭔가 안 될 때마다 구글링보다는 위의 명령어들을 써서 직접 원인을 찾는 습관을 들이시면 실력이 가장 빨리 늡니다.

 

 

-- 환결 설정 --

 

우분투(Ubuntu) 설치, 아주 좋은 선택입니다! 현업에서도 **CentOS(RedHat 계열)**와 **Ubuntu(Debian 계열)**가 양대 산맥인데, 최근에는 AI, 클라우드, 컨테이너(Docker) 환경과의 호환성 때문에 우분투의 점유율이 압도적으로 높아지고 있습니다.

설치가 끝났다면, 이제 'PC'를 '서버'로 만드는 초기 세팅 4단계를 진행해 봅시다. 지금부터는 마우스보다는 **터미널(Terminal, 검은 화면)**을 열고 명령어를 치는 것에 익숙해지셔야 합니다.


[Step 1] 최신 상태로 업데이트 (기본 위생)

설치된 우분투의 패키지들을 최신 버전으로 맞춰줍니다. 보안 패치와 버그 수정이 포함되어 있어 서버 구축 전 필수 과정입니다.

  • 터미널 명령어:
  • Bash
     
    sudo apt update        # 설치 가능한 패키지 목록 갱신
    sudo apt upgrade -y    # 실제 프로그램들 최신 버전으로 업그레이드
    

[Step 2] SSH 원격 접속 설정 (현업 필수)

서버실에 들어가서 모니터를 보고 작업하는 엔지니어는 없습니다. 내 자리(혹은 카페)에서 원격으로 접속해야 진정한 서버입니다.

  1. SSH 서버 설치:
  2. Bash
     
    sudo apt install openssh-server -y
    
  3. 서비스 실행 확인:
  4. Bash
     
    sudo systemctl status ssh
    # 초록색으로 'active (running)'이라고 뜨면 성공입니다.
    
  5. 내 아이피(IP) 확인:
  6. Bash
     
    ip addr
    # 'inet' 뒤에 나오는 숫자(예: 192.168.0.x)가 이 서버의 주소입니다.
    # 이 주소를 메모해두세요.
    

[Step 3] 방화벽(UFW) 기초 설정 (보안)

리눅스 마스터 1급에서는 iptables를 배우지만, 실무(특히 우분투)에서는 관리가 쉬운 ufw(Uncomplicated Firewall)를 주로 씁니다. 문을 잠그는 작업입니다.

  1. SSH 포트(22번) 열기 (이거 안 열고 방화벽 켜면 접속 못 해서 서버 밀어야 할 수도 있음!):
  2. Bash
     
    sudo ufw allow 22/tcp
    
  3. 방화벽 활성화:
  4. Bash
     
    sudo ufw enable
    # 'Command may disrupt existing ssh connections...' 경고가 나오면 y 입력
    
  5. 상태 확인:
  6. Bash
     
    sudo ufw status
    # 22/tcp ALLOW ... 형태로 보이면 성공.
    

[Step 4] 외부에서 접속해보기 (첫 번째 성취감)

이제 우분투 서버의 모니터를 끄거나 멀리 두세요. 지금 사용 중인 윈도우(또는 맥) PC에서 접속해 봅니다.

  • 도구: PowerShell, CMD, 혹은 Putty, MobaXterm 등
  • 명령어:
  • Bash
     
    ssh [우분투계정명]@[아까메모한IP주소]
    # 예: ssh user1@192.168.0.15
    
  • Are you sure you want to continue connecting? -> yes 입력
  • 비밀번호 입력 후 접속되면 1차 서버 구축 성공입니다.

다음 단계 제안

여기까지 되셨나요? 이제 이 서버는 네트워크상에 존재하는 진짜 '서버'가 되었습니다.

다음으로 무엇을 먼저 해보고 싶으신가요?

  1. "웹 서버 띄우기": Nginx를 설치해서 브라우저로 내 서버 IP를 쳤을 때 웹사이트가 뜨게 해보고 싶다.
  2. "파일 전송하기": FTP(SFTP)를 설정해서 내 PC의 파일을 서버로 옮겨보고 싶다.
  3. "고정 IP 설정": 서버 껐다 켜도 IP가 안 바뀌게(현재는 바뀔 수 있음) 설정하고 싶다. (리눅스 마스터 1급 단골 문제)