장바구니 담기 close

장바구니에 상품을 담았습니다.

프로그래밍의 규칙

프로그래밍의 규칙

  • 크리스 짐머만
  • |
  • 한빛미디어
  • |
  • 2024-05-20 출간
  • |
  • 460페이지
  • |
  • 153 X 223mm
  • |
  • ISBN 9791169212328
판매가

32,000원

즉시할인가

28,800

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
28,800

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

창립 이후, 25년간 쌓아 올린 ‘서커펀치’의 프로그래밍 문화
세계적인 게임 제작사가 전하는, 프로그래밍의 규칙!

모든 분야에는 저마다의 규칙이 있습니다. 그 규칙의 대부분은 오랜 시간 수많은 실패와 좌절을 통해 얻은 교훈으로 만들어지죠. 따라서 그 규칙을 보면, 해당 팀 혹은 회사의 발자취를 볼 수 있습니다. 이 책은 전 세계적인 메가 히트 게임, 〈고스트 오브 쓰시마〉를 만든 ‘서커펀치 프로덕션’의 21가지 프로그래밍 규칙을 다룹니다. 이 규칙들은 ‘서커펀치’의 문화를 대변하며, 그들을 성공으로 이끈 비법을 뜻하기도 합니다.

총 21가지 규칙을 하나씩 설명하고, 해당 규칙 이면에 있는 인사이트를 확인할 수 있는 다양한 예제도 함께 제공합니다. 이를 통해 각 장을 마칠 때마다 해당 규칙이 장려하는 코딩 관습과 규칙을 적용할 수 있는 상황을 명확하게 이해할 수 있습니다. 또한 "파이썬", "자바스크립트" 개발자를 위한 C++ 코드 읽는 법을 부록으로 추가해 이 책을 이해할 수 있는 전반적인 지식도 수록했습니다.

주요 목차
● 최대한 단순하게, 그러나 너무 단순하지 않게
● 코드가 스스로 이야기하게 하라
● 복잡성을 격리하라
● 일반화에는 세 가지 사례가 필요하다
● 코드가 아닌 결과에서부터 작업하라

〈추천사〉
이 책의 조언을 따르면 코딩할 때 실수할 가능성이 줄어들고 ‘일이 되는’ 코드를 작성할 수 있어 프로그램의 품질과 생산성이 향상될 것입니다.
-이브이알스튜디오, 이주영

이 책은 품질 높은 소프트웨어를 지향하는 개발자에게 귀중한 지침서입니다.
-메가존클라우드 아키텍트, 윤명식

개발자라면 이 책을 곁에 두고 읽기를 추천합니다.
-데브구루, 유형진

이 책은 코딩의 항상성을 위해 지켜야 할 규칙을 담고 있습니다. 저자의 말처럼 이 책에서 소개한 규칙이 진리는 아니지만, 프로그래머라면 곱씹어볼 만한 가치가 충분합니다.
-소프트웨어 개발자, 윤병조

광활한 프로그래밍의 세계를 즐겁고 힘겹게 여행하고 있는 저를 비롯한 모든 개발자에게 이 책은 나침반과 같은 역할을 할 것입니다.
-삼성전자 VD사업부 Security Lab, 최성욱

이 책의 저자는 오랫동안 개발자로 일하면서 경험한 실패 그리고 그러한 실패를 막을 수 있는 규칙을 통해 좌절을 최대한 피할 수 있는 길로 독자를 안내합니다.
-테크 리더, 구인회

이 책은 자체적인 규칙을 갖추고 있지 않거나 보완해야 할 회사에는 가이드라인을 제시하고, 더 나은 코드를 작성하고자 하는 개발자에게는 이정표가 되어줄 것입니다.
-현대오토에버, 이태우

저는 이 책을 우리 팀원들과 함께 읽고 싶습니다. 팀원들과 함께 규칙을 읽어보며 팀이 다루는 코드베이스에 어떻게 적용할 수 있을지 논의한다면, 팀원 모두가 성장하고 담당 코드의 완성도를 높이는 데 큰 도움이 될 것입니다.
-이스트시큐리티, 김기덕

목차

규칙 1 최대한 단순하게, 그러나 너무 단순하지 않게
_단순성 측정하기
_그러나 너무 단순하지 않게
_문제를 단순화하는 것이 솔루션보다 나을 때가 있다
_단순한 알고리즘
_흐름을 놓치지 말라
_모든 규칙을 지배하는 단 하나의 규칙

규칙 2 버그는 전염된다
_사용자를 믿지 말라
_자동화 테스트는 까다롭다
_상태를 유지하지 않는 코드는 테스트하기 쉽다
_제거할 수 없는 상태는 감사하라
_내 코드를 사용하는 동료를 믿지 말라
_코드를 건강하게

규칙 3 좋은 이름은 최고의 문서다
_글자 수를 줄이는 것은 최적화가 아니다
_코딩 컨벤션을 믹스앤드매치하지 말라
_제 무덤을 파지 말라
_생각하게 하지 말라

규칙 4 일반화에는 세 가지 사례가 필요하다
_필요하지 않으면 구현하지 말라
_이의 있다고요? 저는 아주 확고합니다
_섣부른 일반화는 정말 나쁘다
_이것이 성공은 아니다

