리눅스가 어렵다는 편견(?)은 왜 생겼을까?

안드로이드의 성공에 힘입에 리눅스는 현재 인기있는 OS 중에 하나입니다. 우분투는 리눅스 진영에서 아주 인기있는 배포판이 되었고 라즈베리파이는 IoT 디바이스 개발 도구와 임베디드 리눅스 플랫폼으로 인기있는 리눅스 기반 오픈 개발 플랫폼이 되었습니다. 

이런 추세는 마이크로소프트 윈도우즈의 정책을 서서히 바꾸는 계기가 됩니다. 리눅스 진영의 오픈소스 정책이 대세가 되자 윈도우즈 개발 도구들을 부분 오픈화 하는 정책으로 선회하기 시작했습니다. 심지어는 Github 사이트를 마이크로소프트가 인수하는 결단(?)을 내리기도 했습니다. 

이렇듯 리눅스는 IT 업계에서는 인기있는 개발도구 혹은 OS로 각광을 받고 있는 상황입니다. 그러나 실제로 리눅스를 잘 다루고 개발하고 있는 개발자들이나 프로그래머들이 생각보다 많지는 않은듯 합니다. 지금까지 10여년 넘게 리눅스를 접하고 있지만 리눅스를 직접적으로 다루고 관련 프로그램을 개발하는 개발자들을 많이 만나보지는 못했기 때문입니다. 

저는 현재 작은 스타트업 회사에 재직중인데요, 회사 규모가 조금더 커지면서 리눅스를 개발할 수 있는 프로그래머들을 채용하려고 하지만 몇달이 넘어도 일할 수 있는 개발자가 지원도 하지 않는 걸 보면 리눅스 개발자를 찾는게 쉽지 않은거 같습니다. 

얼마전 이런 상황을 겪고나서 아는 지인과 인제 갓 입사한 신입 프로그래머에게 리눅스에 대하여 물어봤습니다. “리눅스 개발자를 찾는데 주변이 아는 사람이 있느냐?” “학교 다닐때 리눅스 했던 사람 있었느냐?” 라는 말들로 물어봤지만 그 대답은 예상외였습니다. “리눅스는 어려워서 다들 기피한다.” “학생 때 리눅스를 다뤘던 사람들이 거의 없다.” 

10여년 전에도 리눅스 개발자는 찾기 어려웠었는데요, 현재도 그 추세는 아직까지 변함이 없어 보입니다. 그렇다면 인기가 많은 리눅스가 왜 아직까지 개발자들 혹은 이용자들에게 기피의 대상이 되고 있는 걸까요? 다른 개발 도구 및 플렛폼과의 무슨 차이가 있는 걸까요?

리눅스는 GUI 기반의 OS는 아니다?

윈도우즈나 Mac OS가 사용자들에게 GUI(Graphic User Interface) 기반의 환경으로 동작하는거와 달리 리눅스(Linux)는 GUI 기반의 환경이 아니라는 얘기가 있습니다. 그러나 이는 틀린 사실입니다. 리눅스도 배포판에 따라 다르지만 GUI 환경을 제공하고 있습니다. 

위 화면은 우분투로 부팅 후 나오는 GUI 화면입니다. Windows와는 다소 차이가 있어도 엄연히 GUI 환경을 제공해 줍니다. 

민트리눅스 – 실행화면

리눅스 배포판중 노트북이나 데스크탑용으로 가장 각광을 받고 있는 배포판인 “민트(Mint) 리눅스” 입니다. 민트 리눅스는 Windows 같이 GUI 환경이 세련되고 쓸만하다는 평가를 받고 있습니다. 따라서 배포판중에서 현재 꽤 인기있는 리눅스 배포판으로 알려져 있습니다. 

