얼마전에 윈도우 프로그래밍 관련 책을 추천해달라고 부탁드렸는데
리눅스/유닉스 시스템 프로그래밍 관련 책도 추천 부탁드립니다.
API 설명이 있는 레퍼런스 말고
작게라도 여러가지 실습을 해볼 수 있는 내용이면 좋겠습니다.
API 설명하는 책은 좀 읽어봐서 사용법은 아는게 있지만
실제로 규모있는 프로그램을 작성해본 경험이 없습니다.
사실 아직도 리눅스를 계속 해야할지 윈도우로 넘어가야할지 고민입니다.
윈도우로 넘어가려해도 아직 리눅스에서의 개발도 잘 모르니
어설프게 아무것도 모르는 상태로 계속 발전이 없을것 같다는 생각이 듭니다.
실무적으로도 경험해볼 수 있는 적당한 책이 있으면 소개부탁드립니다.
The art of unix programming인가요? 몇가지 유명한 책이 있던데
Advanced 리눅스 시스템 네트워크 프로그래밍이라고 국내서도 있고
아시는분 계시나요?
댓글 10
-
신철수
2008.04.22 16:06
-
백창우
2008.04.23 02:24
프로그래밍 스킬 보다는 연구하고픈 주제를 정해서 그쪽 주제를 좀 더 심도 깊게 파고드는게 좋지 않을까요?
가령 flash filesystem 쪽을 주제로 잡았다면 세상에서 flash filesystem은 NO1이 되겠다는 생각으로 공부하는게 어떨지 싶습니다.
이것저것 많이 아는것 보다는 하나를 확실히 알고 다른건 재능을 펼치는데 방해가 되지 않을 정도로만 갖추는게 더 좋은 선택일것 같습니다.
-
맥주
2008.04.23 08:57
프로그래밍을 잘 하고 싶으신 것인가요? 다른 사람들이 저보고 프로그래밍을 잘 한다고 합니다. ^^ 그래서 일단 부끄러움을 무릅쓰고 글을 적어 보는데요.
책을 10번 보는 것보다 한번 돌려 보는것이 훨 좋구요. 이건 다 아는 애기지요.
직접 구현하는 것 보다는 잘 검색해서 좋은 샘플 코드를 찾는 것이 더 좋구요.
이건 중요합니다. 잘 차려진 밥상이 있습니다. 요즘 프로그래머는 검색을 잘 해야 합니다.
만약 QT 기반의 telnet 기능의 GUI 를 개발 하려고 한다면, 어떻게 하시겠습니까? QT에 대한 기반 지식이 없고, telnet 프로토콜에 대한 기반 지식이 없다라고 한다면, 바로 QT 기반의 telnet 기능을 가진 GUI 샘플을 찾으실 것입니까?
저는 그렇게 하지 않습니다. 덩치가 큰 프로그램은 제것을 만들기 힘듭니다.
우선 qt 라이브러리에서 제공되는 샘플들을 모두 훓어 보고 내가 목표하는 UI와 가장 잘 맞는 넘을 선택합니다. 샘플들은 그 기능만 구현한 가장 작은 코드입니다. 그 다음 busybox 의 telnet 이나 가장 심플한 command 상에서 돌아가는 telnet 샘플 코드를 찾아서 분석합니다. 두 샘플이 돌아 가는 폼을 이해하면 두개를 합치는 것은 간단합니다.
프로그래머, 나아가서 프로젝터 매니저가 되려고 한다면, 일단 많은 언어를 아시는 것이 좋습니다. html, c, MFC, Win32 API , java 등등 이 애기는 위에 백창우님의 반대 되는 의견 일 수도 있는데, 많은 플래폼의 환경을 이해하면 전체적인 그림을 그릴 수 있는 능력이 생깁니다. 구현 방법및 요구 사항 및 제약사항 등등.. 많이 안다고 해서 꼭 깊이가 낮은 것은 아니지요. 관심 분야에서는 탑이 될만한 능력을 지니면 됩니다.
간혹 학생들 중에 나는 꼭 이것만 집중적으로 해서 전문가가 되어야지 하시는 분들이 있는데 저는 비추입니다. 많은 것을 경험해 봐야 무엇이 좋은 것인지 길이 보이기 때문에, 닥치는 대로 해봐야 한다고 생각합니다.
여기서 또 예를 들면, 어떤 분이 h.264/MPEG4 AVC 를 5년간 연구해서 알고리즘을 만들어 놓았습니다. 나는 2주동안 h.264/MPEG4 AVC의 문서를 보고 대략 이해해서, 코드를 가져다가 구현 할 수 있습니다. 이것이 프로그래머 있습니다. ㅠ.ㅠ. 가져다 쓰는 것이지요.. ㅋㅋㅋ 뭐 있겠습니까?
-
김기오
2008.04.23 09:13
연구보다는 일을 해야하기때문에 프로그래밍 능력이 필요하지요 뭐...
제가 어디 연구할 수준이 되나요.
저는 아직 기본적인 리눅스 프로그래밍도 경험해보지못해서
몇가지 리눅스 프로그래밍책을 보면서 경험을 좀 해봐야 할것 같습니다.
쓰레드니 db니 하는 것들도 다뤄보지 못했으니 말 다했지요... ㅜ,.ㅜ
연구자는 h.264가 없을 때 만들어서 내놓고
개발자는 h.264를 못살 때! 만들어서 내놓는 차이가 아닐까요? ^^ -
맥주
2008.04.23 17:54
아.. 어떤 것을 개발하실 예정이십니까? 혹시 h.264 개발 수준입니까? 그렇다면, 수준이 다르네요.. ㅠ.ㅠ 그때 저는 배째라신공을 사용합니다. 절라구라신공도.. 혹, db, thread 말씀하시는 것을 보니 서버 환경인가요? 그렇다면, 리눅스 비추.. 원도입니다. -
백창우
2008.04.24 01:07
대단하십니다. 이백님. ^^
범상치 않으신 분이시란건 알고 있었지만 역시나 글에서 풍기는 "포쓰"가 장난이 아니시네요.
저도 요즘 고민이 많습니다.
날이 갈수록 물러지는 실력, 늘어나는 뱃살.... ㅜㅜ
점점 공부에 흥미를 잃어가는것 같습니다.
집에 오면 항상 책부터 봤었는데 이제는 웹서핑부터 하네요.
너무 심각한것 같아 특정 웹사이트를 차단하는 모듈을 웹 브라우즈에 넣었다는... ㅜㅜ -
맥주
2008.04.24 08:04
범상 ㅠ.ㅠ .. 영광일 따름입니다.
자신을 힘들게 하는 것이 무엇인가를 곰곰히 생각해 보시면,
그것은 자기 자신입니다. 그렇게 하는 이유는 욕심이고요. 더 욕심을 낼 수록 더 힘들어 집니다. 그래서 힘들지 않는 방법은 의외로 간단합니다. 만족^^
씨익~ 웃어 주십시요. 행복하십니까? ㅋㅋㅋ
-
김기오
2008.04.24 08:30
저는 그냥 BSP 레벨 작업만 하다가
이제 어플리케이션 개발로 옮겨가려고 공부하는 중입니다.
뭘 만드는 수준이라고 할것도 없지요.
좋은 말씀 감사합니다.
-
박은병
2008.04.24 23:34
이백님의 글을 보고 뭔가 확 와닿네요..ㅋㅋ
자신을 힘들게 하는것이 욕심이라..
지금 제가 그런거 같습니다. 제 스스로가 저 자신을 너무 억압하는 것 같네요..그러면서 그 나름대로의 스트레스를 받으며 인생을 즐기지 못한다고 할까요..
아직 학생주제에 인생을 논할 처지는 못되지만..^^..
다시한번 생각해보게 됩니다. 군에 제대하고 지금까지 미친듯이 달려온거 같은데 이게 멈출것 같지가 않습니다. 또 지금 원하는 바를 이루면 또다른 욕심이 생기겠지요..아니면 벌써부터 그 욕심을 준비하고 있는지도 모르겠습니다.
이백님 말대로 지금의 상황에 만족하면 정말 편해지고 재미있는 젊은 시절을 보낼 수 있을것 같습니다만..아직까지는 목표를 향해 달려가면서 얻는 쾌감(?)이 그에 대한 기회비용보다 훨씬 큰거 같습니다. 그리고 그 둘간의 격차는 오히려 줄어드는게 아니라 커지는것 같습니다. 제가 아직 너무 열혈 청춘이여서 그런가요...??음 저뿐만 아니라 스터디하시는 분들이 토요일에 나오셔서 공부하는 것이 다 아직 자신에 대해 만족할 수 없고 만족한다해도 더 만족하기 위해서 스터디를 하시는 것이라 생각됩니다.
지금 행복합니까??라는 질문에....
는 '네'라고 할 수는 없네요..이상합니다....욕심을 내고 그것을 이루려고 노력하는 쾌감이 크다고 했는데 아니 그건 아무리다시 생각해봐도 확실한데..이상하게 행복합니까??라는 질문에는 '네'라고 대답할 수 가 없습니다..아..내일이 당장 시험인데 이런 잡생각이 자꾸 드는군요..
음..여튼 스터디 열심히 합시다^^..
-
맥주
2008.04.25 08:08
크.. 네.. 은병님.. 제가 저 글을 지울까? 생각 했었습니다. 그 이유는 은병님의 글 처럼 우리가 처한 상황이 현실 만족을 할 수 있는 처지가 아니지요^^ 현실 보다는 더 나은 미래를 위해서 지금은 그렇게 해야 할 것입니다. 자신이 마음 먹은 만큼 행복하다 라는 말이있듯이 지금의 현실을 받아 들이고 즐기는 것이 최선의 선택일 것입니다. 다만, 몸과 마음이 힘들어 질때도 내 자신을 업악하고 절재 할 만큼의 여유가 없어서는 안 될 것 같다라는 생각입니다.
"어떻게 사는 것이 잘 사는 것인가?" 라는 물음에 대한 답을 누가 할 수 있겠습니까? 맹박아이씨가? 건니행님이? ... 답을 찾으려 시간을 소비하는 것 보다는 내 자신이 선택하고, 선택엔 후회없이 돌진 하는 것이 최선 이라고 생각합니다.
.
제가 한권 추천해주고 싶은 책은
"UNIX SYSTEMS Programming : 통신, 병행성 그리고 쓰레드"
책 자체의 난이도는 중상으로 판단되며
프로젝트가 5개인지 7개인지 명확하진 않지만
다른 책들 보다는 비교적
좀 큰 프로그래밍에 대한 이야기로 진행됩니다.
저 역시 다시 한 번 잡아서 다 봐야하는데 내용 다 까먹었네요.;;;