알라딘

헤더배너
상품평점 help

분류

이름:랜달 하이드 (Randall Hyde)

최근작
2023년 11월 <컴퓨터통신을 위한 I2C>

Great Code 제1권

이 책 한 권이면 어셈블리 프로그래밍 언어를 익혀야 하는 부담 없이도 컴퓨터 구조에 관한 내용을 공부할 수 있다. C++, VB, 파스칼, 자바 등 여러 고급 언어 프로그래머를 위해 저술됐으며, 컴퓨터 교육과정에서 흔히 다루지 않는 컴퓨터 구조의 기계적인 수준까지 자세하게 다루고 있다.

Great Code Vol.1 2/e

『Write Great Code』(이하 WGC) 시리즈는 작성자 스스로가 자랑스럽게 여기고, 다른 프로그래머에게 영감을 주며, 클라이언트를 만족시키고, 사용자가 편리함을 느낄 수 있게 하는 코드 또 다른 측면으로는 코드 작성을 의뢰한 고객 또는 상사가 값어치를 인정하는 코드를 작성하는 방법을 설명한다. 시리즈 전반에 걸쳐, 다른 프로그래머가 경외하고 존경심을 표현할 만한 소프트웨어의 작성 방법이 과연 무엇인지 알아본다.

Great Code Vol.2 2/e

'훌륭한 코드(great code)(위대한 코드)'란 무엇일까? 이에 대해서는 프로그래머마다 생각이 다를 것이다. 따라서 모든 사람이 만족할 수 있는 포괄적인 정의를 제공하는 것은 불가능하다. 이 책에서 사용할 정의는 다음과 같다. 훌륭한 코드는 소프트웨어의 우수한 특성을 살려 일관성 있게 작성된 소프트웨어다. 특히, 알고리즘을 소스 코드로 구현할 때는 프로그래머의 생각대로 정해진 일련의 규칙을 따른다. 어떤 프로그래머는 이식 가능하고, 주어진 프로그래밍 스타일 지침을 따르거나 특정 언어로 작성되어야(또는 특정 언어로 작성되지 않아야) 훌륭한 코드라고 생각할 수 있다. 또는 가능한 한 단순하게 만들어야 한다거나 빨리 만들 수 있어야 한다고 생각할 수도 있다. 또 다른 관점으로 주어진 시간 내에 정해진 예산 내에서 만들어져야 한다고 할 수도 있다. 훌륭한 코드를 설명하는 여러 가지 관점이 있는데, 한 권의 책에서 제대로 설명하기에는 그 내용이 너무 많다. 『Write Great Code』 시리즈 2편은 그중에서도 주로 '효율적인 성능'에 중점을 둔다. 효율성이 항상 소프트웨어 개발의 주요 목표가 되는 것도 아니고 코드가 반드시 훌륭해야 할 필요는 없지만, 비효율적인 코드가 훌륭한 코드는 아니라는 점에는 모두 동의할 것이다. 게다가 비효율성은 현대 애플리케이션의 주요 문제 중 하나이므로 여러 번 강조해도 될 만큼 중요한 주제다.

Great Code Vol.3

소프트웨어 엔지니어링 개념이 정착되기 전까지 소프트웨어 개발은 쉽게 설명할 수 없는 역량과 성취물을 가진 소수의 소프트웨어 기술 장인을 통해 은밀하게 전해지는 것으로 생각됐다. 그 당시에는 소프트웨어 프로젝트의 성공 여부가 팀이 아닌 탁월한 수준의 핵심 프로그래머 한두 명에게 달려 있었다. 이후 도입된 소프트웨어 엔지니어링 개념 모델은 개발 팀의 균형 잡힌 역량을 확보해 생산성을 높이고, 탁월한 소수의 개발자에 대한 의존도를 낮췄다. 소프트웨어 엔지니어링 개념 모델은 나름의 성공을 거뒀다. 팀 단위로 구성된 프로그래머는 과거 소규모 조직 단위로는 결코 완수하지 못할 대규모 프로젝트를 성공적으로 해내기도 하지만, 일부 중요한 요소의 품질은 기대에 미치지 못하고 있다. 소프트웨어 엔지니어링은 팀 단위 운영을 통한 생산성 증대를 강조하지만, 동시에 개별 프로그래머의 창의성, 기술력, 성장성이 희생되고 있다. 소프트웨어 엔지니어링이 프로그래머의 역량을 높여주는 측면도 있지만, 한편으로는 위대한 프로그래머가 될 수 있는 기회를 줄이거나 역량을 제한하기도 한다. 우리 모두는 프로그래머가 자신의 잠재력을 최대한으로 발휘하길 원하지만 소프트웨어 엔지니어링의 엄격한 규칙은 잠재력을 발휘하려는 의지와 상충될 수 있다. 'Great Code' 시리즈는 소프트웨어 엔지니어링의 시대에 프로그래머의 창의성, 기술력, 성장성을 회복하기 위한 작은 노력의 산물이다. 이 책에서는 이를 '퍼스널 소프트웨어 엔지니어링(personal software engineering)'이라는 주제로 다루며, 한 명의 프로그래머가 자신의 코드 품질을 개선해 나갈 수 있는 방법을 제시한다. 특히 '위대한 코드(great code, 유지 보수, 기능 강화, 테스트 및 디버깅, 문서화, 배포 및 삭제가 용이한 코드)'를 작성하기 위한 방법을 소개한다. 위대한 코드는 엔지니어 또는 관리 체계의 비합리적인 결정이나 잘못된 계획에서 비롯되는 '결함(kludge)'이 없는 코드를 의미하기도 한다. 위대한 코드는 한마디로 코드 작성자 본인이 자랑스러워할 수 있는 코드다.

가나다별 l l l l l l l l l l l l l l 기타
국내문학상수상자
국내어린이문학상수상자
해외문학상수상자
해외어린이문학상수상자