2000년대 초~중반 까지만 해도 리눅스는 GUI 환경이 약간 부실하고 버그가 많았었지만 최근의 리눅스는 그렇지 않다는 것을 보여주고 있습니다. 하지만 아직까지 리눅스는 Windows나 Mac 에 비해 사용자들이 많지 않은데요, 가장 큰 이유는 “쓸만한 Application의 부재” 인듯 합니다. 

안드로이드가 스마트폰이 보급되기 초창기의 열세를 딛고 iOS의 점유율을 월등히 추월한 이유는 Application의 정책에 있다고 해도 과언이 아닙니다. 다소 폐쇠적인 iOS에 비해 안드로이드는 오픈소스 정책을 폈고, 앱 스토어에서 어느 누구나 무료로 개발 도구를 다운로드 받아서 수익을 얻을 수 있는 환경을 만들어줬기 때문에 안드로이드가 전세계 스마트폰의 OS의 80%에 육박하는 점유율을 가지게 된것입니다. 

이런걸 보면 충분히 리눅스도 Windows를 넘어서는 사용자들을 이끌어낼 가능성은 충분히 있는데요, 아직까지는 리눅스가 쉽사리 사용자들에게 보급이 잘 되지는 않은 듯 합니다. 가장 큰 이유는 “쓸만한 Application이 부족” 하다는 점입니다. 개발자들이 Application들을 제공을 해주질 않으니 사용자가 당연히 적을 수 밖에 없는거 같습니다. Windows에서 사용하는 기본 오피스나 웹브라우저들은 리눅스에서도 제공이 되지만 그 이상의 다양한 Application들이 부족하기 때문에 더이상의 사용자들을 끌어내는 데에는 아직까지는 한계가 있는듯 합니다. 그래도 최근에는 많은 어플리케이션들이 리눅스에서 제공이 되고 있어서 서서히 리눅스에서 많은 Application들을 사용하는 시기가 올꺼 같습니다.

리눅스에서 일반 사용자들이 자유롭게 문서작성을 하거나 게임을 하는 날이 빨리 왔으면 좋겠군요.

리눅스는 접근이 어렵다?

리눅스를 접하는 않는 이유중에 하나는 일반 유저들의 접근이 상대적으로 쉽지 않다는 점입니다. 이 말은 사실일까요?

사실이 아닙니다^^ 리눅스는 일반 유저들이 리눅스 배포판을 얼마든지 손쉽게 다운로드 할 수 있으며 손쉽게 설치가 가능합니다. 그리고 심지어는 무료(Open License) 입니다.

위 링크는 대표적인 리눅스 배포판인 “우분투(Ubuntu)”를 다운로드 할 수 있는 우분투 다운로드 공식 사이트입니다. 리눅스를 사용하길 원한다면 언제든지 위 사이트로 접속하여 우분투 배포판을 다운로드하여 설치할 수 있습니다. 또한 위에서 언급했던 “민트 리눅스” 또한 언제든지 무료로 설치 배포판을 다운로드 할 수 있습니다. 

최근에 릴리즈되는 리눅스 배포판들은 설치도 간편한 편입니다. DVD나 USB 메모리를 사용해서 설치 이미지를 만들어  간단하게 설정만 해주면 손쉽게 데스크탑 PC나 서버에 설치가 가능합니다.  아래의 예(우분투 배포판 설치)를 보더라도 설치가 그리 어렵지 않음을 알 수 있습니다.

그렇다면 리눅스의 접근을 왜 어렵다고 생각하는 것일까요? 아마 예전에  GUI 환경이 잘 동작하지 않던 시절의 리눅스에 대한 이미지 덕분에 그런거 같습니다. 사실 얼마전까지만 해도 리눅스 배포판들의 종류가 많지가 않았고 GUI 화면이나 설치가 어려웠던 점이 이런 편견을 가지게 되지 않았나 싶습니다.

