이전

리뷰 (13)

한줄평
평점 분포
  • 리뷰 총점10 85%
  • 리뷰 총점8 15%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 0.0
  • 40대 9.0
  • 50대 10.0
리뷰 총점 종이책
저자의 자신감과 통찰력이 빛나는 문장이 좋습니다.
"저자의 자신감과 통찰력이 빛나는 문장이 좋습니다." 내용보기
이제 막 공부를 시작하는 늙은 학생입니다. 컴터에 관심이 많기도 하고 하고 있는 일과 연관성도 있고 해서 프로그래밍을 공부하고 있는데 이 분야의 책들은 옥석이 분명하더군요. 특히 번역서들 중에는 한글이 이렇게 해석이 어렵나 할 정도로 난해한 문맥들이 많았습니다. 성질나서 나중에 공부다하고 이해도가 높아지면 제가 한번 써 봐야 하겠다 할 정도로요.. (농담입니다.) 이 책은
"저자의 자신감과 통찰력이 빛나는 문장이 좋습니다." 내용보기

이제 막 공부를 시작하는 늙은 학생입니다. 컴터에 관심이 많기도 하고 하고 있는 일과 연관성도 있고 해서 프로그래밍을 공부하고 있는데 이 분야의 책들은 옥석이 분명하더군요. 특히 번역서들 중에는 한글이 이렇게 해석이 어렵나 할 정도로 난해한 문맥들이 많았습니다. 성질나서 나중에 공부다하고 이해도가 높아지면 제가 한번 써 봐야 하겠다 할 정도로요.. (농담입니다.) 이 책은 그런면에서는 발군입니다. 제가 아직 이 분야에대한 깊이가 없어서 내용의 질이 어느정도인지 평가할 입장은 아니지만 저같이 기본도 없고 컴터에 관해서 아는 것이 일천한 사람이 읽어도 이해되는 부분이 많다는 것은 저자의 이 분야에 대한 경험과 공부에서 우러나오는 통찰력 때문이 아닌가 합니다. 어제 책을 들여다 보다가 하도 흐뭇해서 일부러 저자의 홈페이지를 찾아보고 이렇게 일부러 찾아와 서평을 쓸 정도의 의욕이 생겼습니다. 다음에도 더 좋은 책 부탁합니다. 책 서문에는 다시는 책을 쓰지 않겠다고 맹세를 해 놓으셨던데..... 그러지 마시고 많은 후학들을 위해 가지고 계신 통찰을 "순순히 내 놓으신다면 유혈사태는 ..." 하하. 이것도 역시 농담입니다. 

s****s 2011.05.23. 신고 공감 3 댓글 0
리뷰 총점 종이책
유틸리티 책중에서 정말 괜찮은 책
"유틸리티 책중에서 정말 괜찮은 책" 내용보기
개정판 이전의 책을 학교 도서관에서 잠깐 본 뒤로 이 책을 잊고 있었다.그러다가 최근 기회가 되어서 다시 이책을 보게 되었다. 기존에 나온 국내 도서 중에서 유닉스/리눅스 계열의 프로그래밍 유틸리티들을 정말 많이 설명하고 있다고 평가하고 싶다. 책의 전반적인 내용들은 주로 개발과 관련된 내용으로써 컴파일과 링킹, 디버깅, 에디트, 빌드를 비롯하여 버전관리 프로그램까지 유
"유틸리티 책중에서 정말 괜찮은 책" 내용보기

개정판 이전의 책을 학교 도서관에서 잠깐 본 뒤로 이 책을 잊고 있었다.

