| 000 | 01092camcc2200325 c 4500 | |
| 001 | 000045637556 | |
| 005 | 20110328155601 | |
| 007 | ta | |
| 008 | 110328s2010 ulka b 001c kor | |
| 020 | ▼a 9788964200377 ▼g 93560 | |
| 035 | ▼a (KERIS)BIB000011987087 | |
| 040 | ▼a 241026 ▼c 241026 ▼d 211062 ▼d 211009 | |
| 041 | 1 | ▼a kor ▼h eng |
| 082 | 0 0 | ▼a 005.1 ▼2 22 |
| 085 | ▼a 005.1 ▼2 DDCK | |
| 090 | ▼a 005.1 ▼b 2010z15 | |
| 100 | 1 | ▼a Martin, Robert C. |
| 245 | 2 0 | ▼a (완벽한 코드작성을 위한) 클린 코드 : ▼b 애자일 소프트웨어 장인 정신 / ▼d 로버트 C. 마틴 지음 ; ▼e 박재호, ▼e 이해영 옮김 |
| 246 | 1 9 | ▼a Clean code : ▼b a handbook of agile software craftsmanship |
| 260 | ▼a 서울 : ▼b 케이앤피IT, ▼c 2010 | |
| 300 | ▼a 543 p. : ▼b 삽화 ; ▼c 24 cm | |
| 500 | ▼a 부록: 동시성Ⅱ, Org.jfree.date.SerialDate, 발견법의 교차 참조 목록 | |
| 504 | ▼a 참고문헌과 색인수록 | |
| 650 | 0 | ▼a Agile software development |
| 650 | 0 | ▼a Computer software ▼x Reliability |
| 700 | 1 | ▼a 박재호, ▼e 역 |
| 700 | 1 | ▼a 이해영, ▼e 역 |
| 900 | 1 0 | ▼a 마틴, 로버트 C., ▼e 저 |
| 945 | ▼a KLPA |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.1 2010z15 | 등록번호 121207546 (21회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.1 2010z15 | 등록번호 121207547 (19회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
'오브젝트 멘토'사 동료들과 힘을 모아 개발하며 깨끗한 코드를 만드는 최상의 애자일 기법을 공개한다.
첫번째로는 깨끗한 코드를 작성하는 원칙, 패턴, 실기를 설명하고, 둘째 부분은 여러 사례 연구를 소개하는데, 복잡도는 점점 더 높아진다. 각 사례 연구는 코드를 깨끗하게 고치는, 즉 문제가 있는 코드를 좀 더 튼튼하고 효율적인 코드로 바꾸는 연습이다. 셋째 부분은 결말이다. 사례 연구를 만들면서 수집한 '냄새'와 발견법을 마지막 장에서 열거한다. 그 결과로 코드를 읽고, 짜고, 정리하는 과정에서 우리가 생각하는 방식을 묘사한 지식 기반을 얻을 수 있을 것이다.
유명한 소프트웨어 전문가 로버트 C. 마틴은 이 책에서 혁명적인 패러다임을 제시한다. 그는 오브젝트 멘토 사 동료들과 힘을 모아 "개발하며" 깨끗한 코드를 만드는 최상의 애자일 기법을 책 한 권으로 펴냈다. 여러분이 노력만 한다면 이 책은 소프트웨어 장인 정신을 심어주며 프로그래밍 실력을 높여준다.
어떤 노력이 필요하냐고? 읽을 코드가 아주 많다. 코드를 읽으면서 무엇이 옳은지 무엇이 그른지 생각도 해야 한다. 좀 더 중요하게는 전문가로서 자신이 지니는 가치와 장인으로서 자기 작품에 대한 헌신을 돌아보게 된다.
이 책은 세 부분으로 나눠진다. 처음 몇 장은 깨끗한 코드를 작성하는 원칙, 패턴, 실기를 설명한다. 둘째 부분은 여러 사례 연구를 소개하는데, 복잡도는 점점 더 높아진다. 각 사례 연구는 코드를 깨끗하게 고치는, 즉 문제가 있는 코드를 좀 더 튼튼하고 효율적인 코드로 바꾸는 연습이다. 셋째 부분은 결말이다. 사례 연구를 만들면서 수집한 "냄새"와 발견법을 마지막 장에서 열거한다. 그 결과로 코드를 읽고, 짜고, 정리하는 과정에서 우리가 생각하는 방식을 묘사한 지식 기반을 얻었다.
이 책은 더 나은 코드를 만들려고 애쓰는 개발자, 소프트웨어 공학도, 프로젝트 관리자, 팀 리더, 시스템 분석가가 반드시 읽어야 할 책이다.
[이 책의 주요 내용]
1.좋은 코드와 나쁜 코드를 구분하는 방법
2.좋은 코드를 작성하는 방법과 나쁜 코드를 좋은 코드로 바꾸는 방법
3.좋은 이름, 좋은 함수, 좋은 객체, 좋은 클래스를 작성하는 방법
4.가독성이 높아지도록 코드 형식을 맞추는 방법
5.코드 논리를 흩뜨리지 않고서 완벽한 오류 처리를 구현하는 방법
6.단위 테스트와 테스트 주도 개발을 적용하는 방법
정보제공 :
저자소개
로버트 C. 마틴(지은이)
로버트 C. 마틴(엉클 밥)은 1970년부터 프로그래머로 일해 왔다. 그는 엉클 밥 컨설팅(Uncle Bob Consulting, LLC)의 설립자이며, 아들 미카 마틴과 함께 클린 코더스(Clean Coders, LLC)를 공동 설립했다. 각종 업계 저널에 글을 수십 편 기고했고, 국제 콘퍼런스와 전시회에서 정기적으로 강연하고 있다. 저서 및 편저로는 『Designing Object-Oriented C++ Applications Using the Booch Method』, 『Pattern Languages of Program Design 3』, 『More C++ Gems』, 『Extreme Programming in Practice』, 『Agile Software Development: Principles, Patterns, and Practices』, 『UML for Java Programmers』, 『Clean Code』, 『The Clean Coder』, 『Functional Design: Principles, Patterns, and Practices』 등이 있다. 소프트웨어 개발 업계의 선도적 인물로 3년간 ‘The C++ Report’의 편집장을 지냈고, 애자일 얼라이언스(Agile Alliance)의 초대 의장을 맡았다.
박재호(옮긴이)
포항공과대학교 컴퓨터공학과 학부와 대학원을 졸업했다. 임베디드 시스템 개발, 기업용 백업 소프트웨어 개발, 방송국 콘텐츠 수신 제한 시스템 개발 및 운영 지원, 클라우드 기반 서비스 개발에 이르기까지 다양한 실무 경험을 토대로 고성능 고가용성 시스템을 설계했다. 《클린 코드》, 《피플웨어》 등 40여 권의 책을 번역, 집필, 감수했다. 각종 기술 소식을 다루는 블로그 '컴퓨터 vs 책'(jhrogue.blogspot.com)과 개발자를 위한 유튜브 채널(youtube.com/@채널박재호)을 운영하며, 개발자들을 위한 각종 교육과 세미나도 지속적으로 진행하고 있다.
이해영(옮긴이)
포항공과대학교 컴퓨터공학과 학부와 퍼듀대학교 전자계산학과 대학원을 졸업했다. 현재 프리랜서 번역가로 일한다. 옮긴 책으로는 『조엘 온 소프트웨어』, 『The Art of Project Management: 마음을 움직이는 프로젝트 관리』, 『초난감 기업의 조건』, 『소프트웨어 컨플릭트』, 『소프트웨어 크리에이티비티』, 『하드 코드: 나 잘난 박사의 IT 정글 서바이벌 가이드』 등이 있다.
목차
목차 추천 서문 = 19 들어가면서 = 25 표지 설명 = 29 역자 서문 = 31 Chapter 1 클린 코드 = 35 1.1 코드가 존재하리라 = 36 1.2 나쁜 코드 = 37 1.3 나쁜 코드로 치르는 대가 = 38 1.4 우리들 생각 = 48 1.5 우리는 저자다 = 49 1.6 보이스카우트 규칙 = 50 1.7 전편과 원칙 = 51 1.8 결론 = 51 1.9 참고 문헌 = 51 Chapter 2 의미 있는 이름 = 53 2.1 들어가면서 = 54 2.2 의도를 분명히 밝혀라 = 54 2.3 그릇된 정보를 피하라 = 56 2.4 의미 있게 구분하라 = 57 2.5 발음하기 쉬운 이름을 사용하라 = 59 2.6 검색하기 쉬운 이름을 사용하라 = 60 2.7 인코딩을 피하라 = 61 2.8 자신의 기억력을 자랑하지 마라 = 62 2.9 클래스 이름 = 63 2.10 메소드 이름 = 63 2.11 기발한 이름은 피하라 = 64 2.12 개념 하나에 단어 하나를 사용하라 = 64 2.13 말장난을 하지 마라 = 65 2.14 해법 영역에서 사용하는 이름을 사용하라 = 65 2.15 문제 영역과 관련 있는 이름을 사용하라 = 66 2.16 의미 있는 맥락을 추가하라 = 66 2.17 불필요한 맥락을 없애라 = 69 2.18 마치면서 = 69 Chapter 3 함수 = 71 3.1 작게 만들어라 = 75 3.2 한 가지만 해라 = 76 3.3 함수 당 추상화 수준은 하나로 = 77 3.4 Switch 문 = 78 3.5 서술적인 이름을 사용하라 = 81 3.6 함수 인수 = 82 3.7 부수 효과를 일으키지 마라 = 86 3.8 명령과 조회를 분리하라 = 87 3.9 오류 코드보다 예외를 사용하라 = 88 3.10 반복하지 마라 = 91 3.11 구조적 프로그래밍 = 91 3.12 함수를 어떻게 짜죠? = 92 3.13 결론 = 92 3.14 SetupTeardownIncluder = 93 3.15 참고 문헌 = 96 Chapter 4 주석 = 97 4.1 주석은 나쁜 코드를 보완하지 못한다 = 99 4.2 코드로 의도를 표현하라 = 99 4.3 좋은 주석 = 100 4.4 나쁜 주석 = 105 4.5 참고 문헌 = 123 Chapter 5 형식 맞추기 = 125 5.1 형식을 맞추는 목적 = 126 5.2 적절한 행 길이를 유지하라 = 126 5.3 가로 형식 맞추기 = 137 5.4 팀 규칙 = 143 5.5 아저씨의 형식 규칙 = 144 Chapter 6 객체와 자료 구조 = 147 6.1 자료 추상화 = 148 6.2 자료/객체 비대칭 = 150 6.3 디미터 법칙 = 153 6.4 자료 전달 객체 = 156 6.5 결론 = 157 6.6 참고 문헌 = 158 Chapter 7 오류 처리 = 159 7.1 오류 코드 보다 예외를 사용하라 = 160 7.2 Try-Catch-Finally 문부터 작성하라 = 162 7.3 미확인 예외를 사용하라 = 163 7.4 예외에 의미를 제공하라 = 165 7.5 호출자를 고려해 예외 클래스를 정의하라 = 165 7.6 정상 흐름을 정의하라 = 167 7.7 null을 반환하지 마라 = 168 7.8 null을 전달하지 마라 = 170 7.9 결론 = 171 7.10 참고문헌 = 171 Chapter 8 경계 = 173 8.1 외부 코드 사용하기 = 174 8.2 경계 살피고 익히기 = 176 8.3 log4j 익히기 = 177 8.4 학습 테스트는 공짜 이상이다 = 179 8.5 아직 존재하지 않는 코드를 사용하기 = 180 8.6 클린 경계 = 181 8.7 참고 문헌 = 182 Chapter 9 단위 테스트 = 183 9.1 TDD 법칙 세 가지 = 185 9.2 클린 테스트 코드 유지하기 = 185 9.3 클린 테스트 코드 = 187 9.4 테스트 당 assert 하나 = 194 9.5 F.I.R.S.T = 196 9.6 결론 = 197 9.7 참고 문헌 = 198 Chapter 10 클래스 = 199 10.1 클래스 체계 = 200 10.2 클래스는 작아야 한다 = 200 10.3 변경하기 쉬운 클래스 = 213 10.4 참고 문헌 = 218 Chapter 11 시스템 = 219 11.1 도시를 세운다면? = 220 11.2 시스템 제작과 시스템 사용을 분리하라 = 220 11.3 확장 = 224 11.4 자바 프록시 = 228 11.5 순수 자바 AOP 프레임워크 = 230 11.6 AspectJ 관점 = 234 11.7 시스템 아키텍처 시운전 = 235 11.8 의사 결정을 최적화하라 = 236 11.9 명백한 가치가 있을 때 표준을 현명하게 사용하라 = 236 11.10 시스템은 도메인 특화 언어가 필요하다 = 236 11.11 결론 = 237 11.12 참고 문헌 = 237 Chapter 12 창발성(創發性) = 239 12.1 창발적 설계로 깔끔한 코드를 구현하자 = 240 12.2 간단한 설계 규칙 1: 모든 테스트를 실행하라 = 240 12.3 간단한 설계 규칙 2-4: 리팩토링 = 241 12.4 중복을 없애라 = 241 12.5 표현하라 = 244 12.6 클래스와 메소드 수를 최소로 줄여라 = 245 12.7 결론 = 246 12.8 참고 문헌 = 246 Chapter 13 동시성 = 247 13.1 동시성이 필요한 이유 = 248 13.2 난관 = 250 13.3 동시성 방어 원칙 = 251 13.4 라이브러리를 이해하라 = 253 13.5 실행 모델을 이해하라 = 253 13.6 동기화하는 메소드 사이에 의존성을 이해하라 = 256 13.7 동기화하는 부분을 작게 만들어라 = 256 13.8 올바른 종료 코드는 구현하기 어렵다 = 257 13.9 스레드 코드 테스트하기 = 258 13.10 결론 = 263 13.11 참고 문헌 = 264 Chapter 14 점진적인 개선 = 265 14.1 Args 구현 = 267 14.2 Args: 1차 초안 = 275 14.3 String 인수 = 292 14.4 결론 = 339 Chapter 15 JUnit 들여다보기 = 341 15.1 JUnit 프레임워크 = 342 15.2 결론 = 359 Chapter 16 SerialDate 리팩토링 = 361 16.1 첫째, 돌려보자 = 362 16.2 둘째, 고쳐보자 = 365 16.3 결론 = 383 16.4 참고 문헌 = 384 Chapter 17 냄새와 발견법 = 385 17.1 주석 = 386 17.2 환경 = 387 17.3 함수 = 388 17.4 일반 = 389 17.5 자바 = 411 17.6 이름 = 414 17.7 테스트 = 419 17.8 결론 = 421 17.9 참고 문헌 = 421 Appendix A 동시성 II = 423 A.1 클라이언트/서버 예제 = 423 A.2 가능한 실행 경로 = 428 A.3 라이브러리를 이해하라 = 434 A.4 메소드 사이에 존재하는 의존성을 조심하라 = 438 A.5 작업 처리량 높이기 = 443 A.6 데드락 = 445 A.7 다중스레드 코드 테스트 = 449 A.8 스레드 코드 테스트를 도와주는 도구 = 452 A.9 결론 = 453 A.10 자습서: 전체 코드 예제 = 454 Appendix B org.jfree.date.SerialDate = 461 Appendix C 발견법의 교차 참조 목록 = 533 에필로그 = 537 찾아보기 = 539
