데이터 엔지니어링

패스트캠퍼스 환급챌린지 11일차: 데이터엔지니어링 초격차 강의 후기

Big Byte 2025. 4. 11. 23:12

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 

안녕하세요! 😊

 

패스트캠퍼스 환급챌린지와 함께 매일매일 리눅스(Linux) 세계를 탐험하며 성장하고 있는 Big Byte입니다! 어제 mkdir로 나만의 공간을 만들고 rm으로 정리하는 방법을 배우면서, 마치 디지털 세계의 건축가이자 정리 전문가가 된 듯한 뿌듯함을 느꼈었는데요. 🏗️🗑️ (물론 rm의 강력함에 살짝 긴장하기도 했지만요! 😅)

 

어느덧 한 주의 끝을 향해 달려가는 금요일 저녁! 오늘도 저는 어김없이 퇴근 후 컴퓨터 앞에 앉아 패스트캠퍼스 리눅스 강의를 들으며 지식의 벽돌을 차곡차곡 쌓아 올렸습니다. 🧱🤓 어제까지 파일과 디렉토리를 만들고 지우는 기본적인 관리법을 익혔다면, 오늘은 그 파일들의 내용을 들여다보고, 비교하고, 심지어는 자주 쓰는 명령어를 나만의 단축키로 만드는 아주 유용하고 흥미로운 기술들을 배웠습니다!

 

점점 더 검은 화면과 친숙해지는 제 모습, 제법 멋지지 않나요? 😉 그럼 오늘 배운 알찬 내용들을 빠짐없이, 풍성하게 풀어보겠습니다! 출발! 🚀

 

1. 틀린 그림 찾기 전문가: 파일 비교의 달인, diff! 🔍

코딩을 하거나 문서를 작성하다 보면, 파일의 이전 버전과 현재 버전 사이에 어떤 부분이 달라졌는지 확인해야 할 때가 종종 있습니다. 윈도우에서는 비교 프로그램을 따로 설치해야 하는 경우가 많지만, 리눅스에는 아주 강력한 기본 도구가 있습니다. 바로 diff (difference) 명령어입니다!

 

이름 그대로, 두 개의 파일 내용을 행(line) 단위로 비교하여 다른 점만 쏙쏙 골라 보여주는 아주 똑똑한 녀석이죠. 마치 틀린 그림 찾기 전문가처럼요! 😎

 

사용법:

      diff [옵션] [비교할 파일1] [비교할 파일2]
    

간단한 예를 들어볼까요? hello_v1.txthello_v2.txt 라는 두 파일이 있다고 가정해봅시다.

 

hello_v1.txt 내용:

      Hello, Linux!
Welcome to the world of commands.
Learning is fun.
    

 

hello_v2.txt 내용:

      Hello, Linux World!
Welcome to the world of commands.
Learning is exciting and fun.
    

이제 터미널에서 diff 명령어를 실행해 보겠습니다.

      diff hello_v1.txt hello_v2.txt
    

그러면 다음과 같은 결과가 나올 수 있습니다. (출력 형식은 조금 다를 수 있습니다)

      1c1
< Hello, Linux!
---
> Hello, Linux World!
3c3
< Learning is fun.
---
> Learning is exciting and fun.
    

 

이 출력이 의미하는 바는 다음과 같습니다.

  • 1c1: 첫 번째 파일(v1)의 1번째 줄(line 1)이 두 번째 파일(v2)의 1번째 줄로 변경(c: changed)되었습니다.
  • < Hello, Linux!: 첫 번째 파일(v1)의 내용입니다. (< 기호는 첫 번째 파일을 가리킵니다)
  • ---: 두 파일 내용의 구분선입니다.
  • > Hello, Linux World!: 두 번째 파일(v2)의 내용입니다. (> 기호는 두 번째 파일을 가리킵니다)
  • 3c3: 첫 번째 파일(v1)의 3번째 줄이 두 번째 파일(v2)의 3번째 줄로 변경되었습니다.
  • < Learning is fun.
  • ---
  • > Learning is exciting and fun.

diff는 단순히 변경된 내용(c)뿐만 아니라, 한 파일에만 존재하는 내용(추가 a: added, 삭제 d: deleted)도 알려줍니다.

 