그러다가 최근 기회가 되어서 다시 이책을 보게 되었다. 기존에 나온 국내 도서 중에서 유닉스/리눅스 계열의 프로그래밍 유틸리티들을 정말 많이 설명하고 있다고 평가하고 싶다.


 책의 전반적인 내용들은 주로 개발과 관련된 내용으로써 컴파일과 링킹, 디버깅, 에디트, 빌드를 비롯하여 버전관리 프로그램까지 유닉스/리눅스 환경에서 주로 쓰이는 굵직굵직한 유틸리티들을 다루고 있다. 


 책의 용도는 짬짬히 코딩하다가 참고하는 용도나 컴파일러, 링킹, 그리고 실행파일 포맷, 디버깅에 대해서 기본적으로 알아야 할 것에 대해서 학습하고 싶은 사람들에게 적당한 것 같다. 유닉스 리눅스 계열의 유틸리티 도서가 윈도우에 비해서 상대적으로 별로 없어서 그런지 같은 출판사의 윈도우 유틸리티 책 보다 좀 더 괜찮다는 느낌이 든다. 또한 책의 중간중간에 저자가 터미널로 실행한 실행화면이 포함되어 있어서 보다 의미전달이 명확하다는 느낌이다.


 개인적으로 책의 설명중에서 가장 유익했던 내용은 gcc나 gdb와 관련된 내용이었다. 책의 저자가 과거에 개발했던 컴파일러 개발과 관련된 경험 덕분인지, gcc의 동작원리나 사용법, 그리고 옵션에 대해서 정말 잘 알고 있다는 느낌을 받았고, 자연스럽게 이어지는 컴파일, 링킹 과정에서의 세세한 동작들,  그리고 시스템 프로그래밍의 전반적인 부분에서 적절한 설명과 예시가 들어가 있었다는 점에서 유익한 내용이었다.


 가령 예를 들어서 컴파일 과정에서 생성되는  gimple 트리를 확인하는 부분이 매우 흥미로웠다.  for 문이 컴파일되면서 goto문으로 이루어진다는 사실 말이다.  또한 그 뒤에 나오는 ssa파일을 만드는 단계 또한 컴파일러의 동작 결과를 직접적으로 느낄 수 있는 지면을 제공해줬다는 점에서 매우 고마웠다.


 책을 읽으면서 아쉬운 부분은 172page에 나오는 함수의 원형과 관련된 설명이다.  함수의 원형이 먼저 선언이 되어 있어야 함수 호출이 가능한 것처럼 설명이 되어 있는데, 대부분의 C언어 컴파일러에서는 함수의 원형이 선언이 되어 있지 않아도 암시적으로 호출이 가능하게 끔 되어 있다.  필자도 그것에 대해서 잘 알고 있는 듯 하지만, 뒤에 가변인자와 관련된 설명에 있어서 예시를 들은 printf의 사례는 좀 부적절했다고 생각을 한다.  가변인자 함수라고 해도 함수의 원형이 없어도 충분히 호출이 가능하기 때문이다.


 또한 463page에 언급이 된  "모든 프로세스는 실행될 때 위와 같은 4기가 바이트의 가상 주소 공간을 가진다." 라는 내용은 어디까지나 32bit 운영체제에서 통용되는 이야기이다. 이 부분은 누구나 다 아리라고 판단이 되지만 약간 잘못 받아들여질 여지가 있지 않나 싶다. 필자도 알고 있었겠지만 약간의 보충 설명이 있었으면 더 좋았을 거라고 생각한다.


  465page 이후는 주로 스택프레임과 관련된 내용이 설명이 되어 있다.  살펴보니 c의 함수 호추 규약인 cdecl 을 기준으로 맞춰져 있다.  엄연히 이야기해서 thiscall, fastcall 등과 다른 약간 다른 방식으로 스택프레임이 만들어지기 때문에 설명을 할때 어느정도 언급이 필요하지 않을까 생각한다.  그리고 함수 스택프레임을 이루는 과정에 있어서 프롤로그와 에필로그에 대한 설명 또한 부족하다.

 

  에디트는 주로 vim을 다루고 있으며, 따라서 vim을 주로 쓰는 사람들에게는 충분히 유용한 정보가 담겨 있다고 생각한다. 나의 경우 팁이 매우 유용하게 느껴졌다.


  책을 읽으면서 저자에게 책을 써줘서 굉장히 감사하다고 말하고 싶다.  간만에 비빔밥처럼 필요한 영양이 골고루 들어 있다는 느낌이랄까.  

YES마니아 : 플래티넘 n***z 2013.01.24. 신고 공감 1 댓글 0
리뷰 총점 종이책
유닉스 C프로그래머의 입문필독서
"유닉스 C프로그래머의 입문필독서" 내용보기
한빛 미디어 필수 유틸리티 시리즈(1/4) - 유닉스 리눅스 프로그래밍 필수 유틸리티(개정판)* 유닉스 C프로그래머의 입문필독서이번 한빛 미디어 '필수 유틸리티'시리즈의 특징은 소스코드 관리툴(SCM)과 자동 빌드툴, 그리고 유닛 테스터를 각 플랫폼 별로 다루고 있다. 그래서 윈도우/유닉스/자바/이클립스 4개가 하나의 시리즈다. 윈도우 프로그래머로서 생활을 하다가 유닉스 프로그
"유닉스 C프로그래머의 입문필독서" 내용보기
한빛 미디어 필수 유틸리티 시리즈(1/4) - 유닉스 리눅스 프로그래밍 필수 유틸리티(개정판)
유닉스 C프로그래머의 입문필독서

이번 한빛 미디어 '필수 유틸리티'시리즈의 특징은 소스코드 관리툴(SCM)과 자동 빌드툴, 그리고 유닛 테스터를 각 플랫폼 별로 다루고 있다. 그래서 윈도우/유닉스/자바/이클립스 4개가 하나의 시리즈다. 윈도우 프로그래머로서 생활을 하다가 유닉스 프로그래머 생활을 잠시하던 때의 힘들었던 추억을 떠올리며 가장 먼저 '유닉스 리눅스 프로그래밍 필수 유틸리티'를 리뷰해 보았다.

기존에 유닉스 환경에서의 C/C++, GCC, GNU MAKE등의 프로그래밍 환경, 그리고 유닉스 명령어만 가르쳐주는 각각의 책들은 수도 없이 많았다. 그러나 정작 유닉스/리눅스 환경에서 프로그래밍을 하는 모든 개발환경에 대해서 한권의 책으로 모아놓은 책은 거의 없으며 이책이 가장 최고라고 보여진다. 특히 이 책은 유닉스 C프로그래머(시스템 프로그래머)들에게 유용한 책이다. 왜냐면 JAVA로 유닉스에서 프로그래밍 할 수도 있는데 그럴 경우에는 '자바 프로그래밍 필수 유틸리'를 보면 되기 때문이다.

