저는 윈도에서 make를 다음 두가지 용도로 사용합니다.
1. Host(Windows)에서 Target(MIPS)용 실행 파일을 빌드 할 때 30분 정도의 시간이 걸리는데 이 시간을 단축 해보고자 IDE를 사용하지 않고 make를 사용.
2. 현재 사용하는 IDE에서 여러 Option을 비교하기가 어려운데, make를 이용해서 Compile 및 Link Option을 쉽게 비교하기 위해 make를 사용.
저는 위의 작업을 하는데 이 책이 도움이 되었습니다. 처음 make를 접하시는 분들에게 도움이 될 것입니다.
유닉스 환경에서 프로그래밍을 즐겨하는 분들과 뿐만 아니라 윈도우 플랫폼에서 비주얼 툴의 도움없이 단순히 컴파일러와 make와 같은 툴을 이용해서 프로그램을 개발해보고자 하는 분들에게 이 책을 강력히 추천하는 바이다. 사실 이 책은 이제 C언어나 다른 언어의 입문서를 읽고 계신분들에게는 그다지 큰 효용성이 없는 책이다. 또한 웹프로그래밍만을 전문으로 하는 분들도 그다지 도움이 되지는 않을 것이다.
하지만 유닉스 환경에서 실제 프로젝트를 진행하고 계신 분들은 반드시 알고 있어야 하는 내용들을 다루고 있다. 책에 있는 C 언어 예제와 같은 내용들은 단순히 cc 명령어 만으로도 충분히 제어와 관리가 가능하다. 하지만 소규모라도 기업환경에서 사용되는 프로그램들을 개발하는 경우에는 얘기가 틀려지게 된다. make를 이용해야지만이 그 많은 소스들을 관리할 수 있게 된다는 말이다.
사실 이책에서 다루는 내용이 make를 이미 사용해본 경험이 있는 중고급 프로그래머들에게는 너무 당연한 내용일지도 모르겠다. 사실 여기에서 다루는 내용은 kldp에서 한글로 번역된 make 강좌에서도 볼수 있다. 하지만 make를 한번도 다루어보지 않은 독자에게는 이러한 단행본이 더 큰 도움이 될것이다. 그리고 make를 한번도 사용해보지 않은 독자라면 1장과 2, 3, 4장의 내용만으로 프로젝트 관리에서 필요한 대부분의 make 기능은 다 익힐 수 있게 된다.
비주얼스튜디오와 같은 비주얼 툴만 사용할 것이 아니라 직접 유닉스 환경에서 vi와 cc, ar, make 등을 이용해서 프로그램을 개발해보는 것이 중고급 프로그래머로 나아가는데 큰 도움이 되지 않을까 생각된다.
유닉스나 리눅스에서 프로그래밍을 하다보면 꼭 듣게 되는 말이 있다.
make라는 것...
2학년 때인가 3학년 때, 수업 시간에 약간의 맛을 보기는 했는데, 그 후로는 잊고 지내다가 얼마 전에 다시 make라는 것을 듣게 되면서 흥미를 갖고 읽어보았다. (사실..윈도우 기반의 프로그래밍을 주로 하는 본인은 make를 직접 쓸 일은 거의 없었다..)
얇은 책이지만 필요한 내용은 다 있는 것 같았다. 언젠가 수업 시간에 들었던 내용이 새록새록 떠올랐다. 설명도 꽤 쉽게 되어 있고, 실제 실습을 하기에도 좋았다.
어디에선가 make라는 말을 들어보기는 했는데, 한번 써보기는 했는데, 정리를 하고 싶으신 분들은 읽어보심이 좋을 것이다. 또한, 리눅스나 유닉스 프로그래밍을 하시는 분들이라면 한번쯤은 반드시 읽는 것이 좋다고 생각한다.
윈도우에서도 마찬가지겠지만, 특히 유닉스에서는 make 없이 프로그램을 컴파일하는 것은 매우 어려운 일입니다.
소스 파일이 몇 개 안되는 상황이라면, make 없이 작업을 해도 그리 어렵지 않겠지만, 소스 파일 개수가 늘어남에 따라, 일일이 컴파일하는 것은 실제로 거의 불가능에 가까워 집니다.
이 책은 make를 가장 훌륭하게 소개한 책이라고 생각됩니다. 국내서 중에는 make만을 가지고 단행본으로 나와 있는 경우는 없을 것입니다.
오라일리의 번역서이긴 하지만, 숙련된 유닉스 프로그래머가 되기 위해서, 읽어두면 도움이 많이 될 것입니다.
혹시 모든 파일에 대해서 gcc로 일일이
shell에서 command를 쳐서 프로그램을 컴파일
해왔다면 꼭 이책을 보시기 바랍니다.
웹에서 make에 관한 문서는 많지만 항상
어떤 특정한 부분만을 설명한 문서들이었습니다.
이책을 통해 프로젝트 관리 툴인 make에대해
이해하시기 바랍니다.
어떻게 프로그램들간의 의존성을 설정하는지.
그리고 어떻게 관리하는지 배울수있을겁니다.
중급 이상의 프로그래머에게 필요한 책이라고 생각되네요...
초급자도 Make를 사용해서 프로그램을 컴파일 시켜보는 것도 괜찮지만
원서의 원재인 Managing Projects with make처럼 Make란
프로젝트를 관리하기 위한 프로그램입니다..
초보나 시스템 관리에 서툰 유저에게는 어렵게 보이는 책입니다..
실제 프로젝트를 예로 설명한 책이 아니기 때문에 일정 수준 이상의 프로젝트를 수행하지 않은 사람이라면 그 편리성을 느끼지 못할 것입니다..
하지만 어느 정도 수준 이상의 유저라면 이런 책을 기다려 왔을 지도 모릅니다.. 개인적으로 큰 프로젝트를 수행할 때 참고 자료로 활용하고 있습니다.. 핵심만을 정리해 놨기 때문에 많은 도움이 되더군요...
make가 뭘까?
적어도 리눅스를 쓰는 사람이라면
어떤 소스들을 다운로드 받게 되면
꼭 따라오는 파일 중에 Makefile 등을
본 적이 있을 것이다.
도대체 이건 어디서 누가 만든 뭐하는 파일일까?
make
make install
설치문서를 보고 저정도만 따라해 봤어도
make에 관한 공부의 충분한 준비가 된 것이다.
make는 비주얼 관련의 프로그램을 해봤다면
그쪽의 프로젝트 개념과 비슷하다고 생각해 볼 수도 있다.
make는 수많은 소스로 이루어진 프로젝트를
관리해 준다.
만약에 make가 없다면? 1000개로 이루어진 한
프로그램을 일일히 컴파일 - 링크 시킬 것인가?
도중에 파일 하나를 고쳤다면??
처음부터 다시??
make는 정말 필요한 유틸리티이고
이 책은 그 make를 만들고 사용하는 모든 것을 도와준다.
리눅스를 처음 접하게 된 것은 2000년 6월쯤으로 많은 사람들이 사용하지 않는 특이한 뭔가를 찾아 헤매던 때였다. 개인적으로 리눅스는 정말 새로운 환경이었고 정말 마음에 들었었다. 하지만 사용하면서 한글 사용이 문제가 되기 시작했다. 마음에 드는 모양의 글꼴을 쓰기위해 들인 노력은 정말이지...ㅜㅜ
한글 문제는 그렇다고 치자. 리눅스에서는 새로운 소프트웨어를 설치하고 싶으면 다른 운영체제처럼 setup이라는 파일을 더블 클릭하는 것만으로는 해결이 되지 않았다. 그러나 그에 버금가는 좋은 도구가 있다는 것도 알게 되었다. 그것이 바로 make였다.
make 하나면 간단하게 해결이 되는 것이었다. 그렇게 쉽게 사용은 했지만 문제는 그녀석이 정상적으로 동작하지 않을 때 그대가 문제였다. 한참 헤매던중 make라는 녀석은 Makefile이라는 설정파일에 의해서 일을 한다는 것을 알아냈었다. 그러나 문제는 또 그때부터 시작되었다. Makefile의 내용을 이해할 수 없기 때문이었다. 그래서 내가 선택한 방법은 다른 소프트웨어를 찾는 것이었다. 그러나 make의 문제는 거기서 끝나지 않았다. 슬슬 프로그래밍을 할 때쯤 간단한 프로그램을 할 때는 컴파일하고 디버깅하고 또 컴파일하고 디버깅하고...귀찮긴 하지만 그래도 견딜만 했다. 하지만 점점 프로그램의 덩치가 커지면 커질수록 더 이상 그렇게 해결 할 수 있는 문제가 아니라는 것을 알았고, 또다시 make를 접하게 되었다.
리눅스 환경에서 현재 소프트웨어를 사용하거나 제작하려는 사람들이라면 피해 갈 수 없는 관문이 바로 make이다. 그리고 이때 필요한 것이 바로 이 책 『make: 유닉스 리눅스 필수 유틸리티』이다. 물론 인터넷을 통해 많은 문서를 구할 수도 있겠지만 그 문서들이 개인적으로는 make의 사용법을 늦게 배우는 게기가 되었다. (너무 복잡하고 이해하기 힘들어서)
목차를 보면 알겠지만 간단하게 7장으로 구성된 얇은 책이다.
그렇지만 make를 배울 수 있는 모든 것이 들어 있다. 사용법도 적절한 예제를 통해 익힐 수 있도록 구성되어있다. 하지만 책을 읽고 나서도 아쉬웠던 점은 실제 프로그램코드를 이용한 예제가 없어서 책에 있는 make사용법의 예제가 정확하게 돌아가는지를 시험해 볼 수가 없다는 것이었다.
개인적으로 이 책은 별로 흠을 잡고 싶지 않은 책으로 리눅스에서 프로그램을 하는 동안은 계속해서 옆에 두고 보게될 책같다.
개발자에게 make는 꼭 필요한 유틸리티이다. 원서로 보고 꽤 괜찮은 책이라는 인상을 받았던 이 책의 한글판이 나왔다는 말을 듣고 꼭 읽어 보고 싶었다. 얇고 조그마한 원서보다 책의 크기가 커져 조금은 위화감이 있었지만 제법 잘 된 번역에 만족할 수 있었다.
C 뿐 아니라 다른 언어를 사용하는 경우에도 바로 적용할 수 있는 설명이 좋았다. 아니, 프로그래밍을 하려는 사람 뿐 아니라 다른 방향으로도 응용할 수 있도록 책 두께에 비해 많은 예제를 수록한 점이 매력이랄까.
이 책은 대강 다음과 같이 구성되어 있다.
서문
제1장 컴파일, 실행, 디버그
제2장 매크로
제3장 확장자 규칙
제4장 명령어
제5장 프로젝트 관리
제6장 명령행의 사용법 및 특별한 타깃
제7장 문제 해결
부록 A 퀵 레퍼런스
부록 B 많이 사용되는 확장된 기능
부록 C make의 여러 버전간의 특징들
1장에서 make를 처음 사용하는 사람을 위해 설명한 것에 이어 2장의 매크로, 3장의 확장자 규칙 등의 내용에서는 make를 실제 작업에 반영할 수 있는 방법에 대한 자상한 설명이 나와 있었다. 자신에게 최적화된 환경을 만들어 프로젝트를 만들 수 있다는 것은 분명 make의 강력한 매력. 이 부분을 잘 부각시키고 있었다. 또한 패턴 매칭이라던가, make를 사용하는 데 필요한 여러 요소들을 빼놓지 않고 설명하여 make를 잘 모르는 사람이라도 쉽게 사용할 수 있도록 최선을 다한 책이라고 생각했다.
실제적인 활용에 대한 설명은 5장과 6장에서 자세하게 다루고 있다. 프로젝트를 관리하고 특수 타깃을 지정하는 등, 우리가 프로그램을 만드는 데 필요한 요소들이 다양하게 설명되어 읽기 쉬웠다. 하지만 make를 잘 모르는 사람에게는 충분한 책이지만, 어느 정도 알고 있는 사람에게는 좀 더 자세한 옵션에 대한 설명이 필요하지 않나 싶은 생각도 들었다. 물론 이 책에서는 충분히 많은 옵션을 다루고 있기는 하지만, 조금 눈높이를 낮게 잡은 점이 없지 않다고 생각된다. 이것은 다시 말하면, 정말 유닉스나 리눅스에서 프로그램을 만들어 보려는 사람에게는 부담없이 읽을 만한 책일 것이라는 생각이 들었다고도 말할 수 있을것이다.
7장은 우리가 종종 실수를 저지르는 부분에 대한 설명과 대처 방안에 대한 부분이다. 사실 나는 이 7장 역시 부록에 포함되어도 좋지 않나 하는 생각을 했다. 꼭 필요한 내용을 정확히 설명해 주는 점에는 만족했지만, 분량이 좀 적지 않나 하는 생각도 들었고. 또한 부록에서는 다른 버전의 make라던가, 반드시 알아야 하는 것은 아니지만 알아 두면 도움이 되는 내용들이 체계적으로 들어 있어서 만족했다. 단지, 사람 이름 등의 고유명사의 우리말 발음이 조금 어색하게 적혀 있었다는 것이 옥에 티였다고 할까. 물론 모든 이름을 확인하고 넘어갈 수는 없었겠지만, 특히 고유명사가 많이 나오던 부록 부분에서는 아무래도 어색함을 금할 수 없었던 것이 사실이다.
윈도에서 프로그래밍을 하려는 사람들을 위해서는 비주얼 툴들이 나와 있어 편리하게 사용할 수 있지만, 유닉스 쪽에서 프로그래밍을 한다고 하면 지레 겁부터 먹는 사람들을 많이 보아 왔다. make 는 바로 유닉스 환경에서 프로그래밍을 하기 위한, 비록 비주얼 툴 처럼 직관적이지는 않지만 강력한 도구이다. 지금 시장에 make에 대한 다른 국내서가 없는 상황에서 이 책은 make를 공부하기 위한 몇 안 되는 길이 아닐까 생각한다. 물론 온라인 문서나 원서 등을 읽으며 공부할 수도 있겠지만, 그럴 여건이 되지 않거나, 기본적인 내용이라도 체계적으로 공부하고 싶어하는 사람들에게는. 물론.... 잘 정리된 책이기는 하지만 초보자용 책이라는 느낌이 강하다. make를 이미 오랫동안 사용해 온 사람들을 위한 책은 아니라고 본다. 아마도 눈치 채고 있겠지만. 물론, 자기의 지식을 정리해 보고자 하는 사람들을 위해서는 나쁘지 않은 선택일 것이라 생각한다.