'책(BooK)/컴퓨터'에 해당되는 글 27건

  1. 2009/02/17 죽은 CRM 다시 살리기 - IT는 도구일 따름이야! 다만, 닭이먼저일까?달걀이먼저일까?
  2. 2009/01/04 미디어2.0 미디어 플랫폼의 진화 - 현재 미디어에 대한 올바른 이해/우리는 아는대로 본다 (2)
  3. 2009/01/04 ALL OF SOFTWARE PROJECT - 조감의 역할은 한 책
  4. 2008/12/29 당신은 웹 2.0 개발자입니까? - 제대로 정리된 기술 동향
  5. 2008/12/29 도와주세요! 팀장이 됐어요 - 온전한 팀원이 되겠죠
  6. 2008/07/13 정보트래핑 - 체계적인 정보 찾는 법을 안다
  7. 2008/06/14 사랑하지 않으면 떠나라 - 자극적인 제목이 이 책을 읽게 만들까? (2)
  8. 2008/05/22 The Practice of Programming 프로그래밍 수련법-전부를 주는 책은 아니다. 단지 시작을 알려줄 뿐
  9. 2008/05/13 소프트웨어, 누가 이렇게 개떡같이 만든거야-역지사지|낯설게 보기(UX)
  10. 2008/05/01 똑똑하고 100배 일 잘하는 개발자 모시기-조엘의 회사는 이렇게 한단다.
  11. 2008/02/14 자바스크립트 for 웹2.0 - 자바스크립트를 언어로 보자구~~
  12. 2008/01/22 IT EXPERT ASP.NET 2.0 웹프로젝트와 실전 프로그래밍 - asp.net 2.0 온전한 학습서-01
  13. 2007/10/21 임백준의 소프트웨어 산책 - 다섯분야 대한 시선 그리고 짧은 소설
  14. 2007/10/21 뉴욕의 프로그래머
  15. 2007/08/11 좋은코딩 나쁜코딩 - 코드 스타일 정리 끝
  16. 2006/03/31 [HFSJ] session 정리 (1)
  17. 2006/03/15 해커와 화가 - 프로그래머 별종 아니에요^^
  18. 2005/10/30 자바 IO & NIO 네트워크 프로그래밍
  19. 2005/10/25 MySQL 시스템 관리와 프로그래밍: 자바,PHP,펄,C,파이썬
  20. 2005/10/23 뇌를자극하는Redhat Fedora : 리눅스 서버 & 네트웍크 - 정리 (1)
  21. 2005/09/12 [CC2E] 3. 준비는 철저하게 : 선행조건
  22. 2005/09/11 [CC2E] 2. 소프트웨어 개발의 이해를 돕기 위한 비유
  23. 2005/09/06 [CC1E] 4. 루틴의 작성 단계
  24. 2005/09/01 [CC1E] 1.소프트웨어 컨스트럭션에의 초대
  25. 2005/04/26 [배열과포인터...] - 01
  26. 2005/04/25 조엘 온 소프트웨어
  27. 2004/08/01 데드라인- 스토리 텔링이란 단어를 떠오릴 수 있었다

죽은 CRM 다시 살리기(2009/02/17)
박성수 지음| 타임스퀘어 | 2008.5.25 | ISBN 9788996082835 (03320)


ERP 프로젝트에 참여해서 1년1개월 개발도 해보았고, 그 전엔 6개월 정도 SI 프로젝트도 참여해 그런대로 끝냈던 적도 있었기에 CRM이란 용어는 자주 들어봤다. 하지만 실체는 잡히지 않고... 그러다 스토리텔링으로 적었다는 언급에 재빨리 잡았다. 이야기로 접근해 입문할 수 있는 지점을 알려주었다. 이제 미뤄둔 [CRM의 기술]도 빨리 읽어버려야지!

CRM은 IT 전문가가 아닌 CEO나 정책을 이끌고 갈 사람이 먼저 알아야 된다. 좋은 자료와 잘 정리된 설명으로 의사결정자를 이해/설득시켜야 한다. 거기엔 기술적인 부분인 데이터웨어 하우징이나 마이닝도 잘 이해 시켜야 한다. 이 부분을 단순하게 보면 기술이 타켓같이 보이지만, 이 기법 자체가 전산에선 하나의 도구로 솔루션화 되었을 것은 분명하다. IBM이란 회사도 떠올랐다. 그렇게 설득시키고 회사에 적용하면 분명 효과가 날 기술인 것도 맞는 것 같다.

그렇기에 어쩌면 CRM이 문화라는 장벽이 존재하겠지만, 외국 툴에 놀아나는 입장이지 않을까 했다. SAP의 경우는 삼성의 제조업과 연결되어 종속화 되는 경향이 있다. 그 이유는 SAP의 회계 모듈의 기업의 투명성(?)을 보여주는 측면이 있다는 이야길 들었던 적도 있다.

나역시 어쭙잖은 프로그래머 보다 SAP이나 해두고 모듈 컨설턴트가 되는게 나은 방법이지 않은가 싶기도 하지만, 지금까진 꿋꿋이 프로그래머란 다섯 음절에 만족할 따름이고...

자는 2003년 부터 CRM컨설팅을 했다고 한다.

그렇게 우일신(주인공)이 구조 조정을 위해 임명된 은행장이면서도 3년 만에 은행을 업계 1위로 만들게 되는 시나리오를 통해 CRM을 간략화 시켜 이해시키고 있다. 거기엔 각 장 마다 요약 페이지로 이해시키 내용도 아주 좋은 것 같다.

역시나 IT는 도구이지 주인은 될 수 없는 것이다. 분명 IT를 이해하는 경영, 마케팅 분야를 제대로 이해해야 이뤄낼 수 있는 성과물이 많았다. 그런면에서 인사책임자와 IT책임자의 권력을 어떻게 분배해야 될까? 하는 의문도 생겼다. 책에선 이런 일은 일어나지 않는다.
진실1 CRM에서 가장 중요한 것은 마인드와 가치관의 변화이다.
진실2 CRM은 기업의 생존에 필요한 기본 조건이다.
진실3 머리(경영 마인드, 기업 핵심 역량 등)가 바뀌어야 CRM이 된다.
진실4 CRM은 회사 전체 프로세스의 리엔지니어링이다.
- 저자 서문에 있는 핵심 내용

[기억에 남는 구절]
'성장의 한계'와 '고객 불평등'의 시대로 접어들고 있는 국내 기업 환경에서 우리에게 해결사로 등장한 것이 CRM(고객 관계 경영)이다.-5

CRM은 고객에 대한 정확하고 일관된 이해, 고객중심의 상품/서비스 제공, 전사적인 프로세스와 마인드 변화를 추진하는 기업의 경영 혁신 활동입니다.-46
=> 한번으로 끝나는 것이 아닌 지속적 활동

[참고]
http://en.wikipedia.org/wiki/Customer_relationship_management 
저작자 표시
Posted by iarchitect

미디어2.0: 미디어 플랫폼의 진화 (2009/01/04)
명승은지음|한빛미디어| 2008.3.28|ISBN 9788979145526 (03320)


좋은 책이다(비판적 관점에서). 다양한 내용을 네가지 카테고리에 잘 버무려 놓았다. 저자는 기자였다가 현재는 야후 코리아에서 근무한다. 그러면서 1인 블로거로서 활동하고 있다. 대단 하지만, 그냥 나와 같은 블로거란 관점에서 접근해 그의 깊이를 알아가는 참맛을 느껴보기 바란다. 물론, [세미나]를 통해 책보다 사람이 진국인 것도 말씀드리고 싶다.

이 책의 효용은 미디어에 대해 한발짝 떨어져 조감해 볼 수 있게 해준다는 것이다. 그리고 미디어2.0 (웹 2.0) 에 대해선 제대로 정리하고 있다.(소프트웨어 개발자라면 당신은 웹2.0 개발자입니까?를 이어 읽어보면 정리가 될 것임) 또한 기자는 어떻게 세상을 바라보는지, 기술적인 부분은 어떻게 이해하는지 엿보는 재미도 괜찮다. 정말 체계적이고 논리적이더라!

내 경우엔 [경제뉴스의 두얼굴]을 통해 관(혹은 나만의 고정관념)이 있었기에 이 책도 그런 맥락에서 읽어 내려갔다. 또한 신문,방송, 인터넷이란 세가지 매체로 나누어 접근해 보니 또다른 선택지를 받아든 느낌이다. 미디어 1.0의 소멸이 아니라 공존과 더불어 그 흐름 속에서 개개인은 어떻게 적응해야 할 것인가?란 화두를 던져주더라!


[페이지순 정리]
만든 이와 보고 듣는 이가 구별되지 않는 세상-작은 타이틀인데 마음에 쏙
웹 2.0 정의 참고 http://network.hanb.co.kr/view.php?bi_id=1141
팀 오라일리의 "웹2.0 시대의 핵심 교훈은 '사용자가 가치를 더한다"는 것이다.-29
나는 종종 미디어 2.0을 정보 민주화라는 말로 단정지어 설명한다-61
=>저자가 인용한 곳에는 이런 의견도 있다.
미디어 비평가인 로버트 맥체스니는 [부유한 미디어, 가난한 민주주의(Rich Media, Poor Democracy)]라는 책을 통해 미디어 독과점이 이미 굳어진 상황에서 인터넷이 민주주의를 발전시킬 것이란 상상은 허구에 불과하다고 꼬집는다. 그는 미국 주식시장의 상징인 월스트리트와 뉴욕 광고업계의 중심지로 일컬어지는 메디슨 애비뉴의 필요를 충족시키기 위해 만들어진 미국의 미디어 시스템은 결코 대다수 국민의 이익을 만족시킬 수 없다고 단언한다.-268
=> 시민이 가져야 할 방향성은? 일정 시간을 투자해 여러 뉴스에 접근해 취사선택을 해야 하는가? 권위가 보장된 기자의 글을 통해 그들이 만들어 놓은 창에 의존할 것인가? 거기엔 절대적 요소인 시간과 연결되어 있음은 누구나 아는 상황일진대 또한 먹고삶에 이어져 있음도... ... 그렇기에 이런 위기의 시대엔 더큰 왜곡이 일어날 것임은 아주 뻔하다 싶다.

미디어 사업자들의 역학관계가 어떻게 이루어지든 결국 주도권은 이미 독자들에게 넘어와 있는 상태이기 때문일 수 있다-85
=> 능동적인 소비자가 된다면 그럴 수 있을 것이다. 하지만 먹고삶에 찌들게 되니 그렇지 못하게 된다. 거기에 독과점이 발생해 조중동이 대기업과 손을 잡고 지상파 방송을 장악하게 될 경우는 위에 언급한 의제설정과 더불어 다른 형태로 번져 나갈 것 같다. 거기엔 2009년1월1일 타종방송의 KBS 행태나 언론노조파업에 관한 국민들 사이에 온도차가 아주 많이 나는 것도 예가 될 수 있을 것 같다.

기성 언론들 역시 사실의 나열보다 특성화되고 주관적인 해설이 덧붙여진 글쓰기가 보편화되고 있다. 이는 정치적인 맥락으로 해석할 수도 있겠으나 기본적으로 명분을 따지는 이념의 시대에서 벗어나 해석과 해설을 중요시하는 언론계 전반의 분위기와 맞물려 있다.-178

저널리스트, 즉, 기자에 대한 일반인들의 오해 가운데하나가 기자라는 직업에 대한 자격이다. 언론사들은 수십년 동안 자기들만의 직업적 카르텔을 지키기 위한 수단으로, 또한 권력은 언론인에게 일정한 수준의 지위를 부여함으로써 서로에게 이득이 되는 방식을 택해 권언유착의 빌미를 제공했다. 하지만 민주화가 진행된 이후에도 이러한 침묵의 카르텔은 사라지지 않았다-299
=>언론고시라 불리면서 기득권을 가지려는 사람들. 그러나 블로그를 보아도 알겠지만, 그들보다 제대로 올곧게 끈질기게 생산하는 뉴스 생산자가 있음이 다행스럽긴 하다. 다양성이 전제되어야 한다.

국내에서도 신문,방송 겸업에 대한 해제 논의가 조만간 불거질 것으로 보인다. 이는 오랫동안 여론 독점은 막아야 한다는 언론계의 요구가 산업적 논리에 밀리기 시작하는 것을 의미한다-305