처음에는 간단한 C프로그램을 만드는 과정으로 시작한다. 에디팅, 컴파일, make, 디버깅, SVN버전관리, doxygen문서화, autotools 빌드, RPM패키징 이러한 일련의 튜토리얼을 보여주고 본론을 시작한다. 튜토리얼이 끝나면 시작은 가장먼저 익숙해 지기 힘든 VI 에디터로부터 시작한다. 이것은 인터넷에 자료가 많은 부분이다. 그렇지만 정말 방대하게 다룬다.

두번재는 컴파일과 링킹인데, GCC만 다루는 것이 아니라 LD, 그리고 ELF바이너리 구조, GAS 어셈블러, 바이너리 유틸리티 까지 다루는데 여기까지만 보아도 이책을 산 것에 대해서는 만족을 느낄수 있는 부분이다. 

세번째는 디버깅인데 GDB와 함께 DDD라는 GUI디버거를 소개하고, 사용법을 알려준다. 진짜 감동적인 것은 코어파일, 실행중인 프로세스, 멀티프로세스, 멀티쓰레드 프로그램에 대한 디버깅 방법을 저자의 경험에 입각해 잘 알려준다는 것이다. 그리고 기타 디버그 툴에 대해서도 설명한다.

네번째는 드디어 유닉스 프로그래밍 환경의 핵심인 MAKE와 AUTOCONF를 설명해 준다. 사실 MAKE는 어느정도 정보가 많으나 AUTOCONF는 configure라는 파일의 이름으로 되어 있어서 어느 책에서 찾아봐야 되는지도 불명확하고 man page로만 간간히 배웠었는데 이번 책에서 다루어 주어 너무 감사했다.

이후는 다른 책에도 자주 다루어지는 CVS, SVN에 대한 내용이 있고, QT, GTK를 이용한 GUI프로그래밍/소켓 네트워크 프로그래밍 예제를 잠시 보여준다. 부록으로 VIM, GCC, AUTOCONF에 대한 옵션과 매크로가 깔끔하게 정리되어 있다.

전체적으로 저자의 경험과 깊이가 느껴지는 책이며, 윈도우/자바 프로그래머에서 유닉스 프로그래머로 이직하는 사람들에게 적합하며, 유닉스 프로그래머 신입에게도 필독을 권한다.
j****2 2010.11.29. 신고 공감 0 댓글 0
리뷰 총점 종이책
유닉스 리눅스 프로그래밍을 할 때 정말 좋은책
"유닉스 리눅스 프로그래밍을 할 때 정말 좋은책" 내용보기
이 책을 읽게 되어 기쁘다. 정말 좋은 책이다.   윈도우 환경에서 이클립스로 IE에서 돌아가는 웹 프로그램을 개발하면서 화려한 화면과 마우스 클릭만으로도 많은 것이 자동으로 이뤄지는 IDE에 길들여진 나에게 유닉스, 리눅스의 까만 화면은 그야말로 암흑 그자체였다. 학부시절 VI로 C언어를 컴파일하고 소켓통신 프로그램을 만들때 윈도우 보조 프로그램의 메모장을 얼마나 그리
"유닉스 리눅스 프로그래밍을 할 때 정말 좋은책" 내용보기

이 책을 읽게 되어 기쁘다.

정말 좋은 책이다.

 

윈도우 환경에서 이클립스로 IE에서 돌아가는 웹 프로그램을 개발하면서 화려한 화면과 마우스 클릭만으로도 많은 것이 자동으로 이뤄지는 IDE에 길들여진 나에게 유닉스, 리눅스의 까만 화면은 그야말로 암흑 그자체였다. 학부시절 VI로 C언어를 컴파일하고 소켓통신 프로그램을 만들때 윈도우 보조 프로그램의 메모장을 얼마나 그리워했었는지 모른다.

 

모르는게 죄다.

진작에 이 책을 만났더라면...

 

이 책은 vim, make, gcc 에서 부터 svn까지 말 그대로 필수 유틸리티에 대해 자세하게 설명하고 있다.  이 책이 훌륭한 이유는 unix나 linux의 유틸에 대한 소개와 사용법 그리고 명령어들만의 나열이 아닌, 어떻게 구성이 되어있고  어떠한 과정으로 실행이 되는지 까지를 다루고 있기 때문이다. 일례로 이 책의 2장의 2장의 vi에 대한 부분을 보면 되돌리기 명령 u에 대해 설명하는데 실제 레지스터에 어떤 식으로 저장되는지 또한 되돌리기와 이전 작업으로 돌아가기가 어떻게 다른지 등을 알기쉽게 설명하고 있어 단순히 외워야할 명령어가 아닌 한번 더 생각해보고 음미할 수 있는 기회를 준다.

 

