현재 위치
홈상품상세정보
*도서소개
개발자 성장을 위한 최적의 코드 작성법
클린 코드를 실무에 적용하는 방법을 배워보자. 이 책은 자바스크립트, PHP, 파이썬, 자바 등 다양한 프로그래밍 언어를 활용한 예제를 제공한다. 다양한 언어를 넘나들며 가독성, 결합성, 테스트 가능성, 보안, 확장성 등 클린 코드의 핵심 개념을 깊이 있게 탐구한다. 복잡한 코드베이스를 효과적으로 확장하고 유지 관리하는 방법부터 코드 스멜을 식별하고 해결하는 방법까지 소개한다. 이 책은 모든 개발자에게 필수 덕목인 클린 코드 작성법을 소개하는 강력한 비법서이다. 클린 코드의 이점을 직접 경험하고, 여러분의 개발 스킬을 한 단계 업그레이드할 차례이다.
*출판사도서소개
깔끔하게 작성한 코드로 훌륭하게 협업하고 싶다면,
개발자라면 꼭 읽어야 할 클린 코드 실습서
코드를 작성하는 것은 예술과도 같습니다. 클린 코드를 통해 여러분의 프로그래밍 작품을 더 아름답게 만들어보세요. 이 책은 개발자가 실제 업무에서 직면하는 다양한 문제를 클린 코드의 원칙을 통해 해결하는 방법을 소개합니다. 단순히 좋은 코드와 나쁜 코드를 구분하는 것을 넘어, 실제 개발 환경에서 클린 코드를 구현하고 유지하는 구체적인 방법론을 제공합니다. 자바, 파이썬, PHP, C, 자바스크립트 등 다양한 언어의 예제를 통해 클린 코드의 원칙을 실제로 적용해보고, 가독성이 높고 유지 보수하기 용이한 코드를 작성하는 방법을 배워보세요.
누가 이 책을 읽어야 할까요?
● 클린 코드를 구현하고 싶은 프로그래머, 소프트웨어 개발자, 아키텍트 등 현업 개발자
● 이제 막 개발자의 길에 들어선 초보 개발자, 관련 학부생, 개발자 취업 준비생
어떤 내용을 배우나요?
● 클린 코드가 개발자에게 왜 필요한지, 실제 업무에 어떻게 적용할 수 있는지 설명합니다.
● 구체적인 예제와 실습을 통해 클린 코드의 원칙을 직관적으로 이해할 수 있습니다.
● 리팩터링의 기술을 단계별로 터득하고, 코드 스멜을 식별하고 해결하는 방법을 알아봅니다.
● 개발자로서의 성장과 더 나은 코드 작성을 위한 실질적인 지침을 얻을 수 있습니다.
이 책은 실무에 바로 적용 가능한 클린 코드 비법을 소개하는 실습서입니다. 이론적인 설명과 실제 예제 코드를 통해 클린 코드 개념을 명확하게 이해해보세요. 이 개념을 여러분의 코드에 직접 적용해보면 클린 코드를 작성하는 스킬이 차근차근 향상될 것입니다. 코드의 품질을 높이고, 유지 보수를 용이하게 하며, 개발자로서의 경쟁력을 강화하고 싶다면 이 책을 통해 클린 코드의 세계로 첫발을 내딛을 차례입니다.
*목차
_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 객체 역직렬화 방지하기
상품필수 정보
도서명 | 실무로 통하는 클린 코드 | ||
---|---|---|---|
저자/출판사 | 막시밀리아노 콘티에리 / 한빛미디어 | ||
크기/전자책용량 | 183x235x19 | ||
쪽수 | 488 | ||
제품 구성 | 낱권 | ||
발행일 | 2024-08-05 | ||
목차 또는 책소개 | 상세설명 참조 |
배송안내
- 배송비 : 기본배송료는 2,500원 입니다. (도서,산간,오지 일부지역은 배송비가 추가될 수 있습니다)
- 본 상품의 평균 배송일은 3일입니다.(입금 확인 후) 설치 상품의 경우 다소 늦어질수 있습니다.[배송예정일은 주문시점(주문순서)에 따른 유동성이 발생하므로 평균 배송일과는 차이가 발생할 수 있습니다.]
- 본 상품의 배송 가능일은 3일 입니다. 배송 가능일이란 본 상품을 주문 하신 고객님들께 상품 배송이 가능한 기간을 의미합니다. (단, 연휴 및 공휴일은 기간 계산시 제외하며 현금 주문일 경우 입금일 기준 입니다.)
교환 및 반품안내
- 상품 택(tag)제거 또는 개봉으로 상품 가치 훼손 시에는 상품수령후 7일 이내라도 교환 및 반품이 불가능합니다.
- 저단가 상품, 일부 특가 상품은 고객 변심에 의한 교환, 반품은 고객께서 배송비를 부담하셔야 합니다(제품의 하자,배송오류는 제외)
- 일부 상품은 신모델 출시, 부품가격 변동 등 제조사 사정으로 가격이 변동될 수 있습니다.
- 신발의 경우, 실외에서 착화하였거나 사용흔적이 있는 경우에는 교환/반품 기간내라도 교환 및 반품이 불가능 합니다.
- 수제화 중 개별 주문제작상품(굽높이,발볼,사이즈 변경)의 경우에는 제작완료, 인수 후에는 교환/반품기간내라도 교환 및 반품이 불가능 합니다.
- 수입,명품 제품의 경우, 제품 및 본 상품의 박스 훼손, 분실 등으로 인한 상품 가치 훼손 시 교환 및 반품이 불가능 하오니, 양해 바랍니다.
- 일부 특가 상품의 경우, 인수 후에는 제품 하자나 오배송의 경우를 제외한 고객님의 단순변심에 의한 교환, 반품이 불가능할 수 있사오니, 각 상품의 상품상세정보를 꼭 참조하십시오.
환불안내
AS안내
- 소비자분쟁해결 기준(공정거래위원회 고시)에 따라 피해를 보상받을 수 있습니다.
- A/S는 판매자에게 문의하시기 바랍니다.
이미지 확대보기
실무로 통하는 클린 코드
비밀번호 인증
글 작성시 설정한 비밀번호를 입력해 주세요.
확인장바구니 담기
상품이 장바구니에 담겼습니다.
바로 확인하시겠습니까?
찜 리스트 담기
상품이 찜 리스트에 담겼습니다.
바로 확인하시겠습니까?