매스미디어의 의제설정 기능이란 매스미디어가 사람에게 "생각하고 있는 것(what to think)을 알리기보다는 무엇에 대해 생각할 것인가(what to think about), 즉 생각할 거리"를 제공한다는 것이다. 즉 대중매체가 특정 주제를 계속해서 강조하면 수용자도 그 주제를 중요하게 여겨 관심을 갖게 된다는 것이다.-67
=>포털이든, 거대 미디어의 힘이 얼마나 큰지는 이 구절에서 잘 알 수 있었다. 지금 네이버가 하고 있는 오픈캐스트 방식은 과연 나은가? 언론사에게 의제 설정 기능을 넘겨 주는 것이 당연한 귀결일까? 란 의문
저작자 표시
Posted by iarchitect

소프트웨어 개발의 모든 것 (All of software project) (2009/01/04)
김익환,전규현지음| 2008.11.10 | 페가수스 | ISBN 9788996091738 (13560)


PMBOK를 읽어서 그런지, 프로젝트를 조감할 수 있게된 지금 이 책은 나에게 어떤 효용이 있을까?! 그러다 실제 읽게 된 것은 책 앞날개에 저자 두명의 이메일을 통해 컨설팅 회사( http://www.abcswcon.com/ )를 다닌다는 것을 알고나니, 컨설턴트가 되는게 목표라 잡게 되었다.
알고보니 [대한민국에는 소프트웨어가 없다]를 쓴 김익환씨의 최신작이기도 하네!

큰 프젝은 안해본 것 같은데도 IBM clearcase 빌드 매니저 1명, vss 빌드관리자 1명 있는 곳에서 개발해 본 나에게 어쩌면 전체를 조감할 수 있는 기회가 되지 않을까!란 기대 시작.

책 처음이 차별화의 전부가 아닐까 싶기도 하다. 소프트웨어 개발 역량표(http://www.abcswcon.com/services.htm)라는 것을 통해 개발자 자신의 수준을 정리할 수 있어 좋다. 책엔 꼼꼼히 더 많이 설명한다.

앞부분은 시스템,인간,툴(소스관리,빌드관리,버그관리...)의 기본을 언급하고 파트2에선 소프트웨어 개발을 성공으로 이끄는 법에 대해 언급하고 있다.

개념 위주 보다는 타이틀 만으로도 어느 정도 이해가 되는 내용이었다. 거기에 소프트웨어를 언급하고 용어 정리를 하는 부분은 반쪽이다 싶다. 제대로 사용법을 알려주는 것도 아니고, 찜찜한 그자체다!

물론, http://books.pragprog.com/titles 이런 좋은 책들이 있기에 Part1에서 설명한 것은 조감도 성격 말고는 없는 것 같다. 다만, 그림도 많아 좋았다. 소프트웨어 프로젝트 나무 그림이 특히 인상 깊다.

[기억에 남는 구절]
소프트웨어 프로젝트 나무에서 보다시피 프로젝트의 기둥은 SRS다. 프로젝트에서 가장 중요한 것이 무엇이냐고 하면 단연 SRS이다. SRS없이 설계를 하고, 구현을 하는 것은 나무의 몸통이 없이 나뭇가지와 나뭇잎이 허공에 둥둥 떠다니는 것과 같다.

SRS Template 소개
1. Introduction(개요)
2. Overall Description(전체 설명)
3. Environment(환경)
4. External Interface Requirement(외부 인터페이스 요구사항)
5. Performance Requirement(성능 요구사항)
6. Non-Functional Requirement(기능 이외의 요구사항)
7. Functional Requirement(기능요구사항)
=> 삼성중공업ERP에 투입되었을때, 실력없는 정사장의 경우 5번을 빼 먹은 것이 틀림없다.물론, 그위엔 을이 있어 면피했을 수도 있겠으나......
저작자 표시
Posted by iarchitect

당신은 웹2.0 개발자입니까? (2008/12/29)
박지강 지음| 한빛미디어 | 2007.7.6 (2쇄) |ISBN 9788979144628 (13000)


우와 2쇄다. 거기다 나온 시점이 2007년 2월16일이니, 분명 탁월했단 말은 해줘야 겠다. 현재 2008년 12월 29일 현재로서도 가치 있을 뿐더러 달라진 부분도 거의 없는 듯 하다. 다만, 프로그래밍 부분을 다루긴 했으나 분량이 적어 프로그래밍책이라 하기에는 아쉽다.

달리보면 프로그래머가 아닌 분이 읽어도 좋고, 프로그래머가 읽어도 좋은 면에선 아주 잘된 양다리 포지셔닝이라 불러도 될 것 같다.

명승은( http://blog.jrcho.com/1507 )님의 세미나를 통해 나는 제대로 이해했단 기억이다. 기자였기에 미디어 측면에서도 제대로 분석했다고 보는데, 이 책도 마지막 70여 페이지를 남겨두고 ... ㅋㅋ 올해 안에 다 읽어야 겠다.

웹2.0 제대로 이해하고 싶은 분 일독 권해봅니다.

[기억에 남는 구절]
웹2.0이 사용자의 참여를 기반으로 하는 플랫폼이라는 사실을 이해한다면-16
=>웹2.0 시대라고 해서 1.0이 사라지는 것은 아니다.

'좀 더 가치있는 데이터를 좀 더 빨리 구축할 수 있는 능력' => 웹2.0 개발자가 된다는 것의 정의

메쉬업은 open api를 조합하여 만든 서비스를 말한다-153

표지에 웹2.0은 크리에티브한 YOU를 요구한다 문구가 마음에 쏙 들었다.

저작자 표시
Posted by iarchitect

도와주세요! 팀장이 되었어요 소설로 배우는 프로젝트관리(2008/12/29)
신승환 지음| 위키북스| 2008.7.3 | ISBN 978899293157


 [PMP] 교육 이수 후 1년이 지나버려 시험을 칠 수 없게된 나로선 팀에 대한 상상력은 시크릿이었다. 그러다 도서관에서 보았다.  

앞 부분은 초보팀장으로서 프로젝트 진행에 관한 스토리 텔링이였고, 후반부엔 팀장으로서 관리 기법을 하나씩 상황과 더불어 이야기 하고, 구루의 충고란 타이틀로 정리하는 식이었다. 프로젝트는 모두 다르다project is unique는 정의도 있듯이 PMBOK 같은 책이 아닌 다음에야 전체를 커버하지 못함을 알기에 비교적 실망없이 읽었다. 정확히 말하면, 빈틈이 참 많다고 생각된다.

그랬기에 타이틀에도 적었듯이 팀장(PM이 아니다. PL도 될 수 있다)으로 어떻게 해야 된다는 것으로 읽기엔  모자라는 책일 수 있겠지만, 온전한 팀원이 되고자 하는 이라면 효용이 있겠다. 읽고난 후 메세지가 남는 책은 아니다 싶다. 다만 임백준씨 처럼 프로그래머 대상으로 책을 내는 열정에 딴지 걸고 싶은 생각은 없다.

팀의 역학에 대한 이야기도 그리 많지 않고... 어떤 면에선 [프로그래밍 심리학]이 낫지 않을까!

다른 의견을 가지는 부분도 있다. [개발자 교환 불가능의 법칙]은 참 생뚱 맞다. 거기에 내 생각은 이젠 프로젝트가 처음부터 새로운 부분은 없기에 비슷한 분야의 개발 경험이 있는 실력자가 있다면 커버링 가능할 수 있음을 이야기 하고 싶다. 다만, 비용 측면에서 그것이 쉽지 않겠지만 말이다. 이제 컴퓨터 분야도 50년이 넘은 숙성된 시기이다. 초기가 아니므로, 해결의 관점에서 딜레마에 빠질 필요는 없는데 싶어 언급해 보았다. 물론, 저자는 정확히 기술 지식과 도메인 지식을 언급하면서 설명하는 부분이 있기에 언급의 의도와 다를 수 있음도 알지만 적어보았다.

[기억에 남는 구절]
스탠드업 미팅에선 어제 한 일, 오늘 할 일, 이슈 사항을 짧게 이야기 하는 거야-113
멘토링은 보고 라인이 아닌 자발적인 관계일 때 효과적이죠-138
1. 꼭 할 일을 안 한다. 2. 하지 않아도 될 일을 많이 한다. 3. 업무 시간 동안 집중하지 않는다-226 => 내 이야기다*_*
사람들이 그들의 태도들 간 또는 행동 간에 비일관성이나 모순이 존재할 때 이러한 비일관성이나 모순을 불쾌하게 여기며, 이것을 감소시키려고 한다는 이론이다. 인지부조화 -234



저작자 표시
Posted by iarchitect

정보트래핑(원하는 정보를 자동으로 수집하는 웹 모니터링 기법) (2008/07/13)
타라 칼리셰인지음/yuna옮김|에이콘| 2007.10.20 | ISBN 9788960770218


책에 쓰인 기술은 알고 있기에 어떤 내용일까? 란 당연한 궁금함과 이런 류의 책은 술술 읽힐 수 있을까? 란 발전된 궁금함에 잡았다. 미국 사이트가 많이 안내 되어 있는게 아쉽긴 했다. 한국에 유사 사이트가 있는지 찾아보면 제법 있을 터인데......

1. 주제를 고려해 신중하게 검색문을 작성한다.
2. 검색할 수 있는 자료들을 살펴보고 평가한다.
3. 검색문을 작성한다.
4. 결과를 받아 보고 평가한다.-p17

키워드: RSS, RSS Feed, 이메일 알림, 페이지 모니터, 멀티미디어 트래핑, 태그와 태화의 트래핑, 위키위키, 제외 검색어, 개인 자체 블로그 운영.

[기억에 남는 구절]
이 책의 목적을 알면 쉽게 읽힌다.
이 책은 바로 이렇게 정적이고 일회성에 그치는 웹 검색이 아니라 계속해서 변화하는 정보를 '낚아들이는trapping' 것, 최대한 자동화된 방법으로 지속적으로 정보를 수집하는 일에 대해 다룹니다.-p16
=>살아 있는 물고기(검색하는 데이터 자체가 변화한다는 것)를 제대로 낚는 법(트래핑)을 알아야 한다.
Posted by iarchitect

사랑하지 않으면 떠나라(2008/06/13)
차드 파울러Chad Folwer지음/송우일옮김|인사이트|2008.1.11|ISBN 9788991268357


제목에 때문에 잡히지가 않았다. 사랑이란 감정은 2-3년짜리 유통기한이 있는 걸 믿는 나로선 말이다. 다행히 원제가 "My Job went to India: 52 Ways to save your job"이라서 시작했다. 경영이 아닌 프로그래머가 쓴 자기 계발서는 그리 만나기 힘들기에 ... 거기다 데이비드 토마스가 써보라고 했다니 귀가 솔깃할 수 밖에.

자기계발서를 많이 읽지 않은 프로그래머라면 한번 읽어보길 권한다.

미국인으로서 인도에서 겪은 일을 쓴 것이다. 거기엔 서양인이 동양에 살아보고 컨버전스 할 수 있는 이야기가 제법 많다. 하지만, 착하지 않는 책 가격은 예전 [http://blog.jrcho.com/1485] 과 마찬가지로 구입하기엔...... 물론, 도서관에 보였기에 잡았다는 게 우선이겠지만.

윤석철 교수의 책과 비슷하게 책이 한 주제를 향해 가지만, 꼭지별로 나뉘어 있어서 흐름이 딱 맞다고 볼 수 없는 경우도 있고, 자기계발서에서 재미난 스토리텔링으로 읽어 그런지 신선하지는 않았다.
 
하지만, 프로그래머가 읽는다면 동의하며 읽어내긴 할 것이다. 자기계발서란 생각보다 프로젝트나 프로그래밍이 사람/문화/기술에 대한 고찰로 바라보면 말이다. 나 역시 술술 읽었다. 하지만, 뭐뭐 해라는 식의 작은 꼭지 제목들은 기억해낼 수도 없고, 금방 잊혀져 버린다는 것이 이런 포맷으로 된 책들의 아쉬운 부분이지 않을까! 생각해 보았다.

멘토에 관한 이야긴 재미났을 것이다.

[기억에 남는 구절]
만기일까지 뭘 하도록 요구 받았나? 무슨 약속을  했나? 자신이 무시당했다면 자신이 생각했던 것과 받아들여진 것들 둘다 기록하라. 언제 마무리했는지 기록하라
"인식 주체가 인식대상은 어떻게 인식하느냐" /주체(인간)-인식(언어)-세계(대상) 개념어사전에서... 연결되어
치우쳐있음을 인정하라
비지니스 분야 경험을 자신의 능력중 중요한 부분으로 생각해야 한다.- DDD와 관련 있다. 이건 어찌보면 암묵지를 늘여야 살아남을 수 있다는, 높은 급여를 받고 살 수 있다는 메세지로 들였다.
정체된 비지니스 분야에서 개발 일을 계속 하는 것은 고이자율 예금 상품이 나왔는데, 이자율이 낮은 계좌에 예금을 계속 내버려두는 것과 같은 좋지 않은 투자 선택이다.-45
전설적인 재즈 기타리스트 팻 패스니(Pat Mathney)는 젊은 연주자들에게 조언을 한마디 했다. "속해 있는 밴드에서 항상 가장 못하는 사람이 되라"-75 역설적 조언.
무언가 정말 자신이 가치 있게 되기 위해서는 피, 땀, 눈물 그리고 돈을 쏟아 부어야 한다.-89
지난 수년간 함께 일했던 최고 소프트웨어 개발자 중 많은 이가 자신의 도메인에서는 몇 명 비지니스 고객보다 더 전문가가 됐다-93
'맨 아랫줄(bottom line)'이 왜 당기순손익을 의미하게 됐는지 알아보자-97
마틴 파울러(각주에 친척이 아니라고 적음)가 방갈로드에서 개발자들에게 강연하는 것을 봤다. 그는 무엇에 대해 정말 배우고 싶을 때마다 그것에 대해 글을 쓴다고 이야기 했다.-105
MDA에 대해 조사하라. 몇가지 사용할 수 있는 도구를 써보라
'배움의 의자에 안주하지 말고 떨쳐 일어나 일을 끝맺어야 함을 의미한다.-133

참고] http://pragprog.com/titles/mjwti/my-job-went-to-india

한글차례
1. 당신의 시장을 선택하라.
2. 자신에게 투자하라
3. 실행
4. 마케팅은 높으신 분들만 하는게 아니다.
5. 자신의 강점을 유지보수하라
6. 그들을 이길 수 없다면
영어차례
1. Choosing YourMarket
2. Investing in Your Product
3. Executing
4. Marketing...Not Just for Suits
5. Maintaining Your Edge
6. If You Can’t Beat ’Em
Posted by iarchitect

프로그래밍 수련법The Practice of Programming(2008/05/18)
브라이언W.커니핸,롭 파이크지음/김정민,장혜식,신성국옮김|인사이트|2008.3.3|ISBN 9788991268210 (13560)

표지가 다르고  제목은 같은 [고려대학교 프로그래밍 시스템 연구회]에서 번역한 책을 가지고 있다. 그랬기에 다시 구입하긴 무리가 있었다. 다행히 도서관에서 만날 수 있었다. 518의 행운으로 정독 완료. 기술서이지만, 병법서(철학서)로 여기고 배워도 될 책이기에^^; 풀어야 할 문제도 많기도 하고... 기술을 온전히 습득했냐고 물으면 네라고 자신있게 말하진 못하겠다. 하지만, 현실에 해결할 수 있는 레퍼런스로도 생각하고 있어서 인지 가볍게 읽었다. (언제나 가벼운게 나쁘고 무거운게 좋은 것은 아니다) 그리고, 내용 중에 알고 있는 것도 대략 70%는 넘었기에.

다시 보니 변명인 글이다.

책꽂이엔 동일 저자(들)의 [The Unix Programming Environment (영문판)]도 있다. 역시나 다 읽진 못했다. 왜냐구? 유닉스 코딩할 기회는 별로 없었기에 소스가 지천으로 깔려 있다는 생각 때문인지도... ... 아니 나는 geek하지 못하다. 하지만, 필요할 때 참고해 코딩하는 수준은 언제나 되었다.

이번 역자 중 김정민씨를 안다. 그의 역에 대해 뭐라할 영어 수준은 되지 못하나, 한가진 안다. 그의 번역은 편역이라는 것을. 1999.2월에 나온 책임에도
아직도 신선(?)하다. 아는 것 만큼 보이나니.

쉽게 평할 수 있는 책이 아니어서 후기를 미뤘는데, 진중권의 강의에 영향을 받았다. 그의 말에 따르면 이론이란 걸 경전처럼 받들면 안된다는 것을. 기술서이기에 용(用)이 주가 되어야 된다는 생각까지 미치고......

깔끔하게 잘 씌여진 책(원전)이다. 브라이언 커니건의 홈페이지[
http://www.cs.bell-labs.com/who/bwk/index.html  ]에 가 보면 원전 표지도 볼 수 있다. 거기에도 한글판은 이 책이 아니라 위에 소개한 책인데......

[ 이 책의 온전한 장점]
범주화가 잘 되어 있다. 처음 전산을 하고자 하는 사람이라면, 알고리즘, 자료구조, 프로그래밍 언어로 나누는 것엔 동의할 테지만, 그 다음 나가야 할 범주화에 대한 색다른 실마릴 차례로 제공하고 있다. 어른의 학습엔 범주화가 들어가기에 이 책을 통해 자신 만의 길을 세워 보는 것도 좋겠다.
링크]
http://www.cs.bell-labs.com/cm/cs/tpop/toc.html  

- 손으로 읽어야 된다.

[기억에 남는 구절]
마지막 else를 생략할 수 있지만, 에러 메세지를 뿌리도록 디폴트를 넣어두면 발생해서는 안 되는 상황이 발생하는 걸 알아채는데 도움이 된다.-p20
'매직넘버(magic numbers)'는 프로그램 내에서 쓰이는 상수,배열의 크기,문자열에서의 글자 위치, 변환 계수나 그 외 여러 가지 특정한 숫자 값들을 말한다.-p26

- 요약글도 제법 많아져서 생략

Posted by iarchitect

 
소프트웨어, 누가 이렇게 개떡같이 만든거야 (2008/05/)
데이비드S.플랫지음/윤성준옮김|인사이트|2008.04.04 |ISBN 9788991268395


어떤 인연으로 ?]
- 옮긴이의 책을 두 세권 읽어 보았기에, 좋은 외서라 변역했겠지 싶어,
- 저자의 책도 한권 정도 보았기에,
구입했다. 다만, 책 값(14,000원)이라 주저주저 하다 나온지 2주 후에 구입했던 것 같다.

왜 구입했니?]
요새 PMP를 준비하는데 이런 책이 도움될 것 같고, 전공과 연관있는 책은 쉽게 지나치지 못한 내 성격때문이기도 하고...  버스 안에서 버스가 어디로 가는지 바라보고 싶은 마음도 조금은 있었고 ...

어떻게 읽었니?]
한자리에 바로 읽지는 못했어! 그렇게 재미나진 않았거던. 방법을 찾았지. 미루지 않고 완독할 그 방법 말야. 당근 직장인이야 틈새를 활용 할 수 있는 출/퇴근 시간 밖에 더 있겠어? 그래서 운좋게 눈으로만 읽지 않았다고, 대화하며 읽었더랬지.

