사실 리눅스 강좌는 워낙에 많고 책도 많고 배우려고 맘만 먹으면 얼마든지 배울 수 있습니다. 그래서 경험적으로
이러이러 하다고 이야기를 하는게 가장 좋은 배움의 방법인 것 같아요. 아무리 좋은 강좌도 자신이 직접 해보지 않으면 아무런 소용이
없으니까요. 그리고 결코 정확하다고 할 수 없는 저의 비전을 이야기 해 보는겁니다. 그리고 맞지 않기 때문에 다른 반대의 의견이
나오도록 하나의 생각의 덩어리를 올리는 것이 저의 뜻입니다.
첫번째 강좌의 핵심은 리눅스를 하지 말라는 것이었습니다. 저 역시 오픈 소스 진영의 한 사람으로서 리눅스가 얼마나 우리 세상을
많이 바꾸었는지 알고 있습니다. 그리고 리눅스 서버를 공짜로 이용하면서 쇼핑몰로 수백억을 벌고 그게 다 자신의 노력의 결과라고
생각하는 사람들 보면서 혀를 끌끌 차기도 합니다. 그런 사람들은 아파치 서버 취약점으로 하루 아침에 홈페이지를 다 날려봐야
정신을 차릴 것인지... 크레킹 진영을 응원해 보기도 합니다.
쿨 소프트는 구글에서 검색되기 때문에 제가 글을 쓰면 재야의 수많은 고수 분들이 비웃을 일인지도 모르겠습니다. 하지만 쿨 소프트가
제 자리를 찾고 궤도에 오르기 전까지 이곳에 글을 쓰는 것에 짱돌을 던질 분은 없으리라 생각하고 이야기 해 봅니다.
전 리눅스를 꽤 오래 했지만 더 이상 비전이 보이지 않습니다. 우리나라에서 운영체제를 만드는 여러 프로젝트와 국가 차원에서도
오픈소스를 지원하는 것을 알고 계십니까? 그런데 지금까지 그 결과물들은 형편없었습니다.
구석구석에 한글화 작업을 하시고 커널 메인테이너급의 실력을 가지신 분들도 계시지만 그 분들을 뭉치게할 지원은 없었습니다.
국가도 반짝하는 식으로 지원하고는 있지만 정말 크게 지원하지는 않고, 정작 그런 지원을 받는 연구 기관들은 역량을 가진 S/W인재들을
보유하고 있지 않았습니다.
그래서 리눅스는 난도질만 당하고 있습니다. 리눅스를 안다는 사람은 무수히 많지만 정작 우리나라에 커널 메인테이너는 없습니다.
나름 패키징은 잘하지만 오래가는 리눅스 업체도 없습니다. 다 나라 돈 까먹고 청춘 낭비하는 짓으로 밖에 보이지 않네요.
그리고 아직도 전 우분투를 쓰고 있지만 업데이트 하면 리눅스를 쓰지 못하게 되는 것이 10년이 지난 지금도 리눅스 쓰기를 꺼려하는
하나의 이유가 되고 있습니다. 물론, 라이브 시디로 부팅해서 GRUB 다시 설치해서 해결하거나 수동 마운트로 해결하기도 합니다.
그런데 그게 무슨 의미가 있습니까? 얼마 전에는 삼바로 연결해서 쓰다가 NTFS가 완전히 맛가서 상용 NTFS 살리는 프로그램을
쓰기도 했습니다. 마스터 부트가 날아간 것이 아니라 세부 테이블들이 다 깨져서 다시 테이블 만들고 중요 파일들만 살렸습니다.
사실 리눅스를 하다보면 뭔가 짜증나는 기분을 계속 해서 느낍니다. 3일동안 고생해서 얻은 건 명령어 한 줄 일수도 있습니다.
그러나 리눅스를 알면 다른 건 쉽게 알 수 있다는 말은 정말 사실입니다.
공부를 하다보면 오픈 마인드 보다는 막혀있는 답답함들을 많이 만납니다. 리눅스 쪽은 라이브러리도 소스가 다 공개되어 있기 때문에
문제를 만났을 때 원론적인 해결 루트를 찾아 갈 수 있다는 것이 하나의 매력입니다.
자 이제 장황한 이야기를 마치고 리눅스 공부의 몇가지 root를 가르쳐 드리겠습니다.
1. 리눅스 서버 관리자가 된다.
- 다양한 리눅스 패지키를 써 볼 필요도 없습니다. 서버로서 가장 적합하다고 생각되는 리눅스를 찾고 명령어들과 트러블 슈팅 방법을 익히면
됩니다. 개인적으로는 RHEL(레드헷 엔터프라이즈 리눅스), 우분투를 추천합니다. 다른 패키지들도 있지만 업데이트 속도가 느리기 때문입니다.
그리고 꼭 모든 내용을 업데이트 할 필요는 없습니다. 리눅스쪽은 화이트 해커가 많기 때문에 특정 패키지-리눅스종류, 버전, 웹서버, DB서버, PHP... 등의 버전을 고정시키고 최대한 빨리 트러블 슈팅을 할 수 있도록 스크립트와 여러 에러 복구 상황에 대한 메뉴얼을 만들어 둡니다.
레퍼런스가 될만한 서적(1탄에서 소개시켜드린 책들)들을 꽂아 두고 언제든 찾을 수 있도록 한번 정도는 정독해 둡니다.
2. DB 관리자가 된다.
- 사실 스크립트 걸어 놓고 3~일주일간 탱가 탱가 하면서 DB 백업만 해줘도 5천만원 이상씩은 받을 수 있는 프리렌서가 될 수도 있습니다.
DB는 정말 소중하지만 국내 서버 뚫리는 거 뉴스에 나오는거 보세요. 사실 뉴스에 나오는거 자체가 쉽지 않습니다. 그런데 나오고 있다는 건
그만큼 명백하게 뚫리고 정보 망이 허술해도 DB 관리자들은 다 먹고 살고 있다는 뜻입니다. 아니, 이젠 보안쪽 직업군도 많아져서 그쪽으로
넘겨버리면 되니까요. DB는 튜닝이 80% 이상입니다. DB 튜닝 잘하면 몇억주고 살 컴퓨터 안사도 되게 만들수도 있습니다. 사실 빈번하게 호출
되고 그 호출된 곳에서 다시 호출하는 구조로 되어 있는 DB를 리니어하게만 만들어도 오버헤드를 줄일 수 있습니다.
그러면 관련 네트웍장비, 서버, H/W적인 부대 장비들도 아낄 수 있는 것입니다.
3. 자격증의 고수가 된다.
사실 리눅스도 고급 자격증이 많습니다. 비록 회사에서 하는 거고 그 회사가 언제 망하거나 sun사 처럼 오라클에 흡수 되거나 될지는 모릅니다. 제가 SCJP땄는데 썬이 오라클에 흡수 되면서 오라클에서는 다른 자격증이 되어 버렸습니다. 물론, 나 SCJP땃소 하면 되지만 아는 사람들은 또 오라클에서 땃는지 물어 볼 수도 있는거죠. 뭐 사실 자바 잘하는 거랑 자격증이랑 거리는 멉니다만. 믓튼, 여러 자격증이 있으면 (CISCO꺼 포함) 기업체에 들어가거나 들어갔을 때 가산점이 됩니다. 사실 트러블 슈팅을 프로젝트 식으로 맡기거나 어떤 직책을 주려고 하는데 뭐뭐 하는지 일일 물을 수도 없으니 자기 PR용으로 여러개 들고 있으면 얘는 리눅스쪽은 잘 하는 구나 해서 맡깁니다. 사실 리눅스랑 유닉스랑 같다고 생각하기 때문에 ....
4. 임베디드 리눅스.
사실 리눅스 만으로는 먹고 살기 힘든 세상입니다. 그런데 임베디드 리눅서는 사실 H/W 지식도 빠삭한 사람이 대부분 입니다. 임베디드 리눅스 잘한다 싶으면 타켓보드를 바탕으로 보드 디자인 하고(대부분ARM계열), 리눅스 패치해서 포팅해서 올리고 디바이스 드라이버 커스터마이징해서
하드웨어 살리고 부팅해서 네트웍 장비로 쓸 수 있는 어플을 짜진 않아도 고쳐서 올릴 정도는 되어야 인정해 줍니다. 사실 임베디드 분야는 세분화 하기 힘든게... 응용 프로그램 짜려고 해도 하드웨어를 알아야 하고 하드웨어 알다보면 디바이스 드라이버 짜는거 따라가고... 그러다 보면 리눅스를 알게 되는거죠. 뭐, 적은 메모리에 올리려고 하다보니 메모리 종류도 알게 되는 거고 실행 패턴도 알게 되는 거고 그러다 보면 OS 공부하게 되는 거고 리눅스 뿐만이 아니라 uC/OS-II(이젠 쓰리)도 포팅해 보는 거고... 포팅하다보면 재미 들려서 납땜하게 되고 납땜하다보면 임베디드 보드 만들어 보게 되고... 그러다보면 ORCAD로 회로도 한번 그려보게 되고 FPGA에 로직도 프로그래밍 해보게 되고
뭐 그런 겁니다... 종착역이 http://www.homebrewcpu.com/ 여기죠. TTL침 꽂아서 CPU 만들고 거기다가 운영체제 올리고 웹서버 만든거 돌리게 되는...
자 ~ 쭉 나열해 봤습니다. 그런데 4번의 경우 어떻게 될까요? 다른 사람들 위해 열나 일하다가 책 만드는 집필자나 교육자로 빠질 수 밖에 없는 구조 입니다. 정말 수석 개발자를 키울 요람이 없죠. 3번의 경우 자격증 종류도 모르는 사람들이 다 PM으로 앉아 있습니다. 실컷 따놔도 소용이 없어요. 2번의 경우 TO가 안납니다. 자리가 없다는 거죠. 뭐 상용 DB 깔고 기술 지원 받고(워낙에 비싸니까). 그 자리에는 자기가 잘 아는 사람(가족이나 친척이나... 뭐...) 앉히는게 우리나라 기업이고 사장 마인드 입니다. 1의 경우는 요즘 개발자들 워낙 잘 하니까 개발 시키면서 리눅스 관리도 시키는게 다반사죠.
그럼 정말 암울한가?
그냥 제 생각일 뿐이예요. 아마 다 틀렸을 겁니다.
언제든 기회는 오지만. 어줍잖은 지식듣고 입코딩 하는 관리자들 쌔고 쌨습니다. 그거 그냥 이렇게 하면 되잖아 하면서...
그래서 진짜 엔지니어가 되기 위해서는 싸울줄도 알아야 합니다. 그런 관리자들이 시키는 것들은 잘 받아치는.
저 같은 경우 어떤 것을 구현하라고 시키면 일단 일정을 길게 잡습니다. 왜냐면 위의 개발자가 일정이 얼마 걸리는지 산출할 수가 없기 때문에 저에게 늘 묻거든요. 일주일 걸릴거 두달 걸린다고 합니다. 그럼, 왜 이렇게 오래 걸리냐고 합니다. 그럼 지금 까지 트러블 슈팅했던 내용들 떠들어 주면서 막 말합니다. 잘 받아 치는 경우도 있지만 입으로 개발하는 사람들은 지식이 얇아서 배터리가 얼마 못 갑니다.
그리고 전 개발해도 어렵게 개발합니다. 다른 소스들 다 뽕짝해 놓고 잘 알지도 못하게 해놔요. 그리고 소스 관리툴을 이용하는 것우 버전 업 할 때마다 쓸대 없는 모듈들도 지우거나 고칩니다. 뭘 고쳤는지 모르게요. 하지만 인수인계 할 때는 아름다운 후배님이 오시면 앉혀놓고 핵심을 가르쳐 줍니다. 이러이러 하다고 이건 이렇게 한 거고 이런 마인드로 만들었으니 소스 정리 하고 싶으면 내가 정리해주고 가겠다고.
그리고 깔끔하게 그 프로젝트에서 손 땝니다. 아름다운 후배님이 없을 때는 저를 다시 부르거나 업뎃은 포기해야 하겠죠.
세상은 상대적인 겁니다. 세상에 윈도우가 없었다면 리눅서들 세상이었을 것입니다. 진정한 엔지니어는 엔지니어 그룹을 만나기 전까지 어줍잖은 사람들과 싸울 의무도 있습니다.
하지만 늘 오픈 마인드를 해야 할 것인지 고민해야 합니다.
리차드 스톨만이 빌 게이츠 보다 덜 존경 받을 까요? 빌 게이츠 물론 기부 많이 하는 부자라 저도 좋아라합니다.
하지만 크게 봐서 인류가 누구 때문에 얼마나 진보했냐고 보면 빌 보다는 리차드에게 손을 들어 주고 싶습니다.
리차드 때문에 인류는 더 진보했습니다.
그래도... 가족도 좀 생각해야죠. 인류를 위해서만 살건 아니니까 진짜 멋진 사람들을 위해 우리 엔지니어의 길을 보호해야 합니다.
헛소리가 길어 졌네요.
리눅스 웹서버를 깔고 외부에서 접속할 수 있도록 구축해 보세요.
꼭 KT에서 고정 IP를 받지 않아도 IP를 고정시킬 수 있는 툴도 존재 합니다.
윈도우 밀지 않아도 토렌토를 통해서 VMWARE 받으시면 윈도우에서도 돌릴 수 있습니다.
방화벽 설정을 절대로! 쉽게 생각하지 마시고 될수 있는한 방화벽 설정에는 고수가 되어 보세요.
그렇게 윈도우에서 자신이 띄운 VMware 리눅스에 접속이 되면
PC 방 가서도 한번 접속해 보시고.
자신은 리눅서가 되었다고 선언하셔도 좋습니다.
웹서버 구축하셨으면 FTP로 FTP 서버 구축해 보시구요. 만들어진 홈페이지 들고오셔서(인터넷으로 받거나
웹 긁어오는 프로그램 있습니다-근래엔 잘 안먹지만 후진 쇼핑몰 찾아보세요) 한번 자신의 웹서버에 깔아 보세요
없으면 제로보드 요샌 웹 통합으로 나오니까 그거 까셔도 되고 테터툴즈 아직 구할 수 있으니까 그거 깔아 보셔도 되구요.
그리고 java script, PHP, mysql연동, jsp 환경 구축하셔서 실행하면서 조금 고쳐보시구요.
하는 김에 플레시 제작도 한번 해 보시고 어도비 툴 사용법도 좀 익히세요. 프리미어나 베가스로 동영상 편집도 한번 해보긍...
이러는 사이에 당신은 이미 리눅서~
사실 많이 해보고 익숙해지는게 가장 좋습니다.
다 해보시면 결국 제가 1탄 때 말한 root를 따면 된다는 이해하실 거여여.
다음 강좌부터는 인터넷에 돌아다니는 root 따는 법(이제는 더 이상 안 먹히는)을 정리해 보겠습니다. 안 먹혀도 공부는 해야 하니까요.
아아! 정말 눈물나게 감동적인 글입니다!
답글삭제뭐 이런 글이 다있는지!
언제 한번 만나서 직접 이야기를 듣고 싶네요!
gogoleonardo@gmail.com제 이메일입니다.
물론 저는 이분야는 아무것도 모르는 무지몽매한입니다.
그냥 지나가다 무슨 장문의 글이 써져있길래 한번 읽어 보았는데
눈물을 뿌리고 말았습니다.
당신은 진정 프로요!
^^ 답글로 대체 합니다. 쿨 소프트에 썼던 글을 옮겨 놓은 것 뿐이예요~ 블로거 있으심 이웃이라두...
답글삭제