가장 즐거운 마음으로 읽었던 부분은Debugging 부분이었다. 사실 디버깅 또는 테스트 분야는 실제 맨땅에 헤딩하며 실제로 경험해 보지 않으면 디버깅의 중요성이나 어떻게 하면 효과적으로 이러한 기능을 사용할 수 있는지 알기가 어렵다. gdb를 이용해서 이클립스나 다른 IDE 못지 않은 디버깅 기능을 사용할 수 있다는 것을 알수 있었다. 또한 하나의 파일럿 프로젝트에 대해 실제 디버깅을 실행하며 그 과정의 화면을 보여주고 있어 실습을 통해 익힐 수 있어 좋았다.

 

그리고 항상 왠지 어려울 것만 같은 이름만으로도 살짝 긴장하게 만드는 make에 대한 설명과 gcc 컴파일러에 대한 내용도 아주 유용했다. gcc 구조 및 컴파일이 어떻게 이루어지는지 또한 컴파일을 할 때 최적화 하기위한 방법은 무엇인지도 다루고 있다.

 

개정판인만큼 더욱 충실한 내용과 책에 오타도 거의 찾을 수 없었고 깔끔한 구성도 이 책의 장점이다.

 

나와같이 윈도우에만 길들어져 까만화면 울렁증이 있는 개발자에게 이 책은 최고의 사수이자 선생님이자 친구가 되어줄 것이다.

진심으로 강추한다!

YES마니아 : 로얄 i******8 2010.10.18. 신고 공감 0 댓글 0
리뷰 총점 종이책
리눅스에서 개발을 해보고 싶은데...뭘 어떻게 해야 할지 모를때...
"리눅스에서 개발을 해보고 싶은데...뭘 어떻게 해야 할지 모를때..." 내용보기
리눅스 환경에서의 프로그램 개발일을 해보고 싶다라는 생각은 항상 갖고 있었지만..쉽사리 접근하지는 못했었습니다...그 원인중에 가장 큰게...개발에 필요한 유틸리티들에 대한 접근이 너무나 어려웠습니다.공개된 자료들이 많이 있기는 하지만...아무래도 매번 인터넷창을 띄워서 자료들을 찾는데에도 한계가 있었습니다.게다가 한동안 손을 떼고 있으면...다시 백지장과 같은 상태가
"리눅스에서 개발을 해보고 싶은데...뭘 어떻게 해야 할지 모를때..." 내용보기

리눅스 환경에서의 프로그램 개발일을 해보고 싶다라는 생각은 항상 갖고 있었지만..
쉽사리 접근하지는 못했었습니다...
그 원인중에 가장 큰게...개발에 필요한 유틸리티들에 대한 접근이 너무나 어려웠습니다.
공개된 자료들이 많이 있기는 하지만...아무래도 매번 인터넷창을 띄워서 자료들을 찾는데에도 한계가 있었습니다.
게다가 한동안 손을 떼고 있으면...다시 백지장과 같은 상태가 되어버리는일이 다반사였습니다.

 

이 책을 접하고...개발에 필요한 유틸리티들의 설명과 상세한 사용법을 하나하나 읽어가면서...
리눅스라는 환경에서 꼭한번 개발을 해보고 싶다라는 생각이 더 들게 되었습니다...

 

아직 완전히 익숙해 지지는 않았지만...
기본적인 유틸리티들을 하나씩 익혀가고 있습니다...

좀더 익숙해지면 주된 개발일을 리눅스/유닉스 환경에서 해보고 싶은 마음이 들었습니다...

 

예전에도 그랬던것처럼...필수유틸리티 시리즈 책은 실망은 없었던것 같습니다...
저 처럼 처음 시작하는 사람에게는 아주 친절한 가이드북이 아닐까 싶습니다.

 

r***f 2010.10.13. 신고 공감 0 댓글 0
리뷰 총점 종이책
프로젝트를 시작하거나 머릿속을 정리하실 분들에게 추천합니다.
"프로젝트를 시작하거나 머릿속을 정리하실 분들에게 추천합니다." 내용보기
한동안 자바개발을 하면서 그때 그때 필요한 것들만 배우고 작업에 임했기에 vim이나 make등을 쓰고 몇번의 다른 프로젝트를 지나서 다시 만나면 늘 가물거리는 기억의 불씨를 되살리는 일을 반복했었습니다.   이 책은 저같이 실무로 부딪히면서 조금씩만 업무에 적용했던 분들이나 체계적으로 리눅스상에서 작업을 공부하시는 분들에게 정말 필요한 책이라 생각합니다.     저
"프로젝트를 시작하거나 머릿속을 정리하실 분들에게 추천합니다." 내용보기

한동안 자바개발을 하면서 그때 그때 필요한 것들만 배우고 작업에 임했기에

vim이나 make등을 쓰고 몇번의 다른 프로젝트를 지나서 다시 만나면

늘 가물거리는 기억의 불씨를 되살리는 일을 반복했었습니다.

 

이 책은 저같이 실무로 부딪히면서 조금씩만 업무에 적용했던 분들이나

