logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

실무로 통하는 클린 코드

실무로 통하는 클린 코드

(코드 품질과 디자인을 개선하는 208가지 실전 레시피)

막시밀리아노 콘티에리 (지은이), 이태영 (옮긴이)
한빛미디어
35,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
31,500원 -10% 0원
1,750원
29,750원 >
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
알라딘 판매자 배송 13개 24,490원 >
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
aladin 28,000원 -10% 1400원 23,800원 >

책 이미지

실무로 통하는 클린 코드
eBook 미리보기

책 정보

· 제목 : 실무로 통하는 클린 코드 (코드 품질과 디자인을 개선하는 208가지 실전 레시피)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 프로그래밍 기초/개발 방법론
· ISBN : 9791169212779
· 쪽수 : 488쪽
· 출판일 : 2024-08-05

책 소개

자바스크립트, PHP, 파이썬, 자바 등 다양한 프로그래밍 언어를 활용한 예제를 제공한다. 다양한 언어를 넘나들며 가독성, 결합성, 테스트 가능성, 보안, 확장성 등 클린 코드의 핵심 개념을 깊이 있게 탐구한다.

목차

CHAPTER 1 클린 코드
_1.1 코드 스멜이란 무엇인가요?
_1.2 리팩터링은 무엇인가요?
_1.3 레시피는 무엇인가요?
_1.4 왜 클린 코드인가요?
_1.5 가독성, 성능 혹은 둘 다
_1.6 소프트웨어 유형
_1.7 기계 생성 코드
_1.8 이 책에서 사용하는 표현
_1.9 디자인 패턴
_1.10 프로그래밍 언어 패러다임
_1.11 객체 vs. 클래스
_1.12 변경성

CHAPTER 2 공리 설정
_2.0 소개
_2.1 왜 모델인가요?
_2.2 왜 추상적인가요?
_2.3 왜 프로그래밍이 가능해야 하나요?
_2.4 왜 부분적인가요?
_2.5 왜 설명 가능해야 하나요?
_2.6 왜 현실에 관한 것인가요?
_2.7 규칙 유추하기
_2.8 유일무이한 소프트웨어 설계 원칙

CHAPTER 3 빈약한 모델
_3.0 소개
_3.1 빈약한 객체를 풍성한 객체로 변환하기
_3.2 객체의 본질 파악하기
_3.3 객체에서 세터 제거하기
_3.4 빈약한 코드 생성기 제거하기
_3.5 자동으로 구현된 속성 제거하기
_3.6 DTO 제거하기
_3.7 빈 생성자 완성하기
_3.8 게터 제거하기
_3.9 객체의 난장판 방지하기
_3.10 동적 속성 제거하기

CHAPTER 4 기본형 집착
_4.0 소개
_4.1 작은 객체 생성하기
_4.2 기본형 데이터 구체화하기
_4.3 연관 배열 재구성하기
_4.4 문자열 남용 제거하기
_4.5 타임스탬프 구체화하기
_4.6 하위 집합을 객체로 구체화하기
_4.7 문자열 유효성 검증 구체화하기
_4.8 불필요한 속성 제거하기
_4.9 날짜 구간 생성하기

CHAPTER 5 가변성
_5.0 소개
_5.1 var를 const로 변경하기
_5.2 변수를 가변적이게 선언하기
_5.3 본질 변경 금지하기
_5.4 변경 가능한 상수 배열 피하기
_5.5 지연된 초기화 제거하기
_5.6 변경 가능한 상수 고정하기
_5.7 부작용 제거하기
_5.8 호이스팅 방지하기

CHAPTER 6 선언적 코드
_6.0 소개
_6.1 재사용 변수 범위 좁히기
_6.2 빈 줄 제거하기
_6.3 버전이 지정된 메서드 제거하기
_6.4 이중 부정 제거하기
_6.5 잘못 배치된 책임 변경하기
_6.6 명시적 반복 대체하기
_6.7 설계 결정 기록하기
_6.8 매직 넘버를 상수로 바꾸기
_6.9 ‘무엇’과 ‘어떻게’ 분리하기
_6.10 정규 표현식 문서화하기
_6.11 괴상한 조건문 재작성하기
_6.12 저급한 메서드 제거하기
_6.13 콜백 지옥에서 벗어나기
_6.14 올바른 오류 메시지 생성하기
_6.15 마법 변환 피하기

CHAPTER 7 명명
_7.0 소개
_7.1 약어 확장하기
_7.2 도우미와 유틸리티 이름 변경 및 분리하기
_7.3 my-객체 이름 변경하기
_7.4 result 변수 이름 변경하기
_7.5 타입이 포함된 변수 이름 변경하기
_7.6 긴 이름 변경하기
_7.7 추상적인 이름 변경하기
_7.8 맞춤법 오류 수정하기
_7.9 속성에서 클래스명 제거하기
_7.10 클래스와 인터페이스에서 첫 글자 제거하기
_7.11 basic/do 함수 이름 바꾸기
_7.12 복수형 클래스를 단수로 변환하기
_7.13 이름에서 Collection 제거하기
_7.14 클래스 이름에서 Impl 접두사/접미사 제거하기
_7.15 역할에 따라 인수 이름 변경하기
_7.16 중복된 매개변수 이름 제거하기
_7.17 이름에서 불필요한 컨텍스트 제거하기
_7.18 data 명칭 피하기

