간편결제, 신용카드 청구할인
카카오페이 4,000원
(최대할인 4천원 / 5만원 이상 결제, 기간 중 1회)
네이버페이 1%
(네이버페이 결제 시 적립)
북피니언 롯데카드 30% (11,340원)
(최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (12,960원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (14,580원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (15,070원)
(최대할인 3만원 / 3만원 이상 결제)
Close

읽기 좋은 코드가 좋은 코드다 : 더 나은 코드를 작성하는 간단하고 실전적인 테크닉

원제 : The Art of Readable Code

2013년 9월 9일 이후 누적수치입니다.

판매지수 278
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

18,000원

  • 16,200 (10%할인)

    900P (5%적립)

할인혜택
적립혜택자동적립
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서

  • 사은품(10)

출판사 서평

* 더 나은 코드를 작성하는 간단하고 실전적인 테크닉!
이 책은 매우 읽기 편한 코드를 작성하는 방법을 설명한다. 이 책을 관통하는 핵심 아이디어는 '코드는 이해하기 쉬워야 한다'는 것이다. 자신의 코드를 다른 사람이 읽고 이해할 때 걸리는 시간을 최소로 만들어야 한다. 그렇다고 어려운 기법을 장황히 설명하지 않는다. 실전적인 간단한 기법만으로도 코드를 훨씬 읽기 편하게 만들 수 있게 이끌어준다.

* 개발하는 언어에 종속되지 않아 누구나 읽을 수 있다!
이 책은 바로 이 아이디어를 C++, 파이썬, 자바스크립트, 자바 등을 포함한 여러 언어로 작성된 코드를 예로 들며 설명한다. 우리는 각 언어에 종속된 고급 기능을 일부러 사용하지 않았기 때문에, 설령 이런 언어를 다 알지 못한다고 해도 책을 읽는 데는 아무런 어려움이 없을 것이다.

* 대상 독자 - 프로그래밍 전공학생, 소프트웨어 개발자, 관리자, CTO

* 자신의 코드를 남에게 보여주기가 꺼려집니까?
프로그래머인 우리는 너무 엉망인데다가 버그투성이라서 머리가 지끈거리는 코드를 만나곤 한다. 이 책의 저자인 더스틴 보즈웰과 트레버 파우커는 지난 5년 동안 (자신들의 코드를 포함한) 수백 개의 '나쁜 코드'를 분석하고, 그러한 코드가 '왜 나쁜지', 그리고 코드를 '어떻게 개선할 수 있는지'를 연구했다. 그들이 내린 결론은 무엇일까? 그것은 바로 다른 사람들이 코드를 읽고 이해하는 데 걸리는 시간이 최소한이 되도록 작성해야 한다는 것이다. 여기에서 다른 사람이란 자기 자신도 포함된다!

* 체계적이고 효과적으로 코드를 작성하고 있나요?
이 책은 코드를 작성할 때 언제나 적용할 수 있는 기본적인 원리와 실전적인 기술에 초점을 맞추고 있다. 누구나 쉽게 이해할 수 있는 코드를 예제로 사용하고, 각 장은 코딩과 관련한 다양한 측면을 파고든다. 그리하여 여러분이 어떻게 이해하기 쉬운 코드를 작성할 수 있는지를 보여준다.

- 딱 맞는 이름 짓기, 주석 달기, 포맷팅 등을 어떤 코드에도 적용할 수 있는 도움말과 함께 설명한다.
- 프로그램의 루프, 논리, 그리고 변수를 정리해서 복잡성과 혼동을 감소시킨다.
- 한 번에 하나의 일을 처리하도록 코드의 블록을 정리하는 등, 문제를 함수 수준에서 공략한다.
- 철저하고 간결하면서 동시에 읽기 쉬운, 효과적인 테스트 코드를 작성한다.

추천사

"자신이 작성한 코드가 나중에 그 코드를 읽게 될 사람에게 어떤 영향을 주는지 의식하는 일은 소프트웨어 개발의 중요한 일부다. 이 책은 독자로 하여금 바로 이러한 문제의식을 바탕으로 여러 측면을 경험하게 하고, 이러한 내용을 생생한 예를 통해서 효과적으로 설명한다"
- 마이클 헝거 / 소프트웨어 개발자, 네오 데크놀로지

"이 책을 번역하기로 결정한 과정은 다소 우연이었지만, 번역을 하는 과정에서 내가 평소에 생각하던 부분들이 이렇게 책으로 정리되어 나왔다는 사실에 안도감과 고마움을 느꼈다. 내가 지금까지 경험한 바에 의하면, 이 책을 읽지 않아도 좋은, 원래부터 간결하고 효율적인 코드를 작성하는 능력을 가진 프로그래머는 열에 하나에 불과하다. 자신이 그 하나에 속한다는 확신이 없으면, 이 책을 꼭 읽어보기 바란다"
- 임백준 / 소프트웨어 개발자 & IT 라이터

목차

1장. 코드는 이해하기 쉬워야 한다
__01. 무엇이 코드를 '더 좋게' 만드는가?
__02. 가독성의 기본 정리
__03. 분량이 적으면 항상 더 좋은가?
__04. 이해를 위한 시간은 다른 목표와 충돌하는가?
__05. 어려운 부분

PART I. 표면적 수준에서의 개선

2장. 이름에 정보 담기
__01. 특정한 단어 고르기
__02. tmp나 retval 같은 보편적인 이름 피하기
__03. 추상적인 이름보다 구체적인 이름을 선호하라
__04. 추가적인 정보를 이름에 추가하기
__05. 이름은 얼마나 길어야 하는가?
__06. 이름 포메팅으로 의미를 전달하라
__요약

3장. 오해할 수 없는 이름들
__01. 예: Filter()
__02. 예: Clip(text, length)
__03. 경계를 포함하는 한계값을 다룰 때는 min과 max를 사용하라
__04. 경계를 포함하는 범위에는 first와 last를 사용하라
__05. 경계를 포함하고/배제하는 범위에는 begin과 end를 사용하라
__06. 불리언 변수에 이름 붙이기
__07. 사용자의 기대에 부응하기
__08. 예: 이름을 짓기 위해서 복수의 후보를 평가하기
__요약

4장. 미학
__01. 미학이 무슨 상관인가?
__02. 일관성과 간결성을 위해서 줄 바꿈을 재정렬하기
__03. 메소드를 활용하여 불규칙성을 정리하라
__04. 도움이 된다면 코드의 열을 맞춰라
__05. 의미 있는 순서를 선택하고 일관성 있게 사용하라
__06. 선언문을 블록으로 구성하라
__07. 코드를 '문단'으로 쪼개라
__08. 개인적인 스타일 대 일관성
__요약

5장. 주석에 담아야 하는 대상
__01. 설명하지 말아야 하는 것
__02. 생각을 기록하라
__03. 코드를 읽는 사람의 입장이 되어라
__04. 마지막 고찰 - 글 쓰는 두려움을 떨쳐내라
__요약

6장 명확하고 간결한 주석 달기
__01. 주석을 간결하게 하라
__02. 모호한 대명사는 피하라
__03. 엉터리 문장을 다듬어라
__04. 함수의 동작을 명확하게 설명하라
__05. 코너케이스를 설명해주는 입/출력 예를 사용하라
__06. 코드의 의도를 명시하라
__07. 이름을 가진 함수 파라미터 주석
__08. 정보 축약형 단어를 사용하라
__요약

PART II. 루프와 논리를 단순화하기

7장. 읽기 쉽게 흐름제어 만들기
__01. 조건문에서 인수의 순서
__02. if/else 블록의 순서
__03. (삼항 연산자로 알려진)?:를 이용하는 조건문 표현
__04. do/while 루프를 피하라
__05. 함수 중간에서 반환하기
__06. 악명 높은 goto
__07. 중첩을 최소화하기
__08. 실행 흐름을 따라올 수 있는가?
__요약

8장. 거대한 표현을 잘게 쪼개기
__01. 설명 변수
__02. 요약 변수
__03. 드모르간의 법칙 사용하기
__04. 쇼트 서킷 논리 오용하기
__05. 예: 복잡한 논리와 씨름하기
__06. 거대한 구문 나누기
__07. 표현을 단순화하는 다른 창의적인 방법들
__요약

9장. 변수와 가독성
__01. 변수 제거하기
__02. 변수의 범위를 좁혀라
__03. 값을 한 번만 할당하는 변수를 선호하라
__04. 마지막 예
__요약

PART III. 코드 재작성하기

10장. 상관없는 하위문제 추출하기
__01. 소개를 위한 예: findClosestLocation()
__02. 순수한 유틸리티 코드
__03. 일반적인 목적의 코드
__04. 일반적인 목적을 가진 코드를 많이 만들어라
__05. 특정한 프로젝트를 위한 기능
__06. 기존의 인터페이스를 단순화하기
__07. 자신의 필요에 맞춰서 인터페이스의 형태를 바꾸기
__08. 지나치게 추출하기
__요약

11장. 한 번에 하나씩
__01. 작업은 작을 수 있다
__02. 객체에서 값 추출하기
__03. 더 큰 예제
__요약

12장. 생각을 코드로 만들기
__01. 논리를 명확하게 설명하기
__02. 라이브러리를 알면 도움이 된다
__03. 논리를 쉬운 말로 표현하는 방법을 더 큰 문제에 적용하기
__요약

13장. 코드 분량 줄이기
__01. 그 기능을 구현하려고 애쓰지 마라 - 그럴 필요가 없다
__02. 요구사항에 질문을 던지고 질문을 잘게 나누어 분석하라
__03. 코드베이스를 작게 유지하기
__04. 자기 주변에 있는 라이브러리에 친숙해져라
__05. 예: 코딩 대신 유닉스 도구를 활용하기
__요약

PART IV. 선택된 주제들

__14장. 테스트와 가독성
__01. 읽거나 유지보수하기 쉽게 테스트를 만들어라
__02. 이 테스트는 어떤 점이 잘못되었을까?
__03. 이 테스트를 더 읽기 쉽게 만들기
__04. 읽기 편한 메시지 만들기
__05. 좋은 테스트 입력값의 선택
__06. 테스트 함수에 이름 붙이기
__07. 이 테스트 코드는 무엇이 잘못되었는가?
__08. 테스트에 친숙한 개발
__09. 지나친 테스트
__요약

15장. '분/시간 카운터'를 설계하고 구현하기
__01. 문제
__02. 클래스 인터페이스 정의하기
__03. 시도1: 순진한 해결책
__04. 시도2: 컨베이어 벨트 설계
__05. 시도3: 시간-바구니 설계
__06. 3가지 해결책 비교하기
__요약

Appendix 추가적인 도서목록
__01. 높은 수준의 코드를 쓰는 방법을 다루는 책들
__02. 다양한 프로그래밍 주제에 대한 책들
__03. 역사적 사례를 담고 있는 책들
__찾아보기

관련이미지

저자소개

더스틴 보즈웰 [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

칼텍에서 컴퓨터 사이언스 학사학위를 받았고, UC 샌디애고에서 석사학위를 받았다. 5년 동안 구글에서 근무하면서 웹크롤링 인프라스트럭처를 비롯한 다양한 프로젝트를 경험했다. 수많은 웹사이트를 개발했고 '빅 데이터'와 '기계학습' 분야에 관심이 있다.

트레버 파우커 [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

10년 동안 마이크로소프트와 구글에서 대규모 소프트웨어를 개발했다. 지금은 구글에서 검색 인프라스트럭처의 엔지니어로 근무하고 있다. 여가 시간에는 게임 관련 컨벤션에 참석하고, 공상과학 소설을 읽고, 부인의 패션 관련 스타트업 회사에서 COO 일을 한다. 트레버는 UC 버클리에서 전기공학과 컴퓨터 사이언스 학사학위를 받았다.

생년월일 -
출생지 -
출간도서 0종
판매수 0권

서울대학교에서 수학을 전공하고, 인디애나 주립대학에서 컴퓨터 사이언스를 공부했다. 삼성SDS, 뉴저지 소재 루슨트테크놀로지스에서 근무했고 지금은 월스트리트에 있는 회사에서 금융소프트웨어를 개발하고 있다. 뉴저지에서 아내와 두 딸과 함께 살고 있다. [누워서 읽는 퍼즐북](2010), [프로그래밍은 상상이다](2008), [뉴욕의 프로그래머](2007), [소프트웨어 산책](2005), [나는 프로그래머다](2004), [누워서 읽는 알고리즘](2003), [행복한 프로그래밍](2003, 이상 한빛미디어), [프로그래머 그 다음 이야기](공저, 2011, 로드북)를 집필했다.

이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

    리뷰

    9.4 (총 0건)

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    8.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용