체계적으로 리눅스상에서 작업을 공부하시는 분들에게 정말 필요한 책이라 생각합니다.

 

 

저자는 페도라와 우분투상에서 작업을 진행하셨는데

저는 osx상의 freebsd, cent os에서 돌려보았습니다.

 

osx 터미널 환경에서 대부분의 툴은 다 자동으로 설치되어서 참 편했는데

doxygen은 osx용 바이너리가 있어서인지 리눅스 버전은 설치가 잘 안되더군요.

-책의 목적과는 상관없지만 gnu와 freebsd의 install패키지 차이의 문제였습니다.

 

전반적으로 버전이나 환경에 상관없이 이 책이 추구하는 바를 잘 적용할 수 있었습니다.

 

책은 최초에 튜토리얼을 도입해서 이 책이 이야기는 하는 것을 총체적으로 한번 보여주면서 시작을 합니다. -튜토리얼만 봐도 무슨이야기가 있겠구나 한눈에 보이는게 교재로도 손색이 없을 듯 합니다.

 

그리고 각 유틸리티를 소개하고 사용법을 이야기하면서 구조와 동작원리에 대한 친절한 설명이 들어있구요. 실제 필요할 때 찾아보기에도 정리가 잘 되어 있습니다.

 

전반적인 코딩 컴파일 링킹 디버깅 빌드 버전관리로 이어지는 일련의 내용들은 초심자들이나 기본이 가물가물한 사람들에게 프로그래밍을 이해하는데도 도움이 되는 구성입니다.

 

최근에 다시 C쪽 작업도 많이 해야하는 상황에서 생각도 정리하고 작업에 도움이 많이 되었습니다.

 

유틸리티는 유용한 도구들의 칭하는 말입니다.

적지않는 두께지만 자세히 설명하는데는 한계가 있습니다.

그래서 취할 것을 명확히 취하는 책을 보면서

저자가 이 책을 쓰면서 들었던 노고에 박수를 보냅니다.