정말 신기하죠? 코드를 수정하고 나서 어떤 부분이 바뀌었는지 추적하거나, 설정 파일의 변경 사항을 확인할 때 정말 유용하게 쓰일 것 같습니다! 👍 특히 -u 옵션을 사용하면 좀 더 보기 편한 형태로 출력해주니 참고하면 좋을 것 같아요. (나중에 버전 관리 시스템 Git을 배울 때 이 diff의 개념이 아주 중요하게 사용된다고 하니, 미리 친해져 두면 좋겠죠?)

 

2. 스크롤 압박은 이제 그만! 우아하게 파일 읽기, less 📖

리눅스에서 파일 내용을 확인할 때 가장 기본적으로 사용하는 명령어는 cat (concatenate) 입니다. 하지만 cat은 파일 내용을 처음부터 끝까지 한꺼번에 화면에 출력해버리기 때문에, 내용이 긴 파일의 경우 순식간에 화면이 스크롤되어 앞부분을 보기 어렵다는 단점이 있습니다. 😭

 

이럴 때 구세주처럼 등장하는 명령어가 바로 less 입니다! less는 이름과 달리 cat보다 **더 많은 기능(more)**을 제공합니다. 😉 파일 내용을 한 화면(페이지) 단위로 보여주고, 사용자가 자유롭게 위아래로 탐색하며 내용을 살펴볼 수 있게 해줍니다. 마치 전자책을 읽는 것처럼요!

 

사용법:

      less [파일명]
    

예를 들어, 아주 긴 로그 파일 system.log를 보고 싶다면:

      less system.log
    

그러면 터미널 화면에 system.log 파일의 첫 부분만 보이고, 맨 아래에는 파일 이름이나 상태 표시줄이 나타납니다. 여기서부터 less의 진가가 발휘됩니다!

less 내부 주요 조작 키:

  • Space Bar: 한 화면 아래로 이동 (Page Down)
  • b: 한 화면 위로 이동 (Page Up)
  • j 또는 : 한 줄 아래로 이동
  • k 또는 : 한 줄 위로 이동
  • g: 파일의 맨 처음으로 이동
  • G: 파일의 맨 마지막으로 이동
  • /검색어: 입력한 '검색어'를 아래 방향으로 검색 (n: 다음 찾기, N: 이전 찾기)
  • ?검색어: 입력한 '검색어'를 위 방향으로 검색 (n: 다음 찾기, N: 이전 찾기)
  • h: 도움말 보기
  • q: less 종료하고 터미널로 돌아가기

이제 긴 파일도 스크롤 압박 없이 여유롭게 탐색할 수 있습니다! 😄 특히 less는 다른 명령어의 출력 결과를 받아서 보여줄 때도 아주 유용합니다. 예를 들어, ls -al의 결과가 너무 길 때 파이프(|)를 이용해 less로 넘겨주면 편리하게 볼 수 있습니다.

      ls -al /etc | less
    

이렇게 하면 /etc 디렉토리의 상세 목록을 less를 통해 페이지 단위로 편하게 확인할 수 있습니다. 정말 활용도가 무궁무진하죠?

 

3. 나만의 마법 주문! 명령어 단축키 만들기, alias

리눅스를 사용하다 보면 자주 쓰는 명령어나 옵션 조합이 생기기 마련입니다. 매번 길고 복잡한 명령어를 입력하는 것은 꽤 번거로운 일이죠. 😩 이럴 때 우리의 손가락을 편하게 해주고, 실수를 줄여주는 마법 같은 기능이 바로 alias 입니다!

 

alias는 특정 명령어와 옵션의 조합에 **별명(alias)**을 붙여서, 그 별명만 입력하면 원래의 긴 명령어를 실행한 것처럼 만들어주는 기능입니다.

 

사용법 (alias 정의):

      alias [별명]='원래 명령어와 옵션'
    

