본문 바로가기

Books

(4)
나와 마주서는 용기 첫번째 이야기 : 이제는 나를 들여다봐야 할 때다. "신념과 원칙이 있는 삶은 결코 흔들리지 않는다." "불확실한 세상, 나를 지켜내는 힘" 골드만삭스 부회장에서 하버드대 명교수가 된 로버트 스티븐 캐플린의 인생 특강! 필자는 수년간 명예와 부, 지위를 갖추고 경제적으로도 풍요로운, 소위 "성공"한 사람을 만나왔다. 하지만 이들 중에는 자신의 일에 자긍심을 느끼지 못하고 일에 대한 만족감도 적었으며 자신이 행복하지 않다고 생각하는 사람들이 많았다. 그들의 이야기에는 공통점이 있었다. 금전적인 보상이 직업적 커리어를 계속 이어나가는 동력으로서 결코 충분하지 않다는 것. 과거 꿈꿔왔던 자리에 올라보니, 돈이란 그들이 생각한 것만큼 강력한 것이 아니었다. 남들의 눈에는 대한히 유능한 사람임에도 불구하고, 내 ..
개발자가 꼭 알아둬야 할 유니코드와 문자 집합에 대한 고찰 조엘 온 소프트웨어 신비스러운 Content-Type 태그에 대해 궁금했던 적이 있습니까? HTML 코드에 넣어야 한다는 사실은 알고 있을지 몰라도, 이 태그를 정확히 어떻게 정의해야 할지는 모를 것이다. 외국에 사는 반가운 친구가 보낸 이메일의 제목이'???? ?????? ??? ????' 같은 깨진 글자여서 난감했던 적이 한번쯤 있을 것이다. 나는 많은 소프트웨어 개발자가 문자집합, 인코딩, 유니코드와 같은 신비로운 세계를 재빨리 따라잡지 못하는 사실에 낙담하고 있다. 몇년전 FogBUGZ를 테스트하던 베타 테스터는 시스템이 일본어 이메일을 처리할 수 있는지 궁금해지기 시작했다. 일본어로 된 이메일을 받는다는 것에 대하여 생각해 본적이 없었다. 하지만 우리가 MIME 이메일 메시지를 해석하기 위해 사..
3장 더 나은 코드를 위한 12 단계 조엘 온 소프트웨어 소프트웨어팀이 얼마나 업무를 잘 수행하고 있는지를 측정해보자. 1. 소스코드 관리시스템을 사용하고 있습니까?2. 한방에 빌드를 만들어낼 수 있습니까?3. 일일 빌드를 하고 있습니까?4. 버그 추적시스템을 운영하고 있습니까?5. 코드를 새로 작성하기 전에 버그를 수정합니까?6. 일정을 업데이트하고 있습니까?7. 명세서를 작성하고 있습니까?8. 조용한 작업 환경에서 일하고 있습니까?9. 경제적인 범위 내에서 최고 성능의 도구를 사용하고 있습니까?10. 테스터를 별도로 두고 있습니까?11. 프로그래머 채용 인터뷰 때 코딩 테스트를 합니까?12. 무작위 사용편의성 테스트를 수행하고 있습니까? On my part 3.
2장 - 기본으로 돌아가기 조엘 온 소프트웨어 사람들이 저지르는 가장 큰 실수중 몇 가지는 최저층에서 벌어지는 몇 가지 단순한 동작원리를 자세히 알지 못하거나 아예 잘못 알고 있기 때문에 생긴다고 생각한다."궁전을 멋지게 지었는데 기초공사가 형편 없었다." C에서 문자열이 동작하는 방법을 기억해보자. C문자열은 값이 0인 널(null) 문자로 끝나는 몇 바이트를 포함한다. 이 방식에는 다음과 같은 두 가지 명백한 문제점이 눈에 들어온다.1. 널 문자를 찾아서 문자열 끝까지 가보기 전에는 끝을 알아내는 방법이 없다.2. 문자열 내부에는 어떤 0값도 포함할 수 없으므로, JPEG 그림과 같은 비정형 이진 자료 Binary Large OBject(BLOB)를 C 문자열 내부에 저장할 수 없다. 어떻게 C 문자열을 이런 방식으로 사용하게..