g******i 2010.10.11. 신고 공감 0 댓글 0
리뷰 총점 종이책
필수라는 말이 어울리는 책
"필수라는 말이 어울리는 책" 내용보기
필수라는 말이 어울리게 꼭 필요한 유틸리티 위주로 설명되어 있습니다. 게다가 아주 쉽게 설명되어 있어서 누구나 따라할 수 있습니다.   설명되는 유틸리티 간에 연관성을 갖고 있으면서도 각각의 유틸리티는 독립적이어서 순서대로 하나 하나 따라하며 읽어도 되고 필요한 부분만 콕 찝어서 읽어도 되게 편집도 잘 되어 있는 것 같습니다. (개별적으로 동작하는 작은 유틸리티의
"필수라는 말이 어울리는 책" 내용보기

필수라는 말이 어울리게 꼭 필요한 유틸리티 위주로 설명되어 있습니다.

게다가 아주 쉽게 설명되어 있어서 누구나 따라할 수 있습니다.

 

설명되는 유틸리티 간에 연관성을 갖고 있으면서도 각각의 유틸리티는 독립적이어서 순서대로 하나 하나 따라하며 읽어도 되고 필요한 부분만 콕 찝어서 읽어도 되게

편집도 잘 되어 있는 것 같습니다.

(개별적으로 동작하는 작은 유틸리티의 모음은 리눅스의 특징이기도 하죠)

 

한가지 아쉬운 점은 최근에 나온 책이지만 유틸리티나 개발환경에 사용된 버전이 좀 지난 버전이라는 것입니다.

개정판인데 이 부분은 최신으로 바꾸지 않은 것 같습니다.

 

진작에 이 책을 알았다면 처음 리눅스 환경에서 개발하며 격었던 어려움을 줄일 수 있었을 것 같은데...

뒤늦게라도 읽게되어 다행입니다. 아직도 모르는게 너무 많으니까요.

유닉스/리눅스 환경에서 개발하시는 분들은 한 권씩 가지고 있어야 할 입문서이자 필독서라고 생각합니다.

d******s 2010.10.11. 신고 공감 0 댓글 0
리뷰 총점 종이책
유닉스 리눅스 프로그래밍 필수 유틸리티를 읽고....
"유닉스 리눅스 프로그래밍 필수 유틸리티를 읽고...." 내용보기
1.서론   본 서적은 제목에서도 확 느껴 지듯이 개발자가 아닌 일반 적인 유저가 참고할 만한 도서는 아니고 개발자들이 옆에 끼고 책의 내용이 의식하지 않고 몸에 익혀질 때 까지 참고하는 도서입니다. 일반 윈도우 기반의 개발 플랫폼에서 처음 개발을 시작한 개발자들이 유닉스, 리눅스 플랫폼으로 쉽게 옮겨 가지 못하는 큰 이유중의 하나는 직관적인 UI의 마우스 클릭에 너무 익
"유닉스 리눅스 프로그래밍 필수 유틸리티를 읽고...." 내용보기

1.서론

 

본 서적은 제목에서도 확 느껴 지듯이 개발자가 아닌 일반 적인 유저가 참고할 만한 도서는 아니고 개발자들이 옆에 끼고 책의 내용이 의식하지 않고 몸에 익혀질 때 까지 참고하는 도서입니다. 일반 윈도우 기반의 개발 플랫폼에서 처음 개발을 시작한 개발자들이 유닉스, 리눅스 플랫폼으로 쉽게 옮겨 가지 못하는 큰 이유중의 하나는 직관적인 UI의 마우스 클릭에 너무 익숙해져 콘솔 기반의 개발 환경에 대한 막연한 두려움이 있기 때문이 아닐까 합니다. 매번 문제가 생길 때 마다 지식검색 물어보고 구글링 해보고 체계가 잡히지 않은 정보에 시행착오도 겪어 보기도 합니다. 특히 개발자에게 있어서 개발 환경 툴의 변경은 포크를 사용하던 외국인에게 한식을 먹어야 하니 갑자기 젓가락을 쥐어준 것처럼 참 배우기 난해합니다. 이미 포크에 익숙해져서 젓가락질 시작하다가. 조금이라도 막히면 다시 쉽게 포크로 손이가고….. 그것을 반복하다 보면 한식 자체가 싫어 지고 다시 양식으로 돌아가고 싶고….

저도 개발자로서 처음 직장생활을 시작하면서 이동통신 기지국 개발을 하면서 사용한 개발환경이 유닉스(솔라리스) 환경이라 처음 막연했던 기억이 납니다. 신입시절 항상 터미널로 접속하여 까만 배경에 커서만 깜박 깜박이고 vi는 왜 그리 헷갈리던지 편집하다 잘못 눌러 이상한 화면에 들어가면 어떻게 해야 할지 몰라 빠져 나오면서 입력 하던 것 날리고 그 당시에 필요했던 내용들이 여기에 다 들어 있네요.

휴대폰 개발로 방향을 바꾸고 5~6년이 흘러 유닉스 개발환경이 잊혀져 갔었는데 요즘 등장한 안드로이드로 인해 다시 리눅스로 돌아오게 되네요. 한동안 잊고 살아서 다 까먹었습니다. 그래서 책을 찾다가 발견했습니다. “유닉스 리눅스 프로그래밍 필수 유틸리티”

이 책의 내용은 어떻게 보면 기능 나열식이라 딱딱해 보이지만 그때그때 찾아 보고 계속 익혀 나가서 마치 워드를 치다가 복사하고 싶으면 아무 생각 없이 ctrl+c를 누르 듯이 자연스럽게 몸에 익혀 질 때 까지 참고하는 도서입니다.

본 서적을 정독하고 수시로 익혀 나간다면 인터넷에서 구글링 하는 시간을 줄이고 그때 그때 아..뭐였지 알았었는데 하면서 계속 찾아 보고 익혀 나가면 어느새 책을 찾는 횟수가 현저히 줄어가는 모습을 보실 수 있습니다. 경험상 많은 개발자들이 모든 Full 기능을 사용하지는 않더라구요. 자신의 일에 따라 많이 쓰는 기능이 생기게 되고 거기에 살을 붙여 나가신다면 많은 도움이 될 것으로 보입니다.

 

2. 책의 구성

 

책의 목차를 리뷰에서 나열 할 필요는 없을 것 같구요.

처음부터 기능 나열을 하면 초보 독자 분들이 기절 할까봐 뭔가 성취하는 느낌을 드리기 위해 저자 분께서 1장 튜토리얼을 구성해 주셨습니다. 즉, 랭귀지 책의 hello world에 해당한다고나 할까요…

개발환경에 대한 큰 리뷰라고 할까요 실상은 공부하기 복잡하지만 간단하게 맛보기 과정으로 초보자에게 코딩-컴파일-디버깅-소스형상관리-레퍼런스 문서 작성법-패키징 등 소프트웨어 개발에서 아주 큰 덩어리의 개념들을 맛보기 과정에서 개념을 심어 주는 공간이 마련되어 있습니다.

2장, 3장은 많은 사람들이 사용하기 어려운 유닉스, 리눅스 환경의 에디터에 관해 설명 하고 이 부분의 많은 커맨드와 단축키에 훅~ 한방에 가버리는 분들이 생길 수도 있겠습니다. 암기 과목이 아니고 체육입니다. 골프 자세 교정 받고, 수영 다니는 것처럼 하나하나 계속 연습에 의해 배우시면 됩니다. 저자 분도 이 부분에 초점을 둔 듯 합니다.

 저 같은 경우 ctags 사용법 등을 다 홀랑 까먹어서 많은 도움이 되었습니다. Vim만 사용하면 키보드만 후두둑 두들기는 일반 편집기와 다름 없지만 부가 기능을 잘 활용하면 마우스에 손안 올리고 빠른 탐색 및 코딩이 가능합니다. 이런 부가 기능에 대한 설명이 일목요연하게 되어 있어 좋았습니다.

요즘 안드로이드로 이클립스도 종종 사용하는데 이클립스 설명은 소개 정도에 그쳐서 아쉬운 면이 있지만 이클립스도 설명하면 책 한 권 이죠^^

4장, 5장은 컴파일러, 링커를 다루고 있습니다. 그냥 아무 생각 없이 make를 누르고 빌드에러만 잡으셨다면 이번 기회에 이 부분을 보시면 아하…이렇구나 많이 느끼실 것 같아요. 물론 기존에 경험이 풍부하신 분들은 아시던 내용일수도 있고 몇 메가 안팎의  소형 프로젝트만 해오신 분들은 딱히 신경 안 쓰시고 해오셨을 수도 있는데 적어도 배우는 입장에서는 몇기가 이상의 대형 프로젝트를 하기 전에 한번쯤 미리 공부하면 많은 도움이 될 내용입니다. 저도 이런 부분 공부를 해본적이 없고 프로젝트 셋업은 다른 사람이 하니깐 그냥 빌드 과정을 기계적으로 했었는데 이번 기회에 도움이 되었습니다.(내용은 좀 딱딱해요^^)

6장, 7장은 GNU 어셈블러와 바이너리 유틸리티를 소개하고 있습니다. 어셈블을 현업에서 사용할 기회가 적고 학생 때 잠깐 본 기억밖에 없는데요. 이 장 같은 경우 제가 잘 몰라서 그런지 옵션 같은 것에 눈길이 잘 안 가서 그냥 편안하게 읽고 지나갔습니다.(분량 할당도 적구요). 바이너리 유틸리티도 현업에서 아직은 사용하고 있지 않아 아..이런 것도 있었네 하는 수준의 소개 정도로 접했습니다. 현업에서 사용하시는 분들도 사용할 수 있도록 몇 가지 기능들에 대한 사용법이 들어 있습니다.

8~10장은 디버깅 툴들에 대한 설명을 담고 있습니다. 시스템 엔지니어 분들의 경우 이 장을 유심히 보시면 많은 도움이 될 것으로 보입니다. 저도 신입시절 기지국 개발에 참여 했을 때 gdb를 잘 몰라서 물어 물어 사용했던 기억이 납니다. 그때 디버깅 잘하는 선배들이 얼마나 부러웠던지…지금은 휴대폰의 경우 별도의 디버깅 장비도 있고 이클립스 상에서 로그도 볼수 있고 해서 현업에서는 잘 사용하지 않지만 디버깅 유틸리티의 how-to가 들어 있어서 적어도 한번 읽어 놓고 나중에 아하…그거 하고 찾아볼 정도가 되면 많은 도움이 될 것 같아요.

11~13 장은 make 에 대한 설명 및 autoconf, automake등 프로젝트 빌드 과정에 관련된 유틸리티 설명이 있습니다. 개인적으로 이 부분(5부 관련 유틸리티)이 컴파일 링크 다음에 배치 되고 그 다음 디버깅에 대한 내용이 있도록 배치되어야 하지 않나 하고 잠시 생각해 봤습니다. 이렇게 배치한 이유는 저자 분만 아시겠죠^^

14장은 형상관리에 관해서 설명하고 있습니다. 보통 개인이 형상 관리까지 하면서 개발하시는 분들은 프리랜서 분들 밖에 없을 것 같고 대게 회사 차원의 형상관리를 하기에 저도 현업에서는 지금까지 클리어케이스만 사용하고 있습니다. 개인적으로 사용하실 분들은 꼼꼼히 읽어 보시면 도움이 되시겠지만 저는 그냥 훑어 보는 정도였습니다. 형상관리가 어떻게 보면 코딩 보다도 중요하데요. 현상관리 툴마다 방식 및 사용법이 다르기 때문에 Subversion, CVS를 직접 사용하실 분들은 꼼꼼히 읽게 되지만 저 같은 경우는 가볍게 지나갔습니다.

 

3.리뷰를 마치며

 

저자 분께서 상당히 꼼꼼하신 것 같습니다. 어떻게 이렇게 많은 자료를 정리하고 문서화 할수 있었는지 대단해 보입니다. 한번쯤 답답해서 속으로 “아이…띠~” 이건 책으로 안 나오나했던 내용들이 한 권에 모두 들어 있습니다. 책 분량도 상당하여 부록까지 하면 800 페이지 정도 됩니다. 저도 열심히 본다고 보는데 실상 제가 사용하는 유틸리티만 정독의 눈길이 가지고 딱히 바로 안 쓰고 있는 유틸리티는 훑어 보면서 아…이런게 있구나..하는 정도로 지나갔습니다.(솔직히 그래도 아직 다 못봤습니다.)

저자 분께서도 이 책을 다 외우라고 쓰지는 않았을 것입니다. 한번 정도 훑어 보고 현업을 하다가 사용하는 유틸리티가 있다면 옆에 두고 갑자기 생각 안 나는 기능이나 개념을 찾아 보고 시간과 노력을 줄이는 방법을 제공하는데 초점을 둔 서적입니다.

그렇다고 개념 부분이 약한 것은 아니고, 컴파일, 링킹, make등 일반 서적 한 권씩 원서로 나오는 부분들을 이해하기 쉽게 기술되어 있어서 부담 없이 보면서 개념 잡기가 수월합니다.

s*****3 2010.10.08. 신고 공감 0 댓글 0
리뷰 총점 종이책
유닉스 리눅스 프로그래밍 필수 유틸리티 리뷰
"유닉스 리눅스 프로그래밍 필수 유틸리티 리뷰" 내용보기
업무 환경이 unix/linux 이라 유틸리티 책을(유닉스 파워 툴) 옆에 놓고 필요할때마다 매뉴얼처럼 찾아보곤 했다.   프로젝트가 끝나고 여유의 시간이 생긴 시점에 이책을 접하게 되었다. 전자의 책은 정독하기에 무리가 있는 분량이라 필수 유틸리티가 정리되어 있는 이 책을 선택하게 되었다.       1부는 독자에게 알려주고자 하는 책의 전체적인 내용을 가볍게 맛볼수 있다.
"유닉스 리눅스 프로그래밍 필수 유틸리티 리뷰" 내용보기

업무 환경이 unix/linux 이라 유틸리티 책을(유닉스 파워 툴) 옆에 놓고 필요할때마다 매뉴얼처럼 찾아보곤 했다.

 

프로젝트가 끝나고 여유의 시간이 생긴 시점에 이책을 접하게 되었다.

전자의 책은 정독하기에 무리가 있는 분량이라 필수 유틸리티가 정리되어 있는 이 책을 선택하게 되었다.  

 

 

1부는 독자에게 알려주고자 하는 책의 전체적인 내용을 가볍게 맛볼수 있다.

 

 

2부는 unix 환경의 꽃인 vi에 대한 설명을 볼 수 있다.

windows용 문서도 unix로 가져와 편집할 만큼 vi에 길들여져 있는 나로서 이번장은 넘겨야겠다 라고 생각했지만 막상 읽어보니 모르는 부분을 많이 접하게 되었다.

 

초보 시절에는 꼭 필요했던 기능만 습득하려 했고 외의 것들은 간과했던 팁들이 많이 나와 있어 머리보다는 손끝에 익숙해지려 무한 반복하며 따라 갔다. 

 

 

3부는 개발에 필요한 컴파일, 링킹과 같은 유틸리티에 대해 안내 되어 있다.

실무에서는 해당 업무를 클리어 하기만 하면 되기 때문에 이론과 배경 지식을 간과하는 경우가 많지만 공든 탑은 무너지기 마련이다.

 

조금 어렵게 느껴질 수도 있지만 차근히 읽고 따라가다보면 머리 속 엉켜있는 지식들이 정리되어 간다는 느낌을 받을 수 있을것이다. 

 

 

4부는 디버깅 관련 내용으로 gdb는 물론 GUI에 익숙한 사용자를 위한 디버깅 툴도 친절히 소개한다.

 

 

5부는 프로젝트 빌드, 6부는 버전 관리에 대한 설명이 되어있다.

신입시절 장비의 모든 소스를 rm -rf 한 전적이 있는 지라 svn를 필수로 사용하고 있는데 책을 통해 눈으로 다시 한번 정리 할 수 있었다.

 

 

 

 

욕심을 갖고 정독할 필요가 있는 군더더기 없는 유익한 초/중급용 유틸리티 책이라고 생각한다.

g*****5 2010.10.07. 신고 공감 0 댓글 0
리뷰 총점 종이책
리눅스 개발을 처음 시작하는 사람에게 권하는 첫번째 도서
"리눅스 개발을 처음 시작하는 사람에게 권하는 첫번째 도서" 내용보기
1판은 읽어 보신분이라면 아시지만 유닉스 또는 리눅스에서 개발을 시작하는 사람에게 필요한 많은 정보를 가지고 있는 책입니다. 개발툴인 vi, 컴파일러 GCC의 원리, make, svn등 프로젝트 진행에도 꼭 필요한 유틸리티에 관해서 풍부하면서도 쉽게 잘 정리된 책입니다. 1판은 읽은 독자라면 2판 바뀌어 봐야 얼마나 바뀌었겠어 생각하실지도 모르겟지만1판에서 보다 최신화 된 내용과
"리눅스 개발을 처음 시작하는 사람에게 권하는 첫번째 도서" 내용보기

1판은 읽어 보신분이라면 아시지만 유닉스 또는 리눅스에서 개발을 시작하는 사람에게 필요한 많은 정보를 가지고 있는 책입니다.
개발툴인 vi, 컴파일러 GCC의 원리, make, svn등 프로젝트 진행에도 꼭 필요한 유틸리티에 관해서 풍부하면서도 쉽게 잘 정리된 책입니다.

1판은 읽은 독자라면 2판 바뀌어 봐야 얼마나 바뀌었겠어 생각하실지도 모르겟지만
1판에서 보다 최신화 된 내용과 1판에서 부족했던 내용을 보충하는 글들도 많이 있습니다.

군더더기 없는 매우 유익한 책이라 생각합니다.

p******4 2010.10.17. 신고 공감 0 댓글 0