한창 리눅스가 활성화되던  1990년대만 하더라도 리눅스는 일반유저들이 쉽게 접근할 수 있던 OS는 아니었던 거 같습니다. Windows가 CD-ROM만 넣으면 자동으로 설치를 해주는 거와 달리 리눅스는 사용 유저가 하드디스크의 파티션을 수동으로 설정하고 필요한 유틸리티들을 수동으로 복사하고, 시스템 설정도 수동으로 해줘야 하는 다소 난이도 높은(?) 설치 방식을 제공했던게 사실이었습니다. 

또한 설치과정에 있어서도 Windows가 GUI 환경을 제공했던 거와 달리 리눅스는 까만 모니터 화면에 테스트 창만 보여지는 방식으로 Windows와는 좀 다른 부분이 있었습니다. 그래서 사용자가 설치 과정을 진행하기에 다소 생소한 느낌이 들었을 수도 있습니다. 예전 MS-DOS와 비슷한 방식이었다고 보면 되겠네요.

그러나 현재는 리눅스도 Windows와 같이 설치과정부터 부팅 후 메인 화면까지  GUI환경을 제공하고 시스템 설정도 자동으로 시스템의 장치들을 인식하여 드라이버를 설치하는 등의 방식을 채택하고 있습니다. 우분투와 리눅스 민트는 이런 GUI 환경을 잘 제공해 주고 있는 대표적인 배포판입니다.

결론적으로 현재는 리눅스의 일반 유저 접근이 많이 쉬워진 상황입니다. 최근에는 라즈베리파이라는 저렴하고 훌륭한 시스템이 OS를 리눅스를 채택하고 있어서 일반 유저들의 접근이 꽤 활성화가 된거 같습니다. 리눅스의 접근이 어렵다는건? 옛말이 될꺼 같습니다.

리눅스는 서버(Server)용으로 주로 사용한다? 그래서 일반 유저들이 사용하기 어렵다.

음, 이말은 어느정도 사실이긴 합니다. 현재 네트워크 서버의 상당수(많은 비율로)가 리눅스를 탑재하여 운영하고 있습니다. 

리눅스 서버용 배포판으로 유명한 Redhat 리눅스

대표적인 서버용 리눅스인 “레드햇 리눅스” 입니다. 레드햇은 데비안과 더불어 오래전부터 리눅스 배포판을 개발하여 보급하던 회사였고, 서버시장에서 “Redhat Enterprise Linux” 유상으로 배포하고 있습니다. 레드햇 리눅스 외에도 CentOS 등이 서버용으로 많이 사용되는 리눅스 배포판입니다. 따라서 리눅스를 사용하는 비율로 보면 네트워크 서버에서 사용하는 비율이 높긴 합니다. 

분명한점은 서버에서 사용하는 리눅스는 어렵다는 점입니다. 서버라는 것은 일반 유저들이 시스템을 구성하고 설정하는게 아닌 전문 인력이나 개발자 들이 주로 사용하는 장비이기 때문에 당연히 그 접근에 있어서 일반 유저들은 어려울 수 밖에 없습니다. 리눅스 설치 부터 시스템 설정, 프로그램 설치까지 아무래도 전문 인력들이 접근하다 보니 상대적으로 일반 유저들은 접근이 어려운게 당연합니다. 

그러므로 리눅스를 일반 유저들이 사용하려면 데스크탑 용도로 사용하면 됩니다. 일반 유저들이 사용하기 쉬운 배포판은 위에서도 언급했던 “리눅스 민트(Mint)” 가 있습니다.

간단하게 자신의 PC에 설치하면 누구나 리눅스를 사용할 수 있게 됩니다. 리눅스는 서버만의 OS는 아닙니다^^

리눅스는 개발도 쉽진 않다? 리눅스 개발 도구는 난이도가 높다.