그래서 알았지. 이 책이 말하고자 하는 게 역지사지란  걸! 하지만, 알잖아 프로그래밍에서 내가 너가 된다는 것, SWAP하기 위해선 매개체가 존재해야 한다는 거 말야. 다시 말해 무한대로 접근은 가능하지만 온전한 역지사지는 존재하지 않는다는 그것 말야.

거기에 또 하나의 절망이 떠오르게 되더라. 이제 주먹구구 식으로 만드는 프로그램은 살길이 없다는 거지! 다시 말해 배고픔으로 만드는 소프트웨어 성공신화는 갈수록 힘들어진다는 거. QA와 설계, UX 등등 제대로 모여야 된다는 것, 거기엔 물론, 프로그래머도 있어야겠지!  

-------
개발자란 타이틀을 가지고 있어서 그의 geek한 주장을 온전히 받아들이기 보단 비판적으로 접근했어! 그리고 난 알았지! 난 geek하진 않다는 것을.
그리고, 마이크로소프트에 대한 이야긴 넘한 것 같더라. 이런 대변적 성격의 글을 돈내고 구입해 읽은 것 본전생각나게 함. (내용이 상당히 평이함/ 개발자가 사용자 관점에서 보아야 한다는 주장말고는 신선한게 없음)

[기억에 남는 구절]
빠르고 값싼 전송 서비스라는 기능이 지금까지 웹의 가장 큰 성공 요인이라 할 수 있습니다.-p69

Posted by iarchitect

똑똑하고 100배 일 잘하는 개발자 모시기Smart and gets things done 
조엘 스폴스키지음/이석중옮김|위키북스|2007.09.18|248p|ISBN 9788995856482

[조엘 온 소프트웨어 http://blog.jrcho.com/82 ]를 읽었다. 오늘은 그의 또 다른 책을 읽었다. 작고 페이지도 적어 금방 읽었다. 예전 그의 의견(글)은 처음엔 대단하다 생각했었다. 지금도 다시봐도 좋은 글이라 인정은 해주겠으나, 이젠 소화를 해서 그런지......
그렇다고 그의 스마트함을 깎아 내릴 의도는 없다.

그는 (내가) 가보지 않은 길을 갔던 것이다. 흔히 개발자가 마음먹고 하고자 하는 그런 회사를 그는 경영하고 있는 것이다. 거기에 부러움이 없다면 그건 거짓일테지! 하지만, 10년을 겪고 나니 그것은 일부분인게야.

그는 포인터와 재귀용법을 반복 용어로 사용하고 있다. 구식인 거다. 그의 말대로 중요성을 무시하는게 아니라 반복이 지겹다는 뜻. 내가 생각하는 포인터나 재귀용법은 안다의 차원이 아니라 사용하다보면 익숙해지는 것 이상은 아니다. 물론, c코딩을 해야 하겠지만.

이번엔 똑똑한 개발자가 어떻게 하면 되는가에 대한 궁금증에 저번에도 반 읽었지만, 다시 잡게 된 것이다. 한데 그는 자기 회사 자랑을 하더라. 물론 스티브 맥코넬이 말한 고수와 초보의 만배가 차이난다는 생산성 이야기는 흥미롭기도 하다.

아니 자랑이라기보다 자신이 생각하는 개발자에 대한 처우를 정리하고 있다고 봐도 되겠다. 그의 글이 꼭 객관성/주관성 이렇게 나눌 필요는 없다. 개발자 1인 1실을 지켜주고 싶어하는 마음과 새로운 언어를 배우는 프로그래머를 보면 열정있는 사람이라고 하는 것.

노동절 머리 식힐 책이었다.
Posted by iarchitect

자바스크립트 for 웹2.0  (2008/02/14)
셸리 파워즈 저/김태경,김대영 공역 | 한빛미디어 | 2007년 05월 | ISBN-13 : 9788979144871

경력 10년 차인데 자바스크립트 책을 보고 있노라면 좀 뭐 같이 보는 이가 있다. 프리랜서들과 작업해서 그런지 더욱 그런 것 같다. 분명 그들은 표현하지 않음에도 느낀다는 건 어쩌면 내 자격지심일 것은 자명한 일이다. 겸손해지고 모른다고 언제든 말할 수 있고, 또 모르기에 열심히 배우는 것에 주저하지 않기!를 또 한번 제대로 느끼게 해준 책이다. 나는 자바스크립트를 제대로 모른다. 진실로.

역자 서문에 "자바스크립트를 프로그래밍 언어의 관점에서 접근한다는 점이다" 란 것이 이 책 전체를 표현한다고 본다. 그리고, 나 역시 언어로서 제대로 대접해야 함을 깊이 인정했다. 방법서의 효용은 기술습득 및 이용에 있다. 그렇다면 이책은 나에게 오랜만에 제대로 된 낚시법을 배워준 책이다. 난이도와 체계도 찰떡궁합이었다.  그렇게, 온전히 제대로 실습까지 하면서 읽어냈다.(전체 14장 중에 13장 까지만)

14장은 단박에 이해할 수 없는 내용이다. 변명같지만, prototype만 가지고도 몇권 씌여져 있기 때문이다. 좀더 찬찬히 보고 제대로 이해할 수 있을때가 되면 Xquared http://xquared.springbook.playmaru.net/ 과 더불어 정리할 예정!

[기억남는 구절]

0, "", NaN, null, undefined 는 false다.
나머지는 전부 true 다
-p75  => 위 대목을 읽으면서 책읽는 이유 한가지를 발견했다. 그것은 달인(고수)으로 가는 시간 단축인 것이다. 아직은 시간 축만이 공평함으로... ... ... 물론, 자기와 맞는 책을 만났을 경우지만. 그렇기에 양서 고르는 법에 통달해 있어야 한다.

[연결]  내가 쓴 자바스크립트 관련 글
http://blog.jrcho.com/1251
http://blog.jrcho.com/1248
http://blog.jrcho.com/1307
http://blog.jrcho.com/1268 
Posted by iarchitect

IT EXPERT ASP.NET 2.0 웹프로젝트와 실전 프로그래밍
조성진 지음| 한빛미디어(주) | 2006.11.15| ISBN 8979144180 18000


ASP.NET 2.0 프로젝트를 투입 때문에 이 책을 구입했다. MCT인 사장의 말도 한 몫 했다. 그러나, 대략 보고 투입하면서 구현에만 신경쓰다. 이제는 정리해야 되지 싶어, 정리하려고 한다. 1년 지났음에도 asp.net에 아는 거 물어보면 말할 게 없다.*_*

머릿말에 "외국의 유명한 저서 중에는 개념적이고 실무에서는 좀처럼 사용할 일이 없는 내용에 대해 너무 깊이 설명하는 경우가 있는데, 필자의 경우에는 별로 도움을 받지 못했다. 따라서, 이 책에서는 실무에서 사용할 수 있는 내용들을 다루고자 노력했다. 조성진( jigae_at_hanmail.neet) " 이 글에 밑줄 쫘악 긋고 해보는 중.

이 책의 학습 로드맵 참 좋다^^ 하튼 이 책에 있는 내용을 다해 봤다면, asp.net 2.0으로 하는 프젝은 참여가능 하지 않을까!


또하나의 장점은 asp.net 1.0 책이 CD에 pdf로 제공 되고 있는 점이다. 그렇다고 쉽거나 효율, 효과적이란 말은 아니다. 개인마다 학습능력 차이가 있음도 인정하자구~

Chapter 1. What's new in ASP.NET 2.0?
01. asp.net 2.0의 새로운 특징들
생산성/유지및 관리/퍼포먼스/확장성
p22 '선언적'이란 의 설명에서 덧붙일게 있다면 java나 다른 언어 역시 선언적 프로그래밍(?)이 추세인듯. 태그로 넣어두고

p23 웹파트는 각 사용자가 자신이 사용하는 페이지 요소들을 추가, 삭제 및 숮어할 수 있는 응용프로그램 서비스로서, 요즘 대형 사이트들은 이런 종류의 서비스를 하는 곳이 많다.
p25 웹 파트 서비스도 개인 설정의 한 종류라고 볼 수 있다.
p29 어댑터를 이용하면 새로운 브라우저나 장비에 대한 지원이 필요할 때 컨트롤을 직접 수정할 필요가 없고 컨트롤의 처리 단계(예: Init, Load, Render 등)를 재정의하는 외부 모듈을 작성하면 된다.

p31
ASP.NET 2.0 Architecture
서버컨트롤
표준 컨트롤, 데이터, 유효성 검사, 탐색, 로그인, 웹파트
페이지 효과
마스터페이지, 테마와 스킨, 어댑터, 프로필
응용 프로그램 서비스
캐시, 역할, 프로필, 웹 파트, 멤버 자격, 응용 프로그램 관리, 사이트 탐색

Chapter 2. 개발 도구와 개발 언어
p61 foreach 문으로 컬렉션 형식의 개체를 순환할 수 있도록 하려면 IEnumerable과 IEnumerator 인터페이스를 컬렉션에서 구현해야 한다.
참고]
http://network.hanb.co.kr/view.php?bi_id=652 
http://msdn2.microsoft.com/en-us/library/system.collections.ienumerable(vs.71).aspx