규칙 5 첫 번째 최적화 교훈: 최적화하지 말라
_첫 번째 최적화 교훈
_두 번째 최적화 교훈
_두 번째 최적화 교훈 시험해보기
_다섯 단계 최적화 과정 적용하기
_세 번째 최적화 교훈은 없다

간주 규칙 5에 대한 비판을 중심으로

규칙 6 코드 리뷰의 세 가지 장점
_코드 리뷰는 지식 공유다
_금지된 코드 리뷰
_코드 리뷰의 진정한 가치
_코드 리뷰는 본질적으로 사회적 활동이다

규칙 7 실패 케이스를 제거하라
_잘못 사용하면 제 무덤 파기 쉬운 함수
_나도 모르게 내 무덤 파기
_컴파일러의 도움 받기
_타이밍이 전부다
_더 복잡한 예제
_순서 실수를 불가능하게 만들기
_메서드 체이닝 대신 템플릿 사용하기
_상태 제어 조율하기
_실수를 발견하는 것도 좋지만, 실수를 방지하는 것이 더 좋다

규칙 8 실행되지 않는 코드는 작동하지 않는다
_1단계: 단순한 시작
_2단계: 대표적인 패턴 일반화하기
_3단계: 위장 추가하기
_4단계: 뿌린 대로 거둔다
_책임 따지기
_테스트의 한계

규칙 9 요약 가능한 코드를 작성하라
_실패란 이런 느낌이다
_단기 기억의 역할
_경계선을 그어야 하는 곳
_추상화의 비용
_이해하기 쉽도록 추상화를 사용하라
_장기 기억의 역할
_상식은 공짜지만 새로운 지식은 비싸다
_단기 기억과 장기 기억을 함께 활용하라

규칙 10 복잡성을 격리하라
_간단한 예제
_내부 세부 사항 숨기기
_상태 분산과 복잡성
_능력 복원?
_안개가 끼기 시작하다
_접근법 다시 생각해보기
_격리된 복잡성, 단순한 상호작용

규칙 11 두 배 좋은가
_앞으로 전진하는 세 가지 길: 무시, 미세 조정, 리팩터링
_점진적 진화 vs 지속적 재발명
_간단한 기준 하나
_애매한 혜택 다루기
_재작업은 작은 문제를 정리할 좋은 기회다

규칙 12 큰 팀에는 강력한 컨벤션이 필요하다
_형식화 컨벤션
_언어 사용 컨벤션
_문제 해결 컨벤션
_효율적인 팀은 같은 방식으로 생각한다

규칙 13 산사태를 일으킨 조약돌을 찾으라
_버그의 생애 주기
_상태의 가짓수 최소화하기
_제거할 수 없는 상태 다루기
_피할 수 없는 지연 다루기

규칙 14 네 가지 맛의 코드
_쉬운 문제와 단순한 솔루션
_쉬운 문제와 세 가지 복잡한 솔루션
_복잡성에 따르는 비용
_프로그래머의 네 가지(실제로는 세 가지) 유형
_어려운 문제와 작동하지 않는 약간 복잡한 솔루션
_어려운 문제와 약간 복잡한 솔루션
_어려운 문제와 단순한 솔루션

규칙 15 잡초를 뽑으라
_잡초 식별하기
_코드는 어떻게 잡초로 덮이는가

규칙 16 코드가 아닌 결과에서부터 작업하라
_한 가지 예제
_짜증 나는 일
_골짜기의 끝 선택하기
_뒤로 작업해나가기
_완전히 다른 무언가를 위해
_앞으로 작업하기와 거꾸로 작업하기

규칙 17 더 쉽게 해결되는 큰 문제도 더러 있다
_제대로 착지하기
_올바른 방향 찾기
_기회 포착하기

규칙 18 코드가 스스로 이야기하게 하라
_사실이 아닌 이야기는 하지 말라
_이야기에는 목적이 있어야 한다
_좋은 스토리텔링

규칙 19 평행 재작업
_뜻밖의 문제
_평행 시스템을 구축하라
_구체적인 예시
_실전에서의 스택 할당
_불안 요소
_좀 더 영리하게 스택 컨텍스트 만들기
_이전 스택 컨텍스트를 새 스택 컨텍스트로 마이그레이션하기
_StackVector 마이그레이션 준비하기
_마이그레이션할 시간
_평행 재작업 전략을 적용하기 좋은 상황

규칙 20 계산하라
_자동화할 것인가, 하지 않을 것인가, 그것이 문제로다
_절대적 한계 조사하기
_계산이 달라질 때
_계산 문제가 다시 MS 워드 문제로 바뀔 때

규칙 21 때로는 못질을 해야 한다
_새로운 인수 추가하기
_버그가 하나뿐일 리 없다
_자동화의 경고음
_파일 크기 관리하기
_지름길은 없다

결론 자신의 규칙을 만들라
_자신의 판단을 믿으라
_토의하라
_끝맺음

부록 A 파이썬 프로그래머를 위한 C++ 코드 읽기
_타입
_형식화와 주석
_클래스
_가시성
_선언과 정의
_함수 오버로딩
_템플릿
_포인터와 참조

부록 B 자바스크립트 프로그래머를 위한 C++ 코드 읽기
_타입
_배열
_클래스
_선언과 정의
_함수 오버로딩
_템플릿
_포인터와 참조

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.