주의: = 좌우에는 공백이 없어야 하고, 원래 명령어 부분은 작은따옴표(')나 큰따옴표(")로 감싸주는 것이 좋습니다.

유용한 alias 예시:

  • 자주 사용하는 ls -al 명령어를 ll이라는 짧은 별명으로 만들기:이제 터미널에 ll만 입력해도 ls -al을 실행한 것과 같은 결과가 나옵니다! 와우! 🎉
  •       alias ll='ls -al'
        
  • 어제 배운 rm 명령어, 실수 방지를 위해 항상 확인(-i) 옵션을 붙여 사용하고 싶다면?이렇게 설정해두면, 그냥 rm이라고 입력해도 자동으로 rm -i가 실행되어 파일을 삭제하기 전에 정말 삭제할 것인지 물어봅니다. 안전벨트를 맨 것처럼 든든하죠! 🛡️ (물론 정말 강제로 삭제해야 할 때는 \rm 처럼 명령어 앞에 역슬래시를 붙여서 alias를 일시적으로 무시하거나, rm -f를 명시적으로 입력해야 합니다.)
  •       alias rm='rm -i'
        
  • 상위 디렉토리로 이동하는 cd .. 명령어를 ..으로 만들기:이제 ..만 입력하면 바로 상위 디렉토리로 이동! 정말 편리하겠죠?
  •       alias ..='cd ..'
        

현재 설정된 alias 목록 확인:

      alias
    

alias 삭제:

      unalias [별명]
    

예를 들어, 위에서 만든 ll 별명을 삭제하고 싶다면:

      unalias ll
    

중요! alias의 지속성:

터미널에서 직접 alias 명령어로 설정한 별명은 해당 터미널 세션에서만 유효합니다. 즉, 터미널 창을 닫거나 로그아웃하면 설정했던 alias가 사라집니다. 😮

 

alias를 영구적으로 사용하고 싶다면, 사용자의 쉘 설정 파일(예: Bash 쉘의 경우 홈 디렉토리의 .bashrc 또는 .bash_profile, Zsh 쉘의 경우 .zshrc)에 alias 정의 구문을 직접 추가해주어야 합니다. 이 설정 파일은 쉘이 시작될 때마다 자동으로 읽어 들이기 때문에, 여기에 등록된 alias는 항상 사용할 수 있게 됩니다. (설정 파일 수정은 조금 더 신중해야 하니, 다음에 기회가 되면 더 자세히 알아보거나 강사님께 질문해 봐야겠어요!)

 

alias 기능을 잘 활용하면 반복적인 타이핑을 줄여 작업 효율을 높이는 동시에, rm -i처럼 중요한 명령어에 안전장치를 걸어 실수를 예방할 수도 있습니다. 나만의 편리하고 안전한 리눅스 환경을 구축하는 데 필수적인 기능이라고 할 수 있겠네요! 👍

4. 오늘의 배움과 느낀 점 💡

오늘 diff, less, alias라는 세 가지 강력한 도구를 배우면서, 리눅스 CLI 환경이 단순히 명령어를 입력하는 곳이 아니라, 데이터를 효과적으로 다루고 작업을 효율화하는 능동적인 공간이라는 것을 더욱 깊이 느꼈습니다.

 

  • diff를 통해 파일의 변화를 정확히 추적하는 방법을 알게 되었고, 앞으로 코드나 설정 파일을 관리할 때 큰 도움이 될 것 같습니다.
  • less 덕분에 이제 아무리 긴 파일이라도 부담 없이 내용을 살펴볼 수 있게 되었습니다. 스크롤의 압박에서 해방된 느낌이랄까요? 😄 특히 다른 명령어와 파이프(|)로 연결했을 때의 편리함은 정말 매력적이었습니다.
  • alias는 마치 저만의 마법 주문을 만드는 것 같아 가장 흥미로웠습니다! 자주 쓰는 명령어를 단축키로 만들어서 편리함을 얻는 것은 물론, rm='rm -i'처럼 스스로 안전장치를 마련할 수 있다는 점이 정말 마음에 들었습니다. 어제 rm의 위험성을 배우고 살짝 걱정했는데, alias로 어느 정도 해소할 수 있게 되어 안심이 됩니다.

리눅스 명령어의 세계는 알면 알수록 신기하고 유용한 기능들이 가득한 보물창고 같다는 생각이 듭니다. 아직은 서툴지만, 하나씩 배우고 익히면서 점점 더 리눅스와 친해지는 이 과정이 정말 즐겁습니다. 🌱

오늘 하루도 이렇게 새로운 지식으로 머리를 채우고 뿌듯하게 마무리합니다!

 

그리고... 드디어!! 기다리고 기다리던 금요일 밤입니다! 🎉 내일부터는 즐거운 주말이네요! 이번 주도 열심히 달린 저에게, 그리고 이 글을 보시는 모든 분들께 박수를 보냅니다! 👏 즐거운 주말 계획 세우시면서 행복한 금요일 밤 보내시길 바랍니다! 😊 저도 내일은 푹 쉬면서 에너지 충전해야겠어요! 🔥

 

습관형성, 오공완, 징작인자기계발, 패스트캠퍼스, 패스트캠퍼스후기, 환급챌린지

 

https://abit.ly/lisbva