본문 바로가기

소프트웨어 개발 방법 및 도구/Linux OS에서 한 학기 살아보기

Linux OS에서 한 학기 살아보기 (15) [후기]


리눅스에서 한 학기 살아 보기 마무리편

 

 

지난주를 끝으로 ‘리눅스에서 한 학기 살아 보기’ 과제가 끝났다. 처음 리눅스 데스크탑을 바라보면 부정적인 느낌이 가득했다. 하지만 지금은 리눅스에 대해서 조금 더 연구하고 싶은 마음이 든다. 리눅스는 알면 알수록 알아야 하는 것이 많아지기 때문인 것 같다. 리눅스를 공부한다는 것은 리눅스를 이용하는 방법뿐만 아니라, 리눅스 운영체제를 만들어온 사람들의 생각을 배우는 것 같다. 버전이 올라가면서 새로 생기는 기능(소프트웨어)들과 사라지는 기능(소프트웨어)들을 보며 느낀 점이다. 리눅스를 사용하는 것은 아직 편하지 않지만 결국, 교수님이 강의 초반에 말씀하셨던 대로 ‘불편하니까 쓰지 말아야겠다.’와 같은 생각은 들지 않는다.

 

과제를 마무리하며, 내가 한 학기 동안 리눅스를 사용하면서 생각해 본 것들을 몇 가지 써 보려고 한다. 첫째, 리눅스를 배우기 위해서는 끊임없는 호기심이 필요하다는 것. 둘째, 평생 Windows만 사용해온 사람으로서 직접 체험해 본 리눅스의 장단점과 그에 대한 생각.

 

리눅스를 배우기 위해서는 끊임없는 호기심이 필요하다. 처음 과제를 시작했을 때는 이러한 생각을 하지 못했다. 소프트웨어 설치 과정에 필요한 명령어나 버전에 관련된 설명을 깊이 이해하려고 하지 않았다. 예를 들어, ‘sudo apt-get install chrome’과 같은 명령어를 이용하면 chrome을 설치할 수 있다는 사실을 알았다고 하자. 당시의 나는 터미널을 켜서 명령어를 입력하고 설치가 완료되면 소프트웨어를 실행했다. 만약 오류가 생기면, 오류 내용을 복사해서 다시 구글링했다. 결과물만 제대로 주어진다면 그 과정에 대해서는 깊이 생각하지 않은 것이다. 하지만 이후에 깨달은 점이 있다. 나는 ‘sudo’가 무엇인지, ‘apt’가 무엇인지, ‘get’이 무엇인지에 대해서 생각해보아야 했다. 그리고 오류가 났을 때, 오류의 내용이 무엇인지 해석하고, 오류 내용을 위의 예시처럼 단어별로 검색했어야 했다. 왜냐하면, 나는 아는 것이 하나도 없었기 때문이다. 과제 초반의 나는 그렇게 하지 못했기 때문에, 소프트웨어 설치에 자주 실패했다. 학기 후반에 가서야 한 소프트웨어를 설치하기 위해서 각각의 단어들을 모두 공부했고, 왜 오류가 났는지에 대해서 정확히 파악하려고 노력했다. 그러자 의존성 문제, PPA 저장소 추가, 사용자 권한, ‘$PATH’ 지정 등에 대해서도 알게 됐다. 사실 이것들은 사소한 것이지만 Windows 운영체제만 사용해온 사람들에게는 별로 중요하지 않은 문제들이기 때문에 직접 알려고 하지 않으면 알 수 없는 내용이었다. 따라서 무엇을 배우든 당연히 어떤 일이든 호기심이 필요하지만, 리눅스를 공부할 때는 더욱 중요하다고 생각하게 되었다.

 

리눅스를 사용하면 당연히 장점이 있고 단점이 있다. 이미 수많은 사람들이 리눅스의 장단점을 얘기하지만, 내 주관적인 생각을 몇 가지 정리하는 것은 의미가 있다고 생각한다.

 