Chap 11. 멤버십(Membership)과 역할(Role) 시스템

01 membership과 role 시스템의 기본
02 membership service와 role service 사용하기
03 응용 예제 - 역할 기반 포럼

링크] Security Guideliness: ASP.NET 2.0  (역시나 링크가 바뀜)
http://msdn2.microsoft.com/en-us/library/ms998258.aspx

Chap 13. 사용자 프로필(발음 proufail 이다.*_*)
- 현재 프로젝트에는 자체 MembershipProvider과  ProfileBase를 상속 받아 구현(두개 클래스), 이용하고 있어 깊숙히 알 필요가 없었는데, 신입사원이 물어보기에 정리하면서 해 보다. 사실 anonymous로 접속. web.config에 있는 속성을 이용해서 보여주려고 했는데, 잘 안되어서 보고 정리하다. 개념은 완전 이해했고, 예제 보면서 실행해보니 이해가 충분히 되더라!

01 Profile 소개
Profile 실행주기
p827 한 번 읽은 Profile 속성은 포스트백될 때 재사용될 수 있도록 ViewState 속성에 저장한다.
Profile에 저장하는 속성 중 데이터가 너무 큰 속성이 포함되는 것은 좋지 않다.

02 프로필의 활용
p829 'machine.config' 의 설정은 각 응용 프로그램의 'web.config'에서 별도의 구성을 하지 않으면 기본적으로 사용되는 설정이므로 알아둘 필요가 있다.

WSAT web site adminiation tool

aspnet_regsql.exe SQL 서버에 asp.net 서비스들에 대한 구성을 하는 도구
1] http://blog.naver.com/webmon/26267308
2] \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ 아래에 있다.

p830 aspnet_regsql.exe 는 SQL 서버에 asp.net 서비스들에 대한 구성을 하는 도구
p841 profile 속성을 익명 사용자가 액세스하도록 하려면 <profile>...</profile>....<add> 태그의 allowAnonymous를 true로 지정하면 된다.

p842 <anonymousIdentification enable="true"/>
ProfileManager.DeleteInactiveProfiles 메서드를 이용해 제거할 수 있다.

익명 데이터를 회원 데이터로 마이그레이션 MigrateAnonymous

p847 AnonymousIdentificationModule : 익명 식별자를 관리

저작자 표시
Posted by iarchitect


임백준의소프트웨어산책-소프트웨어에대한새로운시선그리고통찰력(2007/10/20)
임백준 지음| 한빛미디어| 2005.05.30 | ISBN 897914329X (13560)


책읽고 요약하기를 반복한다고 전진하는 건 아니더라. 물론, 하지 않는 것 보단 낫다고 변명은 할 수 있겠지만, 권수 늘이기만 가지고 실력이 늘진 않는단 사실은 정해진 답이다.

가볍게 현재 위치에서 그가 가름해 놓은 몇 분야에 대해 정리해 볼 수 있어 좋더라! 다만, xp 컨설팅을 하고 있는 김창준씨를 알아서 일까?! 그가 말하는 TDD와 유닛테스트의 의도는 본질과 다른 그 무엇이 느껴지더라! 
참고] TDD에 대한 김창준씨의 짧지만 긴 여운의 동영상.
http://dory.mncast.com/mncHMovie.swf?movieID=10042747720070912135133&skinNum=1

아쉬운 건 그는 미국에 있으면서도 구루들 이야긴 전해 주지 않는다. 오롯시 그의 경험 안에서 이야기 한다. 그렇다고 신선함이 느껴지지 않고,

언제나 느끼는 것이지만, 궁극에 우린 자기化가 필요한 것이다. 거기에 타인의 인정을 통한, 자기자신을 이기는 극기와 더불어서 말이다. 실력없는 나의 짧은 식견으로 임백준이란 저자를 재단하기 위해 읽는 것은 아님을 잊지 않고자 한다. 그의 내공은 나보다 높다. 그랬기에 읽었다.

그가 가름한 분야 하나 하나가 또 큰 줄기인데 그것을 정리해 볼 요량으로 쓴 것은 욕심이겠거니 했다. PP를 쓴 사람들은 최소한 20년의 경험으로 시작했단 사실을 본다면 대단한 도전일 수도 있으나 그가 쓴 글이 존재하지 않는 이론이거나 요약이라고 보기엔 모자란 구석이 제법되기에 ... ... 모자르다란 표현보다 이런 표현이 정확하겠다. 어떤 어떤 부분에선 이렇게 설명했다면 더욱 단순명료하게 전달했지 않았을까!