아마 이부분은 프로그래머들 사이에서도 의견이 분분한거 같습니다. 리눅스 기반의 개발 도구들은 다른 OS에 비해서 준비해야 될 부분이 많긴 합니다. Windows나 Mac OS 들은 프로그래머들이 사용하기 수월한 Visual Studio(유료) 나 xcode 같은 개발도구나 IDE가 제공되므로써 코딩 및 디버깅을 제공된 도구로 할 수 있지만, 리눅스 같은 경우는 어플리케이션이나 환경에 따라서 개발 도구들이 각자 다 다르고 주로 터미널에 접속하여 vi 에디터로 C/C++ 코드를 직접 일일이 작성하는 방식을 아직도 사용하기도 하기 때문에 상대적으로 불편하거나 해야 할 일들이 더 많기도 합니다. 

그래서인지 리눅스 기반의 시스템에서 개발을 할때 상대적으로 좀더 난이도가 높다고 여기는거 같습니다. 저만 하더라도 별도의 IDE를 사용하는게 아닌 단순히 vi 에디터와 ctags 같은 유틸로 까만 터미널 환경에서 개발을 하고 있습니다. 뭐 이 방식으로 지금까지 해와서 편한점도 있습니다. 그 외에도 어플리케이션 개발시에 필요한 Makefile  문법과 Shell Script 수정, 개발에 필요한 라이브러리 찾아서 설치, 관련 유틸 패키지 설치, 디버깅시에 GDB 사용법 익히기 등등 리눅스 환경에서의 개발은 참 번잡스럽고 추가로 해야 할 일이 많은거 같습니다. 

물론 다른 OS 에서도 개발시에 필요한 일련의 과정이나 작업들이 필요하지만, GUI환경에 좀더 편리한 IDE나 개발도구들이 제공되는 Windows나 Mac OS 등에 비교해 봤을때는 아직 리눅스는 개발도구들이 다소 열악하고 익혀야 될 부분들이 많은게 사실이긴 합니다. 아마도 이런 이유때문에 프로그래머들이 리눅스를 좀 기피(?) 하는게 아닐까? 라는 생각을 개인적으로 하고 있습니다. 

이런 점들은 리눅스로 개발일 하고 있는 저로써는 다소 아쉬운 부분입니다. 요즘 회사에서 사람을 채용하고 있는데 리눅스 개발자들은 잘 보이지 않는듯 하는데요, 특히 20대 신입 개발자들은 거의 전무하다시피 합니다. 간혹 보이는 리눅스 개발자들은 30대 중후반~40대 중반 사이의 연령대 들이네요. 물론 신규로 시작하는 리눅스 개발자들이 없는 것은 또 다른 이유도 있겠지요. 

어쨌거나 리눅스는 개발적인 측면에서는 다소 번거롭고 익혀야 될 도구들이 많은건 사실인거 같습니다. 그렇지만 프로그래머들이 생각하는 것과는 다르게 리눅스는 처음에 잘만 익혀놓으면 참 매력적인 개발환경인거 같습니다. 다른 OS 기반의 도구들이 유료이고 때론 라이브러리 확보에 어려움이 있을 수 있지만 리눅스의 경우에는 최근에 트랜드인 “오픈소스”의 본고장으로 수많은 오픈소스들을 누구나 별다른 비용없이 이용할 수 있다는게 큰 장점인거 같습니다. 

리눅스는 사용 그 자체가 어려운 OS이다.

일단 많은 사람들이 그렇게 느끼는거 같습니다. 컴퓨터 사용 조차도 어려워 하는 일반인이 많은데 리눅스? 그게 뭐지? 먹는 건가? 라고 생각하시는 분들이 많을꺼 같네요. Windows가 데스크탑이나 노트북 OS의 강자로 부상한것도 일반 유저들의 사용함에 편리함을 추구하였기 때문에 아직까지도 그 점유율을 유지하고 있다고 생각합니다. 사실 Windows 외에 다른 OS들은 데스크탑 PC로 사용하기에는 영~~~생소하고 사용할 이유도 없습니다. 

리눅스의 마스코드 턱스(Tux)

