본문 바로가기

책/IT도서리뷰

(7)
The Clean Coder #0(intro) '클린코드'라는 책을 아주 오래 전에 읽어 보았다. 물론 전부 기억이 나진 않지만 그래도 몇몇 중요한 부분은 기억이 새록새록하다. 그 책을 읽었던 이유는 그 당시에 내 업무에 있어서 어느정도의 자신감이 있었고 프로그래밍을 잘하고 싶었다. 하지만 프로그래밍을 잘 한다는 것은 그 당시의 입장에서는 굉장히 모호하며 구체적이지 않았던 것 같다. 그냥 주어진 업무 시간에 기획 요구사항에 대한 좀더 완성도 있는 구현을 하는 정도일까? 사실 이게 전부 일 수도 있다. 어쨋거나, 지금 와서 생각해보면 '클린코드' 의 측면에서만 보았을 때 결국 효율성과 시간 싸움이었고, 음 내가 지금 무슨 말을 하고 싶은 걸까... 그렇다. '클린코드' 는 보편적인 코딩 잘함의 기준으로써 꽤 괜찮은 책이었다. 잘하고 싶은 것에 대한 정..
The Clean Coder #6(마지막) 테스트 전략프로그래머 입장에서 QA 는 오류를 찾지 못해야 한다.QA는 같은 팀이다. QA팀의 가장 중요한 역할은 명세서술과 특징 묘사이다. 적대적이여도 안되고 샤바샤바 관계여서도 안된다.TDD는 강력한 원칙이며 인수테스트는 요구사항을 표현하고 강화하는 가치있는 방법이다.목표를 달성하기 위해 개발팀과 QA가 협업하여 테스트 계층을 만들고 테스트를 자주 실행하여 무결점 상태로 갈 수 있도록 노력해야 한다.시간관리회의거부하기 : 필요 없으면 참석할 필요 없다. 정중히 거절할 수 있어야 한다.중간에 빠져나오기. 최대한 예의 바르게.추정가장 단순하면서도 가장 두려운 행위. 관계를 어긋나게 만드는 불신감의 원인!약속약속은 그 자체. 지켜야 한다. 지키지 못하면 거짓말이나 다름없다.추정하기추정은 불명예가 아니다. ..
The Clean Coder #5 인수 테스트의사소통 또한 프로 개발자의 임무. 의사소통이 정확하고 도움이 되도록 신경써야 한다!요구사항 관련 의사소통흔한 의사소통의 쟁점 = 요구사항 기획 혹은 사업부에서는 자신들이 필요한 것을 설명하고, 그것을 프로그래머가 구현한다. 일반적으론 그렇다.하지만 그 안을 들여다 보았을 때, 요구사항 관련 의사소통은 엄청나게 어렵고, 그 안에서의 오류가 가득 차 있다. 저자의 경혐"어떤 기능에 대한 고객들의 예상은 컴퓨터로 구현하고 나서 보면 그 예상이 틀린 경우가 잦다" 어떻게 하면 프로답게 의사소통 하여 효율을 높일 수 있을까? 시기상조의 정밀도 초기에 너무 정확하게 하려 하지 말자. 양쪽이 원하는 정밀도는 현실적으로 불가능하다. 앞서 이야기한 대로 예상이 바뀌는 경우가 매우 잦기 때문. 불확실성의 원칙..
The Clean Coder #4 코딩 이후 단원부터는앞장에서 말한 프로가 되는 법, 프로가 갖추어야 할 언행, 마음가짐을 위한 구체적 방법론에 대한 이야기를 다루게 된다. 사실 이 방법론에 대한 여러가지 견해가 있고 그에 따른 대가가 있다는 것은 사실이지만, 이 책을 쓴 저자는 모든 사람이 인정하는 "진정한 프로" 라고 생각할 수 있겠다. 따라서 그의 의견을 생각해 보고 현실과 타협할 수 있는 것을 고민해 보아야 한다.저자가 생각하는 코딩에 대한 규칙과 원칙준비된 자세코드.코드는 반드시 동작해야 한다.코드는 고객이 제시한 문제를 반드시 풀어야 한다.코드는 기존 시스템에 잘 녹아들어야 한다.읽기 쉬워야 한다.새벽 3시에 짠 코드일정 마감 때문에 급하게 새벼 3시에 짠 코드가 당시에는 훌륭해 보일 수 있으나, 결국 이 코드는 두고두고 골칫..
The Clean Coder #3 3. 예라고 말하기대표 Say"수익을 어떻게 올릴건지 보여주게. 그러면 프로젝트를 시작하지""프로젝트를 다시 시작하지. 어떻게 수익을 올릴지 찾아보겠네."1번은 소프트웨어를 만지는 사람에겐 충분히 짐 떠넘기기다. 개발자에게 손익을 책임지게 해서는 안된다.개발자는 프로젝트 개발을 위한 약속은 할 수 있을 것이다. 약속을 뜻하는 말말하고 진심을 담고 실행.하겠다고 말한다.진심을 담는다.실제로 실행한다.왜 사람들이 뭔가 하겠다는 말이 대부분 진심으로 하는 약속이 아니라는 이상하 느낌을 계속 받게 될까?직감을 믿는 대신 언어적인 기법으로 사람들의 말이 진심인지 알아낼 수 있다. 약속이 부족함을 알아차리기아래의 단어는 약속이 아니다필요/해야 한다 : 이걸 끝내야 해. 살 좀 빼야할 필요가 있어희망/바람 : 내일까..
The Clean Coder #2 2. 아니라고 말하기 프로라면 권위에 맞설 진실을 말해야 한다. 프로는 관리자에게 아니라고 말하는 용기를 가져야 한다.일정을 지킬 수 없다면 "아니오" 라고 말할 수 있어야 한다. "알았어요 한번 해볼께요" ??? "해볼께요" 는 분명한 약속이 아니다. 해보지만 실패할 수도 있다고 이야기 하는 것이다.일정이 부족하고, 내가 프로라면 '알았어요 한번 해볼께요' 가 아니라 '안됩니다.' 혹은 다른 대안(딜?)을 제시해야 한다. 반대하는 역할관리자가 로그인 페이지를 내일까지 완성해야 한다. 프로그래머는 목적 달성을 위해 추친하고 방어한다. 내일까지는 불가능하다는 것을 알고 있다."좋아요. 해볼께요"
The Clean Coder #1 5장까지 읽은 나의 생각 IT업계에서 프로그래머가 아닌 사람도 4장까지 읽는다면 팀간 협업, 제품 출시, 그 무엇보다 본인의 업무에 큰 도움이 될 것으로 생각된다. 적어도 이런 부류의 책을 읽으려고 하는, 이 책에 호기심이 있는 독자는 프로그래밍을 좀 더 잘하고 싶어하고, 업계종사자로서 좀 더 프로 다운 프로그래머가 되고 싶어서 읽으려 하지 않을까 하는 추측이다. 책 자체는 그렇게 어려운 것은 아니지만 내 생각 정리와 어느정도의 요약이 필요하여 블로그에 정리한다. 그리고 생각보다 프로가 되려고 노력하지 않는 사람이 주위에 많다. 그리고 그들은 점점 월급 도둑, 에너지 벰파이어로 변해간다. professional 의 어원 '프로'는 '프로페셔날((professinal)'의 준말로 '숙련된 사람', '직업적..