통찰이란 단어를 쓴다는 건 저자의 나이가 꽤 되었을 것이라 짐작하게 한다. 아니더라! 그는 통찰이란 단어에 빚지고 사는 것이더라! 그랬기에 실력 있음을 보이려고 하는 것 같다. (존 마에다 교수는 [The Laws of Simplicity/단순함의 법칙] http://blog.jrcho.com/1210 의 서문에서  불가능함으로 포기했다)

[책 읽고서 생각한 내 역량강화]
이제는 내 분야에 대해서도 여유있는 시선과 배움, 애정으로 보고자 읽기 시작해야 한다. 미뤄둔 전공서를 제대로 읽고 정리해야 한다. 물론, 내공도 쌓고.
지금까지 내 공부와 관련한 읽기를 미루었을까? 정리해본 이유는 첫째, 배우는 법을 찾고 있다. 아직도 찾고 있냐고 하면 할 말 없다. 그렇다. 이젠 시작해야한다 이젠,이 변명도 통하지 않는다. 둘째, 조금 해보려 하면 어렵고, 타이핑 하기 싫었다는, 귀찮았다는 이유, 셋째, 내 분야의 지식은 거기가서 빠져들어 배울 수 밖에 없다는 고정관념. 이렇게 세가지를 찾아보았다.
현재의 내 수준을 솔직히 인정하고 받아들이고, 발전 모색해야 한다. [뉴욕의 프로그래머 http://blog.jrcho.com/1337  ], [달인 http://blog.jrcho.com/1331  ]을 통해 연결 사고를 해보았다는 것에 만족.  (바로 앞 두권이 좋았다는 이야기가 아니라 관을 만들어줄 재료가 되었다고 표현하는게 낫겠다.)

오픈소스를 통해서라도 코드 꾸준히 읽고 노력해야겠다 결심. 내가 잘하는 그 무엇에 집중해 경제적 자립(=부자가 되기)후 꿈 이루기를 해야 된다는 결론.

-책을 통해 배울 수 있는 지식은 한정적이며, 미래에 필요한 지식은 암묵지임을 경험을 통해 스승을 통해 배워야 됨을 잊지 말자!

[기억에 남는 구절]
패턴이라는 것은 사실 객체지향프로그래밍의 전유물은 아니다.-p49
=> 비동시성의 동시성
객체를 설계하는 전형적인 방법!-p49

smalltalk의 창시자 알란케이
"객체지향 프로그래밍에서 서로 다른 객체가 동일한 메세지에 대해서 저마다 고유한 방식으로 응답할 수 있도록 하는 것이 다형성이다."

module cohesion응집 -해당 업무와 관련된 코드만 존재
module coupling결속 -여러 개의 다른 모듈이 서로 연관되는 정도를 의미
응집 높아야 하고 결속은 낮아야 한다.

소프트웨어 공학에 따르면 오늘날의 소프트웨어 생산과정에서 가장 큰 비용이 들어가는 부분은 설계나 코딩이 아니다. 소프트웨어를 출시한 다음에 일어나는 유지보수(maintenace)이다.-p63

'이론'을 학습하는 것 보다는 코딩과 같은 구체적인 '행위'가 더 중요하다고 보았다.-p67
해커와 화가를 읽었는데, 저자가 위와 같은 의도로 적었는지 몰랐다.*_* 다시 읽어볼 예정

소프트웨어 시스템은 시간이 지남에 따라서 성장하도록 되어 있다.-p74

Refactoring, Reuse and Reality - p85

Posted by iarchitect

뉴욕의 프로그래머 (2007/10/20)
임백준 지음| 한빛미디어| 2007.09.04 | ISBN 9788979145120
 

그런대로 읽을만 했다. 약간의 현학과 포장이느껴졌다. 뭐 그렇다고 어색하다,싫다는 표현은 아니다. 재미나게 읽었다. 다만, 가름 마다 경구를 3-4개씩 넣어 스토리에 빠지길 거부하는 나를 보다.

자신의 경험이 한 방향이란 것을 말하면서도 전체를 커버하려는 노력을 무섭게 하고 있다. 한계를 인정한다 해놓고 인정하지 않는 것. 뭐 그런 느낌받았다. 경험에서 출발하면서 모든 경험치를 가질려는 무모함이 느껴졌다. 미안하게도 하드커버라니 ... 구입을 포기하고 서점에서 주말을 이용해 2회에 걸쳐 완독. 그렇다 그렇게 가볍게 읽어 버렸다. 

기억에 남는 건 " 프로그래머는, 입으로 말하는 사람이 아니라 이렇게 코드로 말하는 사람이라는 생각이 절절하게 솟아올랐다. P.271" 였다. 하지만, 아이러니 하게도 오픈소스에 대한 이야기는 없더라! 고수를 직접 대면치 못한다면 그 사람들의 소스를 통해서라도 느낄 수 없을까 하는 생각이 한참 동안 떠나지 않아 적어본다. [code reading] 책이 떠오름.

그리고 그가 말하는 고수는 하수를 알아보지만 하수는 고수를 알아보지 못한다는 ... 의미심장하다. 그렇지만, 프로그래머로서는 하수일지 몰라도 그들 수준이 모든 방면에 그럴리는 없다는 것이다. 비동시성의 동시성인 것이고, 그렇다면 하수는 고수를 알아보지 못한다는 것엔 약간의 이어지는 깊은 사고가 필요된다.

천재성의 핵심은 무엇을 무시해도 좋은지 아는데 있다. -월리엄 제임스
=> 단순함의 법칙을 읽고 있어서 인지 ... 쉽게 지나가지 않는 경구였다.
한순간의 통찰은 때로 인생 전체의 경험에 필적하기도 한다.
Posted by iarchitect

좋은코딩 나쁜코딩(2007/08/11)
박진수 지음| 한빛미디어 | 2004.9.6 | ISBN 89-7914-299-4 13560

이런 류의 책을 이제야 찾게 된 것은 아니다. 제법 많이 읽은 것 같지만, 아니 솔직히 제법 많이 사두긴 했지만, 제대로 읽은 적은 없다고 말하는 것이 정확한 표현!  더 이상 미룰 순 없다. '늦었다고 생각 했을 때가 가장 빠르다'란 경구를 기억해 내고 읽기 시작! 단행본에 편집이 깔끔했다. 거기에, 책 뒤에 있는 참고도서에 좋아하는 스티븐 맥코넬도 소개가 있어서 잡고 읽다.

그런데 아쉽게 C 프로그래밍 기반이다. 내용이야 그런대로 좋고, 틀린 말 하는 건 아니지만, 정말 일반적인 이야기만 적혀 있었다. 물론, 내가 몸담은 프로그래밍 시간도 제법 되어서 이미 알고 있는 것에 대한 기술이어 그렇게 판단하고 있는지도 모르겠다.

그냥 이것으로 코딩 스타일을 정리해본 것으로 일단 만족!

vs 2005 ide를 사용하면서 그가 이야기 하는 절반은 고민할 필요가 없는 것이요. 나머지 중에도 대부분이 사람들이 아는 내용들이었다. 코드 접기가 되는 에디터에서는 별 어렵게 생각하지 않아도 될 것이 많은 것 같다. 이미 대중화 되고 알고 있는 것에 대한 이야기는......

사족]스티븐 맥코넬의 code complete이 아니라 professional software development 가 인용도서인 것을 보면, 이 책 참고도서로는 약간 동떨어진...... 무엇.

이젠 refactoring 책을 정독해볼 작정하다.

[기억에 남는 구절]
코딩 스타일을 배워야 하는 이유
1. 개발 기간을 지연시키는 것을 예방한다.
2. 유지보수를 쉽게 한다.
3. 오류 없는 정확한 프로그램을 만든다.

RAF (run and fix)

조건 연산자는 경우에 따라서 효율성을 발휘한다.-p136
정밀한 계산에는 float형보다 double형을 사용하라-p177
계산 단위를 반드시 명시하라-p180
입력 값을 저장할 변수의 크기를 충분히 확보하라-p208
치환 문자열은 반드시 괄호로 씌워라-p221

[참고]
The Mythical Man-Month: Essays on Software Engineering, 2nd Ed 1999
http://www.cprogramming.com/
The C Programming Language 1978, 2nd 1988 K&R1, K&R2
http://www.sourceforge.net -> 공개소스 중에서
coding style
coding standard

닷넷에선 이런 툴이 있다. (아직 잘 사용하는 편은 아니다^^;)
http://www.gotdotnet.com/team/fxcop/Default.aspx
Posted by iarchitect


제대로 정확히 p266-267에 나오는 구만!!
영어를 정확히 해석 할 줄 알았다면 단번에 끝날 이야기인데
이제야 난 안다. *_*

기본값이 session = "true"이다.

<% @pate contentType="text/html" session="true" %>
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 12 in the jsp file: /w.jsp
Generated servlet error:
Duplicate local variable session


session="false" 가되어야 session 변수를 선언해 사용할 수 있다.
HttpSession session = request.getSession();
또는
HttpSession session = request.getSession(true); // 동일한 결과

으로 세션값을 얻을 수 있다.
단, session 값이 새로운 값인지 기존 값인지 알기 위해서

if (session.IsNew())
값으로 체크해서 true이면 새롭게 금방 만든 놈이란 뜻이다.
그리고 이미 만들어져 있는 세션값을 확인하고 싶을때

HttpSession session = request.getSession(false):
if(session == null)

session 값의 null값 체크를 하면 된다.

=> 그런데, 해당 session이란 변수를 가지고 있는 것도 잊지 마세요!
(좋은 단어가 있더군요! 내장객체란 사실 )
Posted by iarchitect

해커와 화가 (원제: Big Ideas From The Computer Age) (2006/03/16)
폴 그레이엄 지음/임백준 역| 한빛미디어 | 2005년 10월 | ISBN 89-7914-342-7


한참 동안 빠져 본 책이다. 강남 교보문고에 갔을때 서서 웬만히 읽었고, 구입하고 싶었는데,지나치고 나니 생각나지 않았다. 그냥 요새 글로 쓰는 프로그래머들의 또 다른 이야기 정도가 아니었나 치부한 듯 했다.

그러다 인터넷의 힘! 아무 생각없이 바구니에 넣고 구입^^; ... ... 거의 3주간을 출/퇴근 시간에 계속 잡고 있었다. 저자가 참 대단하다는 생각이 들었다.
예전엔, 내가 할 수 있는 일에 대해선 대단이란 생각보다 내가 왜 못했을까에 촛점을 맞추었다면 이젠 타이밍이란 [블링크],[의식혁명] 이런 책을 읽고, 읽으면서 can 이란 의미보다 딱딱한 표현이 되겠지만, 제품 출하란 의미에 점수를 주기로 한 것 같다. 보는 것과 만드는 것은 또 다른 문제임을 정확히 알게 되었다.
철든거지 뭐 ^^'

개발자로서 꼭 읽어볼 책임을 느꼈다. 혼자 개발하는 게 아니라면, 경제적인 부분을 비롯해 같은 길을 가는 사람이라면 서로에게는 말하지 못한다해도 이 책을 읽는 동안 대화할 수 있을 것이다. 아쉽게 미국 사람이라 영어로 해야하는 황당함도 있었지만 -_-

요새 이런 담론에 대해서 조엘의 책이 물꼬를 튀웠기에 뭐 내용을 세세히 이야기 할 필요는 없을 것 같고, 나만의 느낌을 정리하는 것이 더 낫다고 보기에...

1.
학교에 가는 이유에 대해 솔직히 대학생때 생각했었다. 대안 학교, 일본의 실태를 보여주는 타큐멘터리에 학교가지 않으려는 아이등등 을 보면서 당연한 것이 당연한 것으로 받아들여지지 않는 그때가 나에게도 있었음을 알았다.

그냥 주어진 것에 대해선 분명 소중함이나 절실함이 내포되지 못한다. 그리고 수동적이 되는 것이다. 현재 취업 하지 못하는 젊은 친구들이 그 절실함을 주도적으로 바꾼다면 입사후 다시 수동모드로 원위치 되지 않을 것이다. 하지만, 공무원을 적성에 상관없이 준비하는 사람을 보고 있노라면 다시 수동적이 되기 위해 노력하는 느낌이 든다. 각설하고 나는 왜 학교에 가라고 했을때 갔을때 진지한 질문을 왜 하지 못했을까!
대학생이 되려고 했을 시기엔 더 깊이 생각해볼 수 있었는데 ... ^^'

공립학교의 교사들은 감옥의 간수와 비슷하다.-p23
=> 미국역시 마찬가지인게야

2.
그들이 말하는 해킹은 내가 알고 있는 것 처럼 소프트웨어를 디자인 하는 것이 아니라 단지 구현하는 것에 불과함을 알게 되었다.-p45
=>현재의 내 처지다. 그들은 Yahoo!를 말한다.

언젠가 큰돈을 벌고 싶다면, 이것을 잘 기억해 두기 바란다. 왜냐면 스타트업 회사가 승리할 수 있는 비결 중 하나이기 때문이다.-p46
=>[마케팅 불변의 법칙]에서 말하는 선도자의 법칙이다. 이 책에서 꽤 나오는 몇가지 경제와 관련 되는 내용은 다 마** 이책을 벗어나지 않더라!

3.
비슷한 마인드 였다. 돈오점수에 대한 이야기라고 말해야 할까? 미국인도 기저엔 비슷하다. 하지만, 같지 않다는 사실에 출발해야 된다.

4.
해커들이 다음 세대를 위한 아이디어를 얻는 방법은 현존하는 테크놀로지의 내부를 들여다 보는 것이다.-p86
=>뉴튼과 아인슈타인의 관계를 생각해냈다. 그리고, OPEN SOURCE의 의미를 진실로 알게 되었다.

5.
그의 부자가 된 스토리를 이야기 하고 있다. 나도 이런 방향을 가진 멋진 CEO를 만났다면 돈에 얽매이는 시간을 줄였을텐데...
그들은 더 유연하고, 적은 비용이 요구되는 새로운 테크놀로지를 원하기 때문에 뭔가 새로운 것을 시도할 준비가 되어 있는 것이다.-p120
=> 그렇기에 신입이 존재하고 새로운 것에 대해 도전할 용기있는 사람이 필요한 것이다. 고이면 ...

프로그래머는 버그에 대해서 걱정하고, 시스템 관리자는 인프라스트럭처에 대해서 걱정한다.-p129
웹 기반 어플리케이션에서는 이러한 두 가지 스트레스가 하나로 결합한다. 프로그래머가 시스템 관리자가 되는 것인데 ...-p130
=> 와우 공감한다. 이젠 프로그래머란 단어에 시스템 관리자의 능력중 절반을 포함하고 있다.

당신이 만든 소프트웨어를 비교할 대상은 경쟁자의 소프트웨어가 아니라, 소프트웨어가 도달할 수 있는 최고의 이상적인 경지가 되어야 한다.-p135

6.
경제적으로 보았을 때 스타트업이란 한 사람이 평생 할 일을 몇 년이라는 짧은 시간으로 압축시키는 것이다.-p139
낙서장에 쓰는 계산이 다 그렇듯 이 계산 역시 많은 허점을 가지고 있다. 따라서 구체적인 숫자에 집착할 필요는 없다.-p139
=> 선택과 집중이란 [성공7습관/3습관] 소중한 것 부터 먼저하라! 구절이 생각났다.
실질적인 부를 창출해서 그에 상응하는 대가를 받는 방법이다.-p141
=>글처럼 쉽지 않지만, 이 것이 머리속에서 단순하게 명확히 들어가 있어야 된다. mp3를 3년전에 멋진 디자인으로 만들어 낼 수 있는 것과 지금 만들어 낼 수 있는 것의 시간 변수도 포함할 것.

바이웹 시절에 우리는 생산력이 괴물 수준에 가까운 친구를 본 적이 있었다.-p146
=> 그렇다. 내주위에서도 이런 ... 지식 집적 사회(제가 만든 말)에서는 집적 수준의 차이가 수십만 불의 가치를 지니게 할 것이다. 예전 부터 느낀 것은 그것을 인정하고 우대하는 분위기가 괴물 수준의 그 친구를 계속 유지하게 만드는 것일 게야... 그것이 예전 세미나에서 [지식->지혜]의 전환이라고 이야기 하는 것이겠지! 평균값으로 뭉뚱그려 망치지는 말자구...^^'

부자가 되기 위해서는 두 가지가 구비될 필요가 있다. 두 가지란 바로 정당한 평가(measurement)와 영향력(leverage)이다.-p151
부자가 되고 싶은 사람은 다른 사람의 부를 빼앗는 것이 아니라 스스로 부를 창출함으로써 부자가 될 수 있다.-p166
=>저번에도 이야기한 블루오션에서 이야기 한 푸른 대양을 이야기 하고 있다.

8.
스팸에 관한 사색적인 스토리는 구체적인 코딩을 해보니, 발생할 경우의 수가 10개로 준비했는데, 실제 해보니 2-3의 if문의 줄일 수 있다는, 물론, 직관적인 몇가지의 아이디어를 추론을 통해 해결한다는 ...
=> 메일 함 확인할 때 제대로 확인하고 걸러진 스팸에 가서 .. 혹시나 내가 읽어야 만 할 편지를 제목만으로 확인하고 읽어보고 지우는 것이 가장 편하더라구!!

9.
이퀀트에 대한 코페르니쿠스의 미학적 반대는 그가 프톨레마이오스의 시스템 전체적으로 부정하는 동기를 마련해주었다. 토마스 쿤, /코페르니쿠스의 혁명/-p198
=>두번 읽으니 이해가 되는군. 그리스 신화에서 벗어난다.

바우하우스의 건축사들이 설리반이 말한 "형식은 기능을 따른다"는 명제를 채택했을 때 그들이 의미하는 것은, 형식은 기능에 의해서 결정되어야 한다는 것이었다.-p207
간단하고 쉽게 보이도록 드러내기란 무수한 연습을 통해서만 가능해진다. 연습이 하는 일은 대개 의식적인 생각을 요구하는 일들을 수행하기 위해서 무의식을 훈련시키는 것이다.-p208
=> 그런가? 코딩 연습 해야겠군^^;
자연을 닮은 것이 본질적으로 좋은 이유는 자연이 이미 오랜 세월 동안 문제를 해결하기 위해서 노력해 왔기 때문이다.-p210
=>그런가?
좋은 설계는 재설계이다. 무엇이든 맨 처음에 제대로 만들어 내기는 어려운 법이다.-p211
아름다움을 상상하는 것보다 추함을 지켜보는 것이 쉽다. 아름다운 것을 만들어낸 사람들은 자기 눈에 추하게 보이는 것을 고치는 과정을 거쳤다.-p217
창조 이전에 자기 숙제부터 해야 하는 것이다. 어떤 분야의 전문가로 성장함에 따라서, "이런 이것보다 더 나은 방법이 있을 거야" 라는 희미한 목소리를 듣게 될 것이다. -p218

10.
11.
공리의 역할을 담당하는 근본적인 연산의 집합과 이러한 연산을 이용해서 작성할 수 있는 언어의 나머지 부분이 그것이다.-p233
=>솔직히 이해못한 부분 대충은 안다고 떠벌리는 부분
집을 살 때 위치가 가장 중요한 것과 비슷하다. 다른 것은 나중에 고칠 수 있지만, 위치는 고칠 수 없다.-p233
=> 비유의 딴지 걸기. 팔고 다른 곳에 또 구입하면 되요^^

가난하게 자라서 병원에 가거나 하는 중요한 일에도 차마 돈을 쓰지 못하겠다는 생각과 같다.-p236
=> 적절한 비유... 어셈과 C를 하는 사람에겐 이런 스트레스가 개발 도중에 많이 존재할 거야.
내가 알고 있는 프로그래머도 자기가 처음 부터 다 새롭게 코딩한다는 ... 그러다 결혼하고 아이가 크고
그렇게 되다보면 적응 (?) 하겠지!!
=>낭비 -> 엔트로피의 다른말, 좋은/나쁜 -> 인간의 frame으로 보는 걸게야

12.
1980년 이래로 기계의 명령어는 인간 프로그래머가 아니라 컴파일러에 의해 고안되어 왔다.-p258

10/11/12 컴퓨터 언어에 대해 이야기 하더라. 대체로 한번 생각해 볼 만 하지!

13.
1950년대에 탄생한 이 언어가 오늘날에도 여전히 유효한 이유에 대한 간단한 설명은 바로 그것이 단순한 테크놀로지가 아니라 수학이었다는 사실일 것이다.-p273
=> 아 그래서 12장에서 lisp을 닮아간다는 소릴 한거야!

우리는 이제 최고의 소프트웨어는 열 명 이하의 사람으로 이루어진 팀에 의해서 만들어질 수 있다는 사실을 분명히 알게 되었다. -p281

패턴이라는 것이 사실상 위에서 본 (c)의 경우, 즉, 인간 컴파일러에 대한 증거가 아닐까 의심스럽다.-p292
=>이런 생각도 할 수 있겠군!!

14.
E.B. 화이트는 "가장 좋은 글쓰기는 다시 쓰는 것이다"-p310
그런데, 프로그래밍언어는 유독 이렇게 훌륭한 재설계의 세례를 충분히 받지 못하고 있다.
좋은 소프트웨어를 작성하려면 두 개의 상반되는 생각을 머리속에 동시에 가지고 있어야 한다. -p310
꿈의 언어는 오픈소스에 그치는 것이 아니라, 오픈 디지아니까지 포함하는 것이다.-p315

15
고객이 원하는 것이 무언가-> 고객이 필요한 것이 무언가? 를 찾아야 된다.정말 옳은 시각...



_______
각 장마다 줄긋고 토 단 소리를 정리 해보다. 책을 펼치는 것 보다 클릭이 편하기에 ... ... 무슨 말이야.
Posted by iarchitect

자바 IO & NIO 네트워크 프로그래밍
김성박, 송지훈 지음| 한빛미디어 | 2004년 09월| ISBN 8979142935


1장. 네트워크 기초
현장 포인트
01. 네트워크와 네트워킹
02. 네트워크 통신 방법
03. OSI 7계층
04. 인터넷 프로토콜
05. 인터넷 애플리케이션 프로토콜
06. TCP/IP 스택
07. 소켓과 포트
08. 보안
생각해볼 문제

- 읽어보니 *_* 깊이가 있는가!


2장. 스레드
현장 포인트
01. 스레드란
02. 스레드의 생성과 시작
03. 스레드의 종료
04. 데몬스레드와 join()
05. 스레드 그룹
06. 스레드 우선순위
07. 멀티스레드와 동기화
08. 생성자-소비자 패턴
생각해볼 문제

-


3장. 자바 IO
현장 포인트
01. 자바 IO에 대한 선입견
02. 자바 IO도 객체다
03. 재사용되기 위해서 설계된 자바 IO
04. 특수한 IO 객체
05. 자바 IO란?
06. 생성자가 중요한 자바 IO 관련 클래스
07. 자바 IO 프로그래밍을 잘하려면
생각해볼 문제

- 제대로 읽다.
- 부모가 자식을 가리킬 때에 메소드가 오버라이딩되었다면 자식 메소드를 사용한다는 규칙-p88
Posted by iarchitect

MySQL 시스템 관리와 프로그래밍 : 자바, PHP, 펄, C, 파이썬 (개정판)
조지 리스,랜디 제이 야거,팀 킹,휴 윌리엄스 지음/서환수 옮김| 한빛미디어 | 2002년 10월


구입한지 한참 되는 책인데 안보고 꽂아만 두다가
이번에 잡았는데 다 아는 내용인 듯 하다.

하지만 개발에서 중요한 것은 이 책에서 내가 필요한 5%를 찾아
내것으로 만드는 것 그것이 필요한 것이므로...
1부와 8장/13장/ 읽고 실행해보다.

15/16/17장이 개발하면서 필요한 자료...

[13장 코드를 typing 한 이유]
위와 같은 소스를 타이핑 해 본 것은 이책이 나온 2002년의 코드를 사용할 수 있다는 것이다.
기본적인 개념을 이해/암기하고 있다면,
JDK 의 버전이 바뀐다고 legacy code를 사용할 수 없는 것은 아니란 점을 확인하기 위해
따라해 보고 실행까지 해보다.

(사실, jdbc를 이용한 적이 별로 없어서 눈으로는 익숙하나... 이번 기회에 코딩도 익숙해지기 위해서 정확히 이해하고 코딩하고, 기존 샘플을 제대로 확인하고 하는데 촛점을 두다.




1부. 소개
1장.MySQL
- mSQL에서 ... 뭐 MySQL 5.0이 출시되는데 ... 기능이 대폭 업그레이드 되었다고한다. 생각엔 ms-sql 6.5 정도 되지 않을까?
2장.설치
- mysql 계정으로 돌아가는 것이 중요
- 컴파일시 charset=euckr 로 ...
- mysqladmin -u root password **** ( root 계정 설정/ 운영체제의 root 계정과는 다르다.)
- mysq_install_db 로 설정해둔 위치에 mysql DB와 test DB가 생성된다.
- chown -R mysql.mysql data 해줘야 된다.
- mysqld_safe &
- shutdown은 mysqladmin -u root -p shutdown

3장.MySQL 의 SQL

읽으면서 실행본 sql 문...

create table temptable
(
uid mediumint(3) NOT NULL PRIMARY KEY,
name varchar(12) NOT NULL,
title varchar(255) NOT NULL,
page_text varchar(100) NOT NULL,
FULLTEXT( title, page_text),
fruit ENUM ( 'apple', 'oragne', 'pear'),
UNIQUE INDEX index2(name));
select url from Document
where match( title, page_text) against ('java')
select url from Document
where match(title, page_text) against('+MySQL -Java' IN BOOLEAN MODE);
SET AUTOCOMMIT = 0;
BEGIN;

COMMIT;
ALTER TABLE;
BEGIN;
CREATE INDEX;
DROP DATABASE;
DROP TABLE
LOCK TABLES
RENAME TABLE
TRUNCATE
UNLOCK TABLES

ROLLBACK;

LOCK
LOCK TABLES ACCOUNT WRITE;
UNLOCK TABLES;

DATE_FORMAT('1972-07-22', '%W, %M %D, %Y');



4장.데이터베이스 관리
*설정
- /etc/my.cnf 화일이 없다. *_*
- 서버 시작과 종료

*로그
- 에러/이진/질의/느린 질의 로그
- /etc/logstate.d/mysql

*설정 및 튜닝
*액세스 제어
*로깅
*백업 및 복구
mysqldump
mysqlcheck


테이블 관리



2부. MySQL 관리
5장.퍼포먼스 튜닝
6장. 보안
7장. 데이터베이스 설계

3부. MySQL 프로그래밍

- 데이터베이스의 파워는 그 데이터베이스를 사용하는 도구를 통해 느낄 수 있다.

8장.데이터베이스 애플리케이션
구조
1] c/s : application logic , thin client, fat client
2] distributed application (multi tier) : 비지니스 로직을 분리되어 있어 UI변경에 쉽게 대응 할 수 있고, 문제 해결 및 시스템 확장이 쉽다.
3] web

