정말 오래간만에 아크비스타에 위드블로그(Withblog) 캠페인 포스트를 올리네요.

저는 개발자가 아닙니다. 하지만 소개 페이지에서도 나타낸 것처럼 개발을 배우고 싶어하는 학생입니다. 윈도우 환경에서 C/C++ 에 대한 기초적인 문법을 배우고 현재 TCP/IP 소켓 프로그래밍에 대한 것을 배우고 있습니다. 이런 제가 리눅스 환경에서의  개발 방법을 배운다는 것은 조금 이른 느낌이 들기도 하고, 무엇보다 관련 지식이 부족해 잘 하지 못하는 부분입니다.

2010-10-01 13.20.11 [50%]

그런 상황에서 덜컥 ‘유닉스 리눅스 프로그래밍 필수 유틸리티’(개정판)의 리뷰어로 뽑혀서 책을 읽게 되었습니다. 시험 기간이라 틈나는대로 읽긴 했지만 평소보다 충분히 읽을 수 없어서 아쉬웠습니다.

_b_1759

기존에 접할 수 있는 도서들은 초급자를 위한 윈도우 프로그래밍(또는 윈도우 운영체제 환경에서 동작하는 프로그래밍) 들이 대부분입니다. 저는 구체적인 리눅스 개발 방법을 접한 것은 이 책이 처음이네요.

리눅스에서 개발을 잘하고 싶은가? 그렇다면 이해하려고 노력하기 바란다. 필자의 주위를 둘러보면 윈도우 환경에서만 개발하다 어떤 이유로 리눅스 개발 환경에 발을 들인 사람이 있다. 비교적 적응을 잘하는 사람이 있는가 하면, 계속 윈도우와 비교하며 툴툴거리다 결국 모든 것을 부정하고 윈도우 환경으로 되돌아가는 사람도 있다.

안타까운 일이다. 운영체제가 무슨 잘못이 있겠는가? 적어도 유닉스는 윈도우보다 30년 전에 세상을 지배했었고, 오늘날에도 리눅스와 함께 건재함을 과시하고 있다. 이런 역사적 사실은 외면하고 윈도우만 겨우 배워 윈도우만 옳다고 이야기하는 것은 무지의 소치로밖에 볼 수 없다. 필자는 이 책을 읽는 사람들이 리눅스 개발 환경을 잘 이해해서 필자가 느끼는 리눅스 개발 환경의 즐거움을 함께 공유하기를 바란다.

책의 1장_ 튜토리얼 부분에 나오는 저자의 말 – 유닉스 리눅스 프로그래밍 필수 유틸리티 개정판

이 책의 저자인 백창우 님 말씀처럼 개발에 대한 것이라면 운영체제를 가리지 않고 배우는 자세가 필요하다고 생각합니다. 이 책에서 알려주는 것 처럼, 먼저 리눅스 운영체제를 이해해야 하는데 그러기 위해서는 특유의 문화나 분위기에 대한 선행학습이 필요한 것 같습니다. 그 시간이 결코 짧지는 않겠죠.

178

저는 마이크로소프트의 윈도우 운영체제, 특히 개인용 사용자를 위한 제품(Windows Vista, 7 등)을 리뷰하고 이야기를 나누는 블로거입니다. 아시다시피 윈도우 OS를 상당히 좋아하고 즐겨 사용하죠.

Terminal

그러다 보니 콘솔 창을 열어서 리눅스 쉘을 사용하는 것이 참 어색합니다. 습관이 무서운 것이란 사실을 다시 깨닫게 되는 순간이죠.

이 책(유닉스 리눅스 프로그래밍 필수 유틸리티)은 이런 리눅스(유닉스) 쉘에서 vim, make, gcc 등을 사용하는 법을 알려줍니다. 기존에 윈도우 환경에서 개발하던 사람들에게 리눅스로 개발하려면 구체적으로 어떻게 해야 한다는 것을 말해주는 책입니다.

2010-10-01 13.20.31 [50%]

이 책의 구성은 출판사 웹 사이트에서 확인하실 수 있습니다.

뛰어난 프로그래머는 좋은 유틸리티를 적재적소에 사용할 줄 안다
프로그래머는 누구나 도구를 쓰며, 훌륭한 프로그래머는 적재적소에 도구를 사용할 줄 안다. 유닉스/리눅스 프로그래밍을 위한 도구는 많지만, 이에 대한 체계적인 안내서가 없었다. 이 책은 프로그래밍을 쉽게, 프로그램을 견고하게 만들려면 무엇을 써야 하는지 알려준다. 이 책에서는 유닉스/리눅스 프로그래머들이 필수로 알아야 하는 vim, gcc, gas, binutils, gdb, ddd, make, svn, autotools, autoconf, automake 등 다양한 도구를 활용하는 방법을 실용적인 예제로 설명한다.

  • vim 기초 사용법과 실제로 많이 사용하는 고급 사용법
  • ctags, cscope를 사용한 소스 분석 기법
  • gcc 컴파일 과정과 최적화된 컴파일 방법
  • gdb, ddd를 이용한 기초 디버깅 기법과 고급 디버깅 기법
  • gas를 이용한 GNU 어셈블러 익히기
  • binutils를 이용한 바이너리 조작법
  • make의 기초 활용법과 고급 활용법
  • autoconf, automake를 사용한 여러 시스템에서 이식 가능한 프로젝트 작성법
  • 원활한 팀 프로젝트 운영을 위한 CVS, Subversion 사용법
  • rpm, deb를 이용한 패키지 관리법

2010-10-01 13.20.58 [50%]

책의 구성에서 아실 수 있겠지만 프로그래밍을 위한 ‘에디터 사용법’부터 ‘컴파일러 사용’ 그리고 ‘패키지 관리법’까지 알려주고 있습니다.

책의 저자인 백창우님이 알려주시는 소개 동영상이 있네요.

유닉스 리눅스 프로그래밍 필수 유틸리티(개정판)

학교 수업에서도 유닉스(리눅스) 과목이 있습니다. 아직 듣지는 않았는데요, 가능하면 이 책에서 나오는 것처럼 프로그래밍과 연관해서 컴파일이나 디버깅 유틸리티를 추가적으로 배우면 어떨까 하는 생각이 듭니다. 이 책에서는 리눅스 운영체제를 가능한 한 많이 사용해 보고 자주 다루어 보는 것이 중요하다고 알려줍니다.

제법 두꺼운 책이라 시간날때마다 자주 들여다 봐야겠습니다.

,