CHAPTER 8 주석
_8.0 소개
_8.1 주석 처리된 코드 제거하기
_8.2 더 이상 사용하지 않는 주석 제거하기
_8.3 논리적인 주석 제거하기
_8.4 게터 주석 제거하기
_8.5 주석을 함수명으로 변환하기
_8.6 메서드 내부 주석 제거하기
_8.7 주석을 테스트로 대체하기

CHAPTER 9 표준
_9.0 소개
_9.1 코딩 표준 준수하기
_9.2 들여쓰기 표준화하기
_9.3 대소문자 규칙 통일하기
_9.4 영어로 코드 작성하기
_9.5 매개변수 순서 통일하기
_9.6 깨진 유리창 수정하기

CHAPTER 10 복잡성
_10.0 소개
_10.1 반복되는 코드 제거하기
_10.2 설정/구성 및 기능 토글 제거하기
_10.3 속성으로 상태 변경하기
_10.4 코드에서 교묘함 제거하기
_10.5 다중 프라미스 끊기
_10.6 긴 협업 체인 끊기
_10.7 메서드를 객체로 추출하기
_10.8 배열 생성자 관리하기
_10.9 폴터가이스트 객체 제거하기

CHAPTER 11 블로터
_11.0 소개
_11.1 너무 긴 메서드 나누기
_11.2 과도한 인수 줄이기
_11.3 과도한 변수 줄이기
_11.4 과도한 괄호 제거하기
_11.5 과도한 메서드 제거하기
_11.6 너무 많은 속성 나누기
_11.7 import 목록 줄이기
_11.8 and 함수 나누기
_11.9 뚱뚱한 인터페이스 분리하기

CHAPTER 12 YAGNI 원칙
_12.0 소개
_12.1 불필요한 코드 제거하기
_12.2 다이어그램 대신 코드 사용하기
_12.3 하나의 하위 클래스를 가진 클래스 리팩터링하기
_12.4 일회성 인터페이스 제거하기
_12.5 디자인 패턴 남용 제거하기
_12.6 비즈니스 컬렉션 대체하기

CHAPTER 13 빠른 실패
_13.0 소개
_13.1 재할당 변수 리팩터링하기
_13.2 전제 조건 적용하기
_13.3 더 엄격한 매개변수 사용하기
_13.4 switch 문에서 기본값 제거하기
_13.5 순회하는 동안 컬렉션 수정 방지하기
_13.6 해시와 동등성 재정의하기
_13.7 기능 변경 없이 리팩터링하기

CHAPTER 14 if 문
_14.0 소개
_14.1 우발적 if 문을 다형성으로 대체하기
_14.2 이벤트의 플래그 변수 이름 변경하기
_14.3 boolean 변수 재구성하기
_14.4 switch/case/else if 문 대체하기
_14.5 하드코딩된 if 조건문을 컬렉션으로 대체하기
_14.6 boolean을 단락 평가 조건으로 변경하기
_14.7 암시적 else 추가하기
_14.8 조건부 화살표 코드 재작성하기
_14.9 무분별한 단락 평가 방지하기
_14.10 중첩된 화살표 코드 재작성하기
_14.11 조건 검사를 위한 boolean 값 반환 방지하기
_14.12 boolean 비교 변경하기
_14.13 긴 삼항식에서 추출하기
_14.14 비다형성 함수를 다형성으로 변환하기
_14.15 동등 비교 변경하기
_14.16 하드코딩된 비즈니스 조건 재정의하기
_14.17 불필요한 boolean 제거하기
_14.18 중첩된 삼항식 재작성하기

CHAPTER 15 null
_15.0 소개
_15.1 null 객체 생성하기
_15.2 선택적 체이닝 제거하기
_15.3 선택적 속성을 컬렉션으로 변환하기
_15.4 실제 객체로 null 대체하기
_15.5 null을 사용하지 않고 알려지지 않은 위치 표현하기

CHAPTER 16 섣부른 최적화
_16.0 소개
_16.1 객체 ID 피하기
_16.2 섣부른 최적화 제거하기
_16.3 비트 단위의 섣부른 최적화 제거하기
_16.4 과도한 일반화 줄이기
_16.5 구조적 최적화 변경하기
_16.6 앵커 보트 제거하기
_16.7 도메인 객체에서 캐시 추출하기
_16.8 구현에 기반한 콜백 이벤트 제거하기
_16.9 생성자에서 쿼리 제거하기
_16.10 소멸자에서 코드 제거하기