접속과 트랜잭션
데이터베이스 API를 통해 처리
언어에 종속적인 API를 사용하기 위해서는 개념적인 부분을 이해해야 된다.

1] 접속
-접속하여 데이터 주고 받기, 작업 완료후 모든 자원 해제
-에러
-예외

2] 트랜잭션
무엇보다 트랜잭션을 사용하면 속도가 크게 저하된다는 문제점이 있다. MySQL은 원래 빠른 데이터베이스 엔진을 목표로 삼았기 때문에 트랜잭션을 지원하지 않았다.
transaction isolation level

용어]
Dirty read / Repeatable read/ Phantom read

3] 트랜잭션과 관련된 데이터 처리에 대한 기본 내용




9장.펄
10장. 파이썬
11장. PHP
12장. C API
13장. 자바
JDBC API
type 1, type 2, type 3, type 4


MySQL 연결

InitialContext ctx = new InitialContext()
DataSource ds = (DataSource)ctx.lookup("jdbc/myds")
Connection conn = ds.getConnection("userid", "password")



드라이버 관리자 연결

java -Djdbc.drivers=com.caucho.jdbc.mysql.Driver MyAppClass

Class.forName("twz1.jdbc.mysql.jdbcMysqlDriver").newInstance()

Connection conn = DriverManager.getConnection("jdbc:mysql-caucho://carthago/web", "someuser", "somepass");

JDBC 예제

import java.sql.*;

public class Connect
{
public static void main(String[] args)
{
Connection conn = null;

try
{
String url = "jdbc:mysql://athens.imaginary.com/Web?user=someuser&password=somepass";

Statement stmt;
ResultSet rs;
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection(url);

stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM TEST ORDER BY TEST_ID");
System.out.println("Got results:");
while(rs.next())
{
int a = rs.getInt("TEST_ID");
String str = rs.getString("TEST_VAL");


System.out.println("key=" + a);
System.out.println("str="+str);

}
stmt.close();

}
catch(SQLException e)
{
e.printStackTrace();
}
finally
{
if( conn != null)
{
try { con.close(); }
catch(Exception e) {}
}
}
}
}


데이터 소스
class="com.evermind.sql.DriverManagerDataSource"
name="AddressBook"
url="jdbc:mysql//cartage/Address?user=test&password=test"







14장. MySQL 확장

4부. MySQL 레퍼런스
15장. MySQL에서의 SQL 문법
16장. MySQL 데이터 유형
17장. 연산자와 함수
18장. MySQL PHP API 레퍼런스
19장. C 레퍼런스
20장. 파이선 DB-API
Posted by iarchitect