최근 안드로이드가 스마트폰 OS에서 점유율을 거의 80%까지 끌어올린것도 바로 이점인거 같습니다. 사용하기에 남녀노소 편리하게 되어 있으면 자연스레 그 이용도 증가하게 된다는 것을…

그런걸로 봤을때 아직까지 리눅스는 GUI가 많이 개선되었다고 하나 Windows 같이 사용하기에는 일반 유저들이 어려워 할 수밖에 없을꺼 같습니다. 일단 익숙하지 않은 GUI 화면에 우리나라 같으면 한글 입력과 한영키 전환, 한자입력등이 아직은 미흡하다는 점. 그리고 프린터 사용과 같은 주변기기 연결의 어려운 점 등입니다. 

최근에 리눅스용으로 드라이버등이나 어플리케이션들이 많이 지원을 한다고는 하지만 Windows와는 비교도 되지 않는 수준입니다. 솔직히 아직은 일반 유저들이 사용하기에는 많이 미흡한건 사실인거 같습니다. 이 부분은 리눅스 진영에서 많은 고민을 해봐야 될꺼 같습니다. 리눅스를 파워 유저나 프로그래머들의 전유물로 둘지 아니면 일반 유저들까지도 모두 포용하는 OS로 갈지는 아직은 미지수 인듯 보입니다. 

리눅스가 어렵다는(?) 분들에게….

리눅스에 대하여 정리를 하고 보니 어쨌거나 결론은 “리눅스 사용은 일반유저들에게 어렵다.”가 되버리고 말았습니다.ㅋ 최근에 “라즈베리파이”나 “리눅스 민트” 덕분에 많은 분들이 리눅스를 접하고 계시지만 실제 리눅스가 설치된 시스템에서 개인 업무나 게임, 쇼핑 등의 활용을 하는 비율은 극히 적은 수준이긴 합니다. 대부분 개발용이거나 파워 유저 혹은 교육 목적인거 같습니다. 

우분투나 민트 리눅스 처럼 USB에 배포판 설치 이미지를 담아서 설치는 누구나 쉽게 할 수 있으나 적은 수의 어플리케이션들과 주변 장치 연결의 어려움 등은 아직까지 리눅스 진영의 숙제로 남아있는 듯 합니다. 일단 국내의 개발자들 조차도 리눅스쪽에 아직까지는 진입을 꺼리고 있는 실정이라서 당장은 이 추세가 전환되기는 어려워 보입니다. 

하지만 리눅스 커널을 탑재한 안드로이드가 최근 10년동안 엄청난 성장을 했듯이 어느 순간 리눅스 진영의 특정 배포판에서 무슨일이 일어날지는 예측할 수 없습니다. 한편으로 안드로이드도 리눅스 기반의 시스템이기 때문에 리눅스의 성공이라고 봐야 되긴 하겠네요. 대신에 시스템은 스마트폰으로 한정적이긴 합니다. 

최근에 PC의 생산량은 점차 줄어드는 추세라고 합니다. 스마트폰의 보급이 워낙 늘어나서 집에서 PC을 사용하는 인구가 줄고 개인이 각각 스마트폰만 소유하면 PC가 하던일은 많이 대체했기 때문입니다. 그렇다고 해서 PC는 당분간은 사라질 수가 없는데, 업무적인 일은 PC가 아직까지는 필요합니다. 그렇지만 PC의 OS는 대부분이 Windows가 꽉 잡고 있지요. ㅋ

개인적인 바램이지만 업무용으로도 PC에 리눅스가 OS로 탑재되어 문서도 작성하고 웹서핑도 하며, 게임도 하고 쇼핑도 했으면 좋겠습니다. 리눅서로써 이런 목표에 보탬이 되도록 노력을 많이 해야 될꺼 같군요^^

'코드도사(codedosa.com)'에는 쿠팡파트너스 등의 제휴링크가 포함되어 있으며 수수료를 제공받을 수 있습니다.