CHAPTER 17 결합도
_17.0 소개
_17.1 숨겨진 가정을 명시적으로 표현하기
_17.2 싱글턴 대체하기
_17.3 신 객체 나누기
_17.4 확산적 변경 나누기
_17.5 특수 플래그 값을 일반값으로 변환하기
_17.6 산탄총 수술 제거하기
_17.7 선택적 인수 제거하기
_17.8 기능에 대한 욕심 방지하기
_17.9 중간자 제거하기
_17.10 기본 인수를 맨 끝으로 이동하기
_17.11 파급 효과 피하기
_17.12 비즈니스 객체에서 우발적 메서드 제거하기
_17.13 사용자 인터페이스에서 비즈니스 코드 제거하기
_17.14 결합을 클래스로 대체하기
_17.15 데이터 덩어리 리팩터링하기
_17.16 부적절한 친밀성 분리하기
_17.17 대체 가능한 객체 대체하기

CHAPTER 18 전역
_18.0 소개
_18.1 전역 함수 구체화하기
_18.2 정적 함수 구체화하기
_18.3 goto를 구조화된 코드로 대체하기
_18.4 전역 클래스 제거하기
_18.5 전역 날짜 생성 변경하기

CHAPTER 19 계층
_19.0 소개
_19.1 깊은 상속 끊기
_19.2 요요 계층 분리하기
_19.3 코드 재사용을 위한 하위 분류 나누기
_19.4 is-a 관계를 동작으로 변경하기
_19.5 중첩 클래스 제거하기
_19.6 격리된 클래스 이름 변경하기
_19.7 구상 클래스를 final로 만들기
_19.8 클래스 상속 명시적으로 정의하기
_19.9 비어 있는 클래스 마이그레이션하기
_19.10 섣부른 분류 지연하기
_19.11 protected 속성 제거하기
_19.12 비어 있는 구현 완성시키기

CHAPTER 20 테스트
_20.0 소개
_20.1 private 메서드 테스트하기
_20.2 어서션에 설명 추가하기
_20.3 assertTrue를 특정 어서션으로 마이그레이션하기
_20.4 모의 객체를 실제 객체로 대체하기
_20.5 일반 어서션 다듬기
_20.6 불규칙한 테스트 제거하기
_20.7 부동 소수점에 대한 어서션 변경하기
_20.8 테스트 데이터를 실제 데이터로 변경하기
_20.9 캡슐화를 위반하는 테스트 보호하기
_20.10 관련 없는 테스트 정보 제거하기
_20.11 모든 병합 요청에 대해 커버리지 추가하기
_20.12 날짜에 의존하는 테스트 재작성하기
_20.13 새로운 프로그래밍 언어 배우기

CHAPTER 21 기술 부채
_21.0 소개
_21.1 프로덕션 종속 코드 제거하기
_21.2 결함 목록 제거하기
_21.3 경고/엄격 모드 해제 제거하기
_21.4 TODO와 FIXME 방지 및 제거하기

CHAPTER 22 예외
_22.0 소개
_22.1 비어 있는 예외 블록 제거하기
_22.2 불필요한 예외 제거하기
_22.3 예상 가능한 상황을 위한 예외 재작성하기
_22.4 중첩된 try/catch 재작성하기
_22.5 반환 코드를 예외로 대체하기
_22.6 예외 화살표 코드 재작성하기
_22.7 최종 사용자로부터 저수준 오류 숨기기
_22.8 예외 시도 범위 좁히기

CHAPTER 23 메타프로그래밍
_23.0 소개
_23.1 메타프로그래밍 사용처 제거하기
_23.2 익명 함수 재정의하기
_23.3 전처리 제거하기
_23.4 동적 메서드 제거하기

CHAPTER 24 타입
_24.0 소개
_24.1 타입 검사 제거하기
_24.2 참 같은 값 다루기
_24.3 부동 소수점을 십진수로 변경하기

CHAPTER 25 보안
_25.0 소개
_25.1 입력값 검열하기
_25.2 순차적 ID 변경하기
_25.3 패키지 의존성 제거하기
_25.4 악의적인 정규 표현식 대체하기
_25.5 객체 역직렬화 방지하기

저자소개

막시밀리아노 콘티에리 (지은이)    정보 더보기
25년 동안 소프트웨어 업계에 종사했으며 동시에 대학에서도 강의를 해왔습니다. 클린 코드, 리팩터링, 테스트 주도 개발 및 코드 스멜에 관해 꾸준히 글을 쓰고 있으며 인기 블로그 플랫폼에 매주 두어 편의 기사를 작성합니다. 선언적 및 행동적 코드의 팬이며 소프트웨어 기본 사항을 사용해 우아하고 강력한 솔루션을 구축하기를 즐깁니다.
펼치기
이태영 (옮긴이)    정보 더보기
해외에서 유년 시절을 보내면서 컴퓨터 공학 학사, 석사 학위를 취득하고 이후에는 스타트업부터 대규모 기업 들을 다니면서 애드테크, 마케팅 등의 도메인에서 필요로 한 소프트웨어 개발 업무 경험을 쌓아왔습니다. 다양한 개발 경험을 기반으로 현재는 스타트업에서 소프트웨어 엔지니어로 일합니다.
펼치기

책속에서



추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책
9791169218436