뇌를자극하는Redhat Fedora : 리눅스 서버 & 네트웍크 (2005/10/23)
우재남 지음 | 한빛미디어 |2005년 9월 13일 | ISBN 8979143419


아직도 리눅스 학습이 필요한가?

그것에 대한 답은 맞다. 그리고 그러나 아니다 이다.

왜냐면 OS의 복잡한 체계를 한권의 책으로 모두 알 수 있다면 그건 ... 거기에 컴퓨터 학이 가지는 애매모한 점은 또 다른 것이다.

다른 학문도 같겠지만, 컴퓨터는 머리속 계산만으로 되는 것이 아니다. 생각과 몸이 일치되듯, 지혜와 키보드가 일치해야 나오는 작업이다. 거기에 만들어둔 프로그램을 책(BOOK)으로 본다면 엮어져있는 그 실타래에서 규칙을 발견하고 거기에 또 다른 줄을 이어가는 것 결코 쉽지 않다.

그전 명주실을 이어왔다면 이젠 다른 실로 이어가고 있어서 필요성은 5%라 보지만 구입했다. 거기엔 [리눅스 보안과 최적화 완벽 솔루션]이라는 1+1 서비스가 한 몫을 하기도 했다만. 아쉽게도 그것은 7.2 기준이고, 현재는 RHEL3과 Fedora Core 4가 나와 있는 상태이니...

이것에서 또 이 OS학에 대한 애매한 점이 나타나는 것이다 . 비슷하게 보이나 계속 변하고 버전업되는 물위에 오리가 물아래 발로 헤엄치어 유지하는 .

하여튼 쉽게 읽기보다는 타입핑에 집중해서 보고 있다.
실습했다.

wmware를 이제야 사용해본다. 쉽구만. remote로 접근 가능한 redhat 7.2가 있지만, 우선순위로 보면 그리 높지 않음에도 오늘 반나절을 이것과 씨름해서 273까지 보았다.



이책의 특징은 장마다 quiz가 있어서 그것 보다보면서 다시 한번 요약하는 것이 효용인 것 같다.

1부. 성공적인 학습을 위한 준비 작업 및 설치
1장. 실습 환경 구축
01 가상머신 소개 및 설치
가상머신의 소개
가상머신의 개념
가상머신 프로그램의 종류
Vmware의 설치
<실습>윈도우즈에 VMWARE 5.0을 설치하자
02 가상머신 생성
가상머신의 겉모양
가상머신(가짜 컴퓨터)의 생성
<실습>Vmware 내부에 페도라 서버를 설치할 가짜 컴퓨터를 만들자
03 실습 네트워크 환경과 Vmware의 특징
일반적인 네트워크 환경과 가상 네트워크 환경
Vmware의 특징
04 원활한 실습 진행을 위한 준비
Vmware의 단축키 설정과 네트워크 정보 파악
<실습>핫 키를 변경하자
<실습>Vmware의 DHCP 서버 정보를 파악하자
페도라 다운로드 또는 페도라 CD를 ISO 이미지로 만드는 법
<실습>페도라 ISO 파일 다운로드 및 가상 CD 프로그램을 사용하자
호스트 OS와 게스트 OS 간의 파일 전송법
<실습>호스트 OS인 윈도우즈에 자체적으로 제공하는 FTP 서버를 설치하자
<실습>C:WindowsMedia 폴더에 있는 파일들을 ISO 파일로 만들고, 게스트 OS에 전송하자
이것만은 알고 갑시다

=> wmware 를 보면서 ms의 virtual pc가 떠오르는 것은 ...^^' 가상 머신의 끝은 오에스 에물레이션 그렇다면 오에스를 만드는 사람들이 가장 잘할 수 있는 것이 아닐까? ^^'
물론 POSIX같은 규칙이 정확히 지켜진다면 잘 만들겠지만 서도 ... ㅋㅋ

=> FreeBSD를 이것에 인스톨해서 사용해봐야겠다. 건데 한달 사용하는 버전인데 ... 그것이 문제로다^^"


2장. 페도라 리눅스에 관한 간단한 소개
01 리눅스의 개요
리눅스의 탄생
GNU 프로젝트
커널
02 페도라 리눅스 배포판
레드햇 리눅스와 페도라 리눅스
Fedora Core 4의 하드웨어 요구 사항
Fedora Core 4에서 주요한 패키지
이것만은 알고 갑시다

=> RHEL과 Fedora Core 4와의 차이점을 안다. 유지보수 개념이 들어간 가격 결코 만만치 않은
RHEL ...의 방향은 UNIX의 시장을 갉아먹는 것인지 Windows 서버 시장을 파고드는 것인지...
하여튼 Fedora Core4 계보는 사라지지 않을 것 같다.


3장. 페도라 리눅스 설치
01 페도라 설치
페도라 서버 설치하기
<실습>페도라 서버를 설치하자
Vmware에 페도라 설치 후 추가 사항
<실습>Vmware Tools를 설치하자
<실습>Vmware의 Suspend 기능을 사용해 보자
<실습>Vmware의 Snapshot 기능을 사용해 보자
페도라 클라이언트 설치하기
<실습>페도라 클라이언트를 설치하자
페도라 서버B 설치하기
<실습>페도라 서버B를 설치하자
윈도우즈 클라이언트 설치하기
<실습>윈도우즈 클라이언트를 설치하자
이것만은 알고 갑시다

=> 설치는 정말 쉽다. SeLinux란 옵션이 새롭긴 하고, IPTABLES 사용법이 새롭겠지만서도...


2부. 기본 개념과 관리자의 기본 역할
4장. 서버 구축을 위해 알아야 할 핵심 개념과 명령어
01 페도라 운영을 위해서 먼저 알아야 할 개념
시작과 종료
시스템 재가동
로그아웃
가상 콘솔
<실습>여러 명의 사용자가 접속해 있을 때 시스템이 어떻게 종료되는지 확인해 보자
자동 완성과 도스 키
에디터의 사용
<실습>페도라에서 자주 사용하는 에디터를 연습하자
<실습>vi 에디터가 비정상적으로 종료되었을 때 생기는 파일을 확인하고 조치법을 알아두자
man 사용법
마운트와 CD-ROM/RW/DVD의 활용
<실습>CD-ROM이 자동으로 마운트되는 기능을 확인해 보고, Off하자
<실습>리눅스에서 ISO 파일을 생성하고 사용해 보자
02 기본 명령어
03 사용자 관리와 파일 속성
사용자와 그룹
<실습>사용자 및 그룹 관련 파일을 확인해 보자
파일과 디렉토리의 소유와 허가권
<실습>하드 링크와 소프트 링크를 생성해 보자
04 관리 명령어
RPM의 개념과 활용
<실습>rpm 패키지를 이용해서 프로그램을 설치해 보자
YUM
<실습>의존성 문제가 있는 dovecot 패키지를 yum 명령으로 설치해 보자
파일 압축과 파일 묶기
파일 위치 검색
시스템 재설정(system-config-xxx)
<실습>Vmware에서 Fedora Core 4의 기본 해상도인 800x600을 1024x768로 변경해 보자
cron과 at
<실습>매월 15일 새벽 3시 1분에 "/home" 디렉토리와 그 하위 디렉토리를 /backup 디렉토리에
백업하도록 하자
05 네트워크 관련 설정 및 명령어
<실습>네트워크 카드를 제거하고 새로 장착한 후에 정상적으로 네트워크가 될 수 있도록
설정해 보자
06 파이프, 필터, 리다이렉션
07 프로세스, 데몬, 서비스
프로세스
<실습>포그라운드와 백그라운드 프로세스를 연습하자
데몬
08 서버 데몬의 유형
Standalone 타입의 데몬
inetd 타입(또는 xinetd 타입)의 데몬
09 응급 복구
<실습>잊어버린 root의 비밀번호를 새 비밀번호로 변경하자
10 부트 로더
<실습>GRUB 부트 로더에 암호를 설정하자
11 간단한 커널 컴파일
모듈의 개념과 커널 컴파일의 필요성
커널 컴파일(업그레이드)
<실습>Fedora Core 4의 커널을 최신의 커널로 업그레이드하자
이것만은 알고 갑시다

=>간단하지 않은 내용을 간단하게 적었다. 커널 컴파일까지 다루고 있으니 그렇지 아니한가? ㅋㅋ
깔끔하게 정리했다.


5장. 윈도우즈 사용자를 위한 관리자의 역할
01 GNOME 데스크탑 환경 설정
<실습>X 윈도우의 바탕 화면 및 테마를 설정해 보자
02 X 윈도우용 응용 프로그램
인터넷 응용 프로그램
사운드 카드 설정
멀티미디어 응용 프로그램
에디터
CD/DVD 레코딩 툴
<실습>CD/DVD 레코딩 툴을 설치하자
그래픽 프로그램
오픈오피스
03 KDE 데스크탑의 사용
<실습>KDE를 설치하고, 기본 환경으로 KDE를 사용해 보자
이것만은 알고 갑시다


=> KDE 세팅 방법과 간단한 사용법을 설명하고 있다. mount 명령 설명을 통해 iso파일 생성과 이용법에 대해서도 적고 있다.
Posted by iarchitect
 
3. 준비는 철저하게 : 선행조건
Measure twice , cut once,
Upstream prerequistes
목수들 사이에서 전해지는 속담에 " 자로 재기는 두번 하고 자르기는 한번 하라" -p66
구현과 설계에 대한 이야기가 아닐까? 그다음 upstream 은 어떻게 번역해야 될까?
prerequiste 이건 만으로 선행이란 의미는 들어가는데 upstream에 조건이 들어간다는 걸까?

번역이 잘못되어 있다는 게 아니라. 저자가 이야기 한 바를 정확히 알고 싶어서 써보는 거임다.

3.1 선행조건의 중요성
꽤 동의하고 있는 주제이다. 설계를 어떻게 하는가에 따라서 구현에 막히는 부분이 줄어들고,
수정 비용이 절감한다는 것은 누구나 ...
그렇기에 PM의 협상력이 중요하다. 된다고만 밀어부치는게 아니라 구현 가능한 것과 불가능한 것, 어려운 것 (구현하더라도 고객 만족이 되기 힘든 사항) 등등을 잘 정리해서 어필을 잘해야 된다는
한국적 사고인지는 몰라도 그렇다고 본다.

[경험담]
1년 프젝중 6개월 프젝 경험으로 이야길 해보면,  고객이 첫 시스템 구현을 2년 동안 했기에 정확히 알고 있는 상황이라 오히려 XP 방법론을 사용하면 괜찮겠더라 싶었다.
그런데, PM은 3개월 만에 그만두고, PL의 요구사항 정리는 없고,  그리고,  프리랜서의 사고에 막혀 힘들었던 적이 있다. 1차 오픈 후 회사내 새로운 프젝때문에 빠져 나온 것에 행복감을 느꼈다.
1년중 6개월을 하고 나왔음에도 만족감도 없이 *_*  하지만, 그 기간에 피플웨어를 한번 더 읽고 내가 PL이란 가정하에 준비하곤 했다.

1차 오픈일때는 최소한의 요구만 수용하고 완료일에 맞춰 구현 가능한 개발이 이루어져야 되지 않을까? 개발의 연속성은 없고, clear case (cvs 의 IBM 버전정도로 생각하시면 되겠습니다.) 등과 같은 툴은 개발하면서 이용도 못하고, 역시나 수작업으로만 ... 우띠 했다~~ tivoli도 사용해보긴 했군!

가장 큰 책임은 여하튼 PM이란 걸 다시금 느꼈다.
10억 단위의 큰 프젝인 경우에는 분명 PM의 선경험이 가장 큰 도움이 될 것인데, 그리고 인화 란 부분도 역시나 실력으로 이끌어주었다면... 여기까지.

steve 책의 장점은 근거의 자료 제시이다.
선행 조건을 착실히 할 경우 비용이 줄고, 거기에 한꺼번에 개정비용이 들어가지 않는다는 잇점이 있음을 도표로 보여주고있다.



3.2 소프트웨어 종류 결정
- 비지니스 시스템
예) 인터넷 사이트, 창고관리, 정보관리 , 봉급 지불 시스템
- 미션-크리티컬 시스템
내장형 소프트웨어, 게임, 패키지소프트웨어
- 내장형 라이프-크리티컬 시스템
항공 전자 소프트웨어 운영체제, 의학 소프트웨어

대상이 다르면 적용 방법도 다름을 보여 주고 있다.