먼저 장점을 살펴보자. 첫 번째 장점은 컴퓨터에 대해서 더 잘 알게 된다는 것이다. 프로그래밍에서 Data Hiding과 Encapsulation은 중요한 작업이다. 뜬금없이 이게 무슨 소리냐면, Windows에서 사용하는 소프트웨어들이나 운영체제 자체는 많은 것을 숨기고 사용자에게 편리한 GUI만을 제공한다는 것이다. 내부적으로 소프트웨어가 어떻게 설치되었고 작동하는지에 대해서 알려주지 않고, 알 필요도 없다는 것이다. 이것은 Windows의 장점이라고 할 수도 있다. 하지만 리눅스 운영체제를 이용하며 직접 소프트웨어를 설치하는 것은 GUI 뒤에 가려져 있는 모습을 직접 꺼내볼 수 있는 능력을 길러준다. 그것이 아무리 사소한 것일지라도 말이다. 예를 들어, 나는 Windows에서 사용자를 분리하는 것이 단순히 편의를 위해서 바탕화면만 따로 사용하는 것인 줄 알았다. 하지만 리눅스를 이용해보니 그것이 아니었다. 완전히 분리된 저장소를 사용하며, 여러 사용자 모두 사용할 수 있는 저장소도 있는, 서로 다른 작업을 할 때 서로를 침범하는 것을 방지하는 기능이었다. 물론 아주 깊이가 얕은 예시이지만, 나처럼 컴퓨터에 대한 지식이 많이 없는 사람에게는 체감되는 정보였다. 또 하나의 장점은 리눅스는 ‘Personal’하다는 것이다. Windows는 내 의지와 상관없이 자동 업데이트를 하고, 노트북 제조사인 SAMSUNG도 그들이 처음에 설치해놓은 소프트웨어를 업데이트하며 마음대로 노트북의 설정을 바꾼다. 또한, Windows의 경우 운영체제 내의 요소들을 마음대로 바꿀 수 없다. 하지만 리눅스는 내놓은 자식처럼 아무도 신경 쓰지 않는다. 내가 연구하는 만큼 더 좋은 데스크탑이 될 뿐이다. 마지막으로 리눅스 커뮤니티를 칭찬하고 싶다. 그들은 항상 열정적이다. 다른 사람이 질문한 것을 정리해서 올린다. 신기한 것은 그들은 단순히 아는 것에 대해 답변하는 것이 아니었다. 다른 사용자가 겪는 불편을 조사해보고 본인도 공부한 뒤, 답변을 달아주었다. 나는 이것이 리눅스의 가장 큰 장점이라고 생각한다. 강의 중 교수님께서도 리눅스를 생각할 때 리눅스 운영체제만이 아닌, 리눅스 커뮤니티 또는 오픈소스 커뮤니티를 함께 생각해야 한다고 하셨다.

 

다음으로 단점을 얘기해보자면 오픈소스 소프트웨어의 단점이라고도 말할 수 있는 것이 있다. 오픈소스 소프트웨어 또는 프로젝트는 여러 명의 개발자가 참여하여 개발하는데, 버전 업데이트가 거의 되지 않는다면, 사실상 사용이 불가능하다. 왜냐면, 리눅스 운영체제의 버전은 계속 올라가기 때문이다. 해당 소프트웨어가 리눅스의 변경 사항에 맞춰서 업데이트되지 않는다면, 실질적으로 사용이 어려운 것 같다. 실제로 이번 과제를 하면서, 우분투 18.04에서는 지원하지 않는 소프트웨어들이 있었다. 또는 이 버전에서 사용하려면 추가적인 작업을 해주어야 하는 것들도 있었다. 또 내가 느낀 단점은, 버전의 통일성이 없다는 것이다. 예를 들어, Windows 사용자는 대부분 Windows10을 사용하고 있다. 하지만 리눅스는 아주 다양한 배포판과 버전이 존재하기 때문에, 사람들과 소통할 때 종종 어려움이 존재하는 것 같다. 또한, 그중 작은 커뮤니티를 가진 배포판의 경우엔 위에서 언급했던 장점인 커뮤니티에서의 장점은 사라진다고 볼 수 있다. 오히려 Windows 사용자가 Windows 도움말을 보는 것이 더 유용할 수도 있다. 나는 강의 중 교수님의 제안으로 알파인 리눅스를 사용했는데, 이때 바로 이 단점을 겪었다. 내가 겪는 오류들에 대한 자료가 너무 부족해서 해결하기 쉽지 않았다. 마지막으로 사소한 문제지만, 한글화에 대한 것을 말하고 싶다. 리눅스에서 사용하는 소프트웨어들은 많은 부분이 한글화되어있지만, Windows 운영체제만큼 잘 되어있지 않다. 그도 그럴 것이 오픈소스 소프트웨어 개발자들이 한글 번역을 지원할 필요는 거의 없기 때문이다. 리눅스를 이용하다 보면 자주 접하게 되는 ‘README.txt’ 파일을 읽다 보면 시간이 훌쩍 간다. 재밌어서가 아니라 한 문장 한 문장 읽는 시간이 길어서이다. 나는 이러한 점도 영어권에 거주하지 않는 사람들이 리눅스를 사용하는데 상당히 큰 단점이라고 생각한다.

 

한 학기 동안 리눅스를 사용하며 울고 웃었다. 그 내용을 잘 적어보고 싶었지만, 글을 쓰다 보니 내가 느꼈던 생각들을 제대로 작성하지 못한 것 같아서 아쉽다. 하지만 한 학기 내내 리눅스에 소프트웨어를 설치하고 사용한 경험을 한글파일과 블로그 포스팅을 통해서 남긴 것은 뿌듯하다.