김현우
  • 리눅스 한 학기 살기 - 13주차 (完)
    2025년 06월 02일 01시 18분 45초에 업로드 된 글입니다.
    작성자: kugorang
    728x90
    728x90

    들어가며

    어느덧 종강이 다가왔고, 한 학기가 곧 끝난다

     

    드디어 "리눅스 한 학기 살기" 시리즈를 마무리했다. 졸업을 앞둔 마지막 학기, 매주 하나씩 새로운 리눅스 프로그램을 탐구하며 보낸 12주는 내게 있어 단순한 과제를 넘어선 진정한 성장의 시간이었다. 이 글을 통해 그동안의 여정을 되돌아보고, 리눅스와 함께하며 배우고 느낀 점들을 정리해보고자 한다.

     

    처음 이 프로젝트를 시작할 때만 해도, 솔직히 말해서 막막했다. 3학점만 들어도 졸업이 가능했음에도 불구하고 18학점을 꽉 채운 것도 모자라, 매주 2페이지 이상의 심도 있는 보고서를 작성하겠다는 다소 무모한 도전을 감행했다. 게임 개발에만 집중하던 내가 백엔드 수업 4개를 한꺼번에 듣는 것도 버거운데, 추가로 리눅스 프로그램을 하나씩 파헤치는 일정을 잡은 것이다.

     

    하지만 지금 돌이켜보니, 그 선택이 얼마나 현명했는지 깨닫게 된다. 라즈베리파이 5를 구매하여 직접 서버를 구축하고, 매주 새로운 프로그램을 설치하며 실무 환경을 구현해나간 경험은 그 어떤 이론 수업보다도 값진 배움이었다.

     

    기술적 성장의 발자취

    기초 다지기 (1-3주차)

    1주차에 떨리는 마음으로 라즈베리파이를 조립하던 기억이 아직도 생생하다. SSH 설정부터 시작해서 기본적인 시스템 구성까지, 하나하나가 새로운 도전이었다. 특히 2주차에 curl과 make를 다루면서 단순 사용법을 넘어 각 도구의 원리와 역사까지 깊이 있게 탐구한 것은 내 학습 방식의 전환점이 되었다. "어떻게 하는가"를 넘어 "왜 이렇게 하는가"를 이해하려는 엔지니어의 자세를 갖추게 된 것이다.

     

    3주차의 원격 데스크톱 설정은 특히 기억에 남는다. "use redirection server name:i:1" 설정으로 문제를 해결하기까지 수많은 시행착오를 겪었지만, 결국 커뮤니티의 도움과 끈기로 해결했을 때의 성취감은 이루 말할 수 없었다. 이 경험을 통해 기술 문제 해결에 있어 포기하지 않는 끈기와 커뮤니티의 중요성을 몸소 체험했다.

     

    실무 환경 구축 (4-6주차)

    4주차의 VPN 설정 과정에서는 보안의 중요성을 새삼 깨달았다. WireGuard와 Tailscale을 비교 분석하며 각각의 장단점을 정리하는 과정에서, 단순히 작동하는 것에 만족하지 않고 최적의 솔루션을 찾으려는 나 자신을 발견했다. 특히 ufw 설정 실수로 SSH 접속이 막혀 모니터와 키보드를 다시 연결해야 했던 일화는 지금도 웃으며 회상하는 소중한 경험이다. 실수도 배움의 일부라는 것을 깨닫게 해준 순간이었다.

     

    5주차의 Docker 설치와 6주차의 Jenkins를 통한 CI/CD 환경 구축은 현대적인 개발 환경을 직접 구성해보는 값진 경험이었다. 특히 Docker 설치 과정을 매우 체계적이고 교육적으로 정리하면서, 나 자신도 초보자에게 가르칠 수 있을 정도의 이해도를 갖추게 되었다는 자부심이 들었다.

     

    심화 학습 (7-9주차)

    7주차의 Vim 학습은 특히 의미 있었다. "매번 :wq!만 쓰던 나였는데"라는 고백처럼, 그동안 Vim을 제대로 활용하지 못했다는 반성과 함께 vimtutor를 통해 체계적으로 학습했다. 익숙한 도구라도 제대로 배우지 않으면 그 잠재력의 극히 일부만 사용하게 된다는 교훈을 얻었다.

     

    8주차의 ca-certificates 분석은 평소 당연하게 사용하던 패키지의 중요성을 새롭게 인식하게 만들었고, 9주차에 이르러서는 TLDR 프로젝트의 구조를 분석하며 오픈소스 프로젝트의 아키텍처를 이해하는 수준까지 성장했다. 특히 9주차에 "이번 주차부터는 리눅스 입문자와 교육자를 위한 글을 작성해볼까 한다"고 밝힌 것은 내가 이제 학습자에서 지식을 전달할 수 있는 수준으로 성장했음을 스스로 인정한 순간이었다.

     

    시스템 깊이 이해하기 (10-12주차)

    10주차의 tree 명령어를 다루면서 "보통 파일 계층 구조를 나타낼 때 아스키코드 문자를 많이 활용하는데 여태 일일히 하나씩 표현했던 내가 참 바보 같다는 생각이 들게 해준 고마운 라이브러리"라고 표현한 것처럼, 단순해 보이는 도구도 깊이 파고들면 놀라운 가치를 발견할 수 있다는 것을 배웠다. tree의 내부 동작 방식부터 다양한 옵션 활용법까지 상세히 분석하면서, 기술 문서 작성 능력도 한층 성장했다.

     

    11주차의 htop은 Windows의 작업 관리자와 비교하며 설명하는 과정에서 복잡한 개념을 쉽게 전달하는 능력을 기를 수 있었다. 특히 "htop는 top의 대안으로 개발된 대화형 프로세스 뷰어"라는 정의부터 시작해 다양한 대안 도구들(glances, bashtop/btop, atop, gotop)과의 상세한 비교까지, 체계적인 분석 능력이 크게 향상되었음을 느꼈다.

     

    마지막 12주차의 nmap은 이 시리즈의 대미를 장식하기에 충분했다. 네트워크 보안이라는 민감한 주제를 다루면서도 "강력한 보안 도구인 만큼 책임 있는 사용 태도가 중요하며, 악의적인 목적의 남용을 경계해야 한다"는 윤리적 측면을 강조한 것은 기술자로서의 성숙함을 보여준다고 자부한다. 단순한 포트 스캐너를 넘어 NSE 스크립트 엔진까지 다루며, 보안 도구의 양면성과 책임감 있는 사용의 중요성을 깊이 인식하게 되었다.

    728x90

    학습 방법의 진화

    이 시리즈를 진행하면서 나의 학습 방법도 크게 진화했다. 초기에는 단순히 프로그램의 사용법을 익히는 데 중점을 두었다면, 후반부로 갈수록 다음과 같은 체계적인 접근 방식을 갖추게 되었다.

    1. 깊이 있는 탐구: 각 프로그램의 역사, 개발 배경, 내부 동작 원리까지 파헤치는 습관
    2. 실전 중심 학습: 이론만이 아닌 실제 환경에서의 활용 사례와 문제 해결 경험 공유
    3. 비교 분석: 유사한 도구들과의 상세한 비교를 통한 각 도구의 특성 이해
    4. 문서화의 중요성: 배운 내용을 체계적으로 정리하고 다른 사람도 이해할 수 있도록 작성

     

    특히 ChatGPT와 같은 AI 도구를 활용한 심화 학습은 현대적인 학습 방법의 좋은 예시가 되었다. 2주차에서 net-tools에 대해 ChatGPT의 Deep Research 기능을 활용한 것처럼, AI를 학습 도구로 효과적으로 활용하는 방법을 터득했다.

     

    예상치 못한 수확

    이 프로젝트를 통해 얻은 것은 단순한 기술적 지식만이 아니었다.

    첫째, 글쓰기 능력의 향상이다. 매주 2페이지 이상의 기술 문서를 작성하면서 복잡한 기술 개념을 명확하고 이해하기 쉽게 전달하는 능력이 크게 향상되었다. 특히 후반부의 글들은 초보자도 따라할 수 있을 정도로 상세하면서도 전문성을 잃지 않는 균형을 갖추게 되었다.

    둘째, 체계적 사고의 발달이다. 각 프로그램을 개요, CLI 구조, 실제 사용 사례, 대안 도구 비교, 설치 방법 등으로 체계적으로 분석하는 과정에서 구조화된 사고 능력이 크게 발전했다.

    셋째, 커뮤니티의 가치 인식이다. 기술적 문제를 해결하는 과정에서 오픈소스 커뮤니티의 도움을 받고, 나 역시 블로그를 통해 지식을 공유함으로써 기술 생태계의 일원이 되는 경험을 했다.

     

    아쉬움과 앞으로의 계획

    물론 아쉬운 점도 있다. 시간 제약으로 인해 각 프로그램의 모든 기능을 다루지 못했고, 더 많은 실전 프로젝트에 적용해보지 못한 것이 그것이다. 또한 보안 관련 주제들은 실제 환경에서 테스트하기 어려워 이론적인 설명에 그친 부분도 있다.

     

    하지만 이러한 아쉬움은 오히려 앞으로의 학습 동기가 된다. 졸업 후에도 이 시리즈에서 다룬 도구들을 실무에서 활용하며 더 깊이 있게 탐구할 계획이다. 특히 Docker와 Jenkins를 활용한 CI/CD 파이프라인 구축, nmap을 이용한 정기적인 보안 점검 등은 즉시 활용할 수 있는 실무 기술이 될 것이다.

     

    후배들에게 전하는 메시지

    이 글을 읽는 리눅스 입문자나 후배들에게 전하고 싶은 말이 있다.

    첫째, 두려워하지 말고 도전하라. 나 역시 처음엔 막막했지만, 하나씩 해결해나가다 보면 어느새 성장한 자신을 발견하게 될 것이다.

    둘째, 실수를 두려워하지 마라. 4주차의 SSH 차단 사건처럼, 실수는 가장 강력한 학습 도구가 된다.

    셋째, 꾸준함이 답이다. 매주 하나씩, 12주 동안 꾸준히 학습한 결과 놀라운 성장을 이룰 수 있었다.

    넷째, 공유하고 기록하라. 배운 것을 정리하고 공유하는 과정에서 더 깊은 이해와 새로운 통찰을 얻을 수 있다.

     

    마치며

    "리눅스 한 학기 살기" 시리즈를 마무리하며, 이 여정이 단순한 과제 수행을 넘어 진정한 성장의 시간이었음을 깨닫는다. 라즈베리파이라는 작은 컴퓨터에서 시작하여 점차 복잡하고 전문적인 시스템을 구축해나간 과정은 내게 기술적 성장뿐만 아니라 문제 해결 능력, 끈기, 그리고 지식 공유의 가치를 가르쳐주었다.

     

    무엇보다 중요한 것은, 이 시리즈를 통해 나는 단순한 기술 사용자에서 기술을 이해하고 전달할 수 있는 수준으로 성장했다는 점이다. 처음엔 학습자였지만 이제는 다른 이들을 가르칠 수 있는 수준에 이르렀고, 이는 12주간의 노력이 헛되지 않았음을 증명한다.

     

    앞으로도 이 시리즈에서 얻은 열정과 호기심을 잃지 않고, 계속해서 새로운 기술을 탐구하며 성장해나갈 것이다. 그리고 그 과정을 계속 기록하고 공유하여, 더 많은 사람들이 리눅스의 매력을 느끼고 함께 성장할 수 있기를 바란다.

     

    마지막으로, 이 시리즈를 읽어준 모든 분들께 감사의 마음을 전한다. 여러분의 관심과 피드백이 있었기에 12주간의 여정을 완주할 수 있었다. 이제 각자의 "리눅스 한 학기 살기"를 시작해보는 것은 어떨까? 분명 그 여정의 끝에는 놀라운 성장이 기다리고 있을 것이다.

    728x90
    728x90
    댓글