3.3 문제정의의  선행 조건
steve 님이 말하는 첫번째 선행 조건은 시스템이 해결해야 하는 문제를 명확하게 기술하는 것이다.-p82란 부분이다.
그다음에 이런 말이 있습니다. 문제 정의는 가능한 해결책에 대해서는 언급하지 않고 문제가 무엇인지를 정의한다.
공감하는 부분입니다.



3.4 요구 사항의 선행 조건
요구 사항에 오류가 없다는 확신이 들었을 때 개발을 시작함으로써, 개발을 시작하고 난 후의 변경 사항을 최소화하는데 도움을 준다.-p84

25% 정도의 요구 사항 변경을 경험한다고 한다.(Boehm 1981;Jones 1994;Jones 2000)-p86

3.5 아키텍처 선행 조건
Posted by iarchitect
책내용을 요약하려고 했었는데 그것보다는 읽고 느낀 점을 적고 반성하고,

적용(이게 가장 중요한 점이다.) 하는 것을

잊으면 안되겠다.


효율적이고, 효과적인 프로그래머가 되기 위해
이번 프젝에서 적용하고 iarchitect 化 되는 것이 우선 순위 임을 잊지 말자.

2. 소프트웨어 개발의 이해를 돕기 위한 비유

- 비유를 통한 접근에 대해 꼼꼼한 레퍼런스와 함께 기술되어 있다.

비유로 인해 불필요한 의사 소통이나 오해가 줄어들고 학습과 교육의 속도가 빨라진다. 실제로, 비유는 개념을 내재화하고 추상화하는 방법이며, 좀더 높은 수준에서 생각하고 낮은 수준에서의 실수를 피하도록 해준다.

- Thomas Kuhn 의 " The Structure of Scientific Revolutions 3rd ed. Chicago IL ( The University of Chicago Press 1996) 을 소개할 정도의 저자의 식견은 높고, 그것을 유지하는 면에서도 존경^^'

친구가 서울대 환경대학원에 다녔는데, 석사1년차 때 배우는 것이고 이야기 하다가 번역본을 구입했는데 이제 읽어보니 페이지가 넘겨지고 있다. 아직 완독은 못했다*_*

하여튼 비유, 모델, 패러다임에 대해 정리해두자!
Posted by iarchitect
4. 루틴의 작성 단계

1) 루틴 설계
- 필요 조건의 체크
- 루틴이 해결할 문제 정의
루틴이 숨기고 있는 정보
영향받는 루틴에 대한 입력
전역 변수를 포함한 루틴으로부터 출력
루틴의 에러 처리 방법
- 루틴 이름
- 루틴에 대한 테스트 방법 결정
- 효율성에 대한 고려
- 알고리즘과 데이터 구조 연구: 기존 코드(개발되어진) 를 사용하라.
-PDL 작성 : 한국어로 작성하자.
: 이부분이 아주 재미나다. 실행해볼 것이다. 이번 프젝에...
: 책에서 본 구절이 대부분 금과옥조가 되지만 그중 하나만 꼽아서 뻬기는 수고를 한다면,
PDL은 코드 자체보다 좀더 고수준의 설계를 유도한다.

- 데이터에 대한 고려
- PDL 체크
- 반복

2) 설계 체크

3) 루틴 코드화
- 루틴 선언의 표기
- PDL을 고수준 주석으로 변경
- 각 주석 밑에 코드 입력
- 약식으로 코드 체크
- 뒤처리
- 필요한 단계의 반복

4) 코드 체크
- 루틴의 에러를 눈으로 체크
- 루틴의 컴파일
- 루틴의 에러를 체크하기 위해 컴퓨터를 사용 (ch25/ch25.5)
: 이 개념은 자바에서 철저하게 적용하고 있는 JUnit 부분이다. test  객체를 이용해서 간단한 것은 적용을 해보았지만, 실제 업무에서는 적용해보지 않아서 *_* 이것은 좀더 ... 제대로 ...된 후에 적용해 볼 수 있겠다. 하지만 JUnit 클래스가 아닌 체크 부분에서 적용하는 것은 바로 적응 할 것이다.
- 루틴의 에러 제거 (ch26)

-------
구체적인 설명이어서 좋다. 이런 책을 구입하고 왜 읽으려고 하지 않았을까 ^^;
세부적으로 적는 것은 책을 그대로 옮기는 말고는 없는 것이다.

프로세스化 제대로 느꼈다. 이번 구현 루틴은 위 단계를 참고해야 한다.

but,
class 구현과 trade-off 하는게 쉽지 않더라. 나에겐.
다행스럽게 그 전이를 실무에서 경험한 후에야...


그래서 한글판 2nd 주문 했다. 그리고 어둠세계를 통해 원서를 구해서 유사 챕터 프린터...

구글에서 찾은 페이지...
http://www.itconversations.com/transcripts/82/transcript82-1.html
Posted by iarchitect
정리후 다시 IT분류로 옮길 것이다.

2nd가 나왔는데 1판을 읽기 의욕이 더 생기는 건 왜지?
다 읽고나면 꼭 2판을 봐야지! 이책도 원서와 같이 있지만,
한글판으로 일독하고 쫑 볼 계획이다.

그런뒤 영문판과 저렴하게 팔아봐야지 ...책 잘팔리는데가 있을까?


1.소프트웨어 컨스트럭션에의 초대

- construction이란 용어를 사용하자.

- construction 이 중요한 이유는 비중이 30%-80%를 차지 한다는 것에 있다.
http://blog.naver.com/iarchitect/100016800591  실마리를 얻었다. 창발성과 최적화 등등에 대한 문교수님의 강의는 가슴에 팍팍 와닿다. 기본에 충실해야 된다. 되돌아 가는 게 가장 빠른 길이다. 우선은 내가 가장 시간을 많이 투자한 컴퓨터에 걸어본다. 패턴 책이 눈에 들어오지 않는 이유는 코딩 경험이 많지 않아서이다. 그러니 우선 code reading과 이책으로 기본을 쌓고 나서 ...
내수명은 최소 80이다. 느리게 가더라도 탄탄하게 가자!

- construction은 기본설계와 시스템 테스트 중간에 위치한다.

- 소프트웨어 구현은 소프트웨어 개발 과정의 중심적인 활동이다. -p46
Posted by iarchitect

C배열과 포인터 그리고 자료구조
김권식 (지은이) | 가남사


이책쉽고 잘 정리된 책이다. 한권을 구입했을때 딸려온 책인데 이번기회에 제대로 C를 마스터해보리라. 문법이 아니라 머리속에서 이해하고 라이브러리를 제대로 구축해봐야 겠다.
Posted by iarchitect

조엘 온 소프트웨어 - 유쾌한 오프라인 블로그 (2005/04/25)
조엘 스폴스키 지음/박재호, 이해영 옮김| 에이콘 | 2005년 04월 07일

역자가 마음에 든다. 그는 스티븐 맥코넬의 [프로젝트 쾌속 개발 전략(Rapid Development)]도 번역했는데, 괜찮다.

4장의 유니코드와 문자집합이란 장은 재미나고 깔끔했다. mySQL과 웹애플리케이션과 서비스를 구축하는 나에게도 실체로 와닿고 있다. 예전엔 생각지 못했는데 말이다. gmail.com에서 한글이 깨지는 것과 mysql의 세팅에 따라 한글이 보였음하고 삽질하는 나를 볼때 말이다.
-> 이젠 gmail.com 에서 한글이 깨지지 않는다
..
그게 싫다면 집에가서 아기나 봐야 될지 모르겠습니다란 ... 1장의 글에서 전문성에 대한 화두를 또 한번 발견한다. 회사경험 5년차 난 정말로 전문성이 있는가? 요새 읽고 십여 권의 책 독후감을 써야 되는데 ...이론 바쁘다는 핑계보다 그 책들이 링크되어져있는게 문제다
...

8장 손쉬운 기능명세 작성법 을 읽는데 http://www.construx.com/survivalguide/desspec.htm  이란 url을 찾을 수 있었다. 내가 좋아하는 스티븐 맥코널이다. 이 사람도 은연중에 자기가 옳다는 주장을 하고 있음을 잊지 말고 읽자 신토피컬 독서!!

지금 읽고 있는 부분에서의 이슈는 상황론인 것 같다. 그때 그때 맞는 적절한 도구를 이용하라는 말인지도 모르겠지만, 여하튼 xp를 그리 좋은 방법론으로 보지 않고 있다. 음... http://xper.org 에선 어떻게 말하고 있을까?

유닉스 철학과 원도 철학에 관한 이야길 하는데 갈수록 이사람의 일방성에 반감이 생기는 부분도 있다. 필체는 대부분 내가 MS를 다닐때 이랬고, 자기 product에 관한 이야기가 거슬리기 시작하누만.

그리고 한국여건으로는 그 사람이 적었던 100mb 자료 올리고 내리는 거 정도는 일반화 되어 있음을 모르는 부분도 분명 있다.

[기억에 남는 구절]
* Binary Lagre OBject(BLOB) -p6
* 문자열의 첫 바이트에 바이트개수를 저장하는 방법으로 이를 해결했습니다. 바로 이런 문자열을 파스칼 문자열이라고 합니다. -p10
* 비록 정도는 약하지만, 전형적인 malloc구현을 따를 경우에도 가비지 컬렉션과 유사한 성능 저하 문제가 생기니까요.-p14
* 버그는 발견 즉시 수정해야 합니다. -p28
* 새로운 기능을 소개했다면, 축적된 대규모 버그를 수정하는 작업 없이 해당 기능을 구현해서 즉시 출시할 수 있습니다. p29
=> 이 앞에 내용이 경쟁사에 발 빠르게 대응할 수 있다는 장점....의 이야길 나왔다.
* '명세 없이는 코드도 없다'는 단순한 규칙을 일관되게 주장해야 합니다.-p31
* IBM PC는 OEM 문자집합을 고안했을때, 이 문자집합은 유럽 언어를 위한 몇몇 강조 문자와 수평, 수직, 귀퉁이를 비롯한 각종 선 그리기 문자를 제공했기 때문에, 화면에 그럴싸한 상자를 그리는 데 이런 문자를 사용할 수 있었습니다. -생략- 온갖 OEM 문자 집합 형식이 꿈틀거리며 기억 나오기 시작했으며, 각자 용도에 맞춰 128글자를 정의했습니다.-p45
* 반면에 아시아에서는 사람을 환장하게 만드는 여러 가지 요소를 고려해야만 합니다. 즉 아시아 문자집합이 결코 8비트에 들어갈 수 없는 수천가지 글자로 이뤄져 있다는 사실입니다. 이런 문제점은 일반적으로 DBCS(Double Bytes Character Set)로 부르는 두 바이트 문자 집합 시스템으로 해결합니다. -p46
* U+0645 윈도우 2000/XP에서 charmap 유틸리티를 사용하거나 유니코드 웹사이트를 방문해서 각 글자마다 할당된 유니코드 코드 포인트를 확인할 수 있습니다. -p49
* http://www.unicode.org
Posted by iarchitect

데드라인 : 소설로 읽는 프로젝트 관리(2004/08/01)
톰 디마르코 저/김덕규, 류미정 역 | 인사이트(insight) | 2004년 03월
 

톰 디마르코의 피플웨어를 읽었기에, 데드라인도 바로 구입했다. 한글판도 꽤 마음에 들었다. 

마지막 이야길 읽으면서 아래가 생각났다. 도로표지판을 지나쳐 보지 못한 경우를 생각하다가 놓쳐버린 생각들에 대한 이야기 그리고 메일로 아래 글을 받았다. 역시나...

아무도 남을 가르칠 수 없다.
갈릴레오는 300여 년 전 이런 말을 했다.
"아무도 남을 가르칠 수 없다. 다만, 스스로 깨닫도록 도와줄 수 있을 뿐이다."

비슷한 것으로 체스터 필드경(영국 정치가)은 그의 아들에게 이러한 교훈을
들려주었다.
"가능하면 남보다 현명해져라. 하지만, 그것을 남이 알도록 해서는 안된다."

나는 내가 20년 전에 믿고 있던 일들을 거의 믿지 않고 있다. 아직까지 믿고 있는 것은 단 한 가지 '구구단'뿐이다. 하지만 아인슈타인의 책을 읽고 나서는 그마저도 의심하고 있다. 앞으로 20년이 더 지나면 내가 이 책에서 주장하고 있는 것도 믿지 않게 될지도 모른다. 결국 나는 이전과 달리 모든 일에확신을 갖지 못하고 있는 것이다. - 데일 카네기의 '인간 관계 지도론' 중 에서
Posted by iarchitect