장바구니 담기 close

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

이펙티브 코틀린

이펙티브 코틀린

  • 마르친모스칼라
  • |
  • 인사이트
  • |
  • 2022-01-21 출간
  • |
  • 404페이지
  • |
  • 172 X 255 mm
  • |
  • ISBN 9788966263370
판매가

28,000원

즉시할인가

25,200

배송비

무료배송

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

수량
+ -
총주문금액
25,200

이 상품은 품절된 상품입니다

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

출판사서평




‘1부: 좋은 코드’에서는 좋은 품질의 코드를 만들기 위한 일반적인 규칙을 설명합니다. 이 부에서는 프로젝트의 규모와 상관없이 모든 코틀린 개발자를 위한 내용을 설명합니다. 안정성에 관한 아이템부터 시작해서 가독성까지 설명합니다. 프로그래밍에서 가장 중요한 것은 안정적으로 정확한 결과를 만들어 내는 것이라고 생각합니다. 따라서 첫 번째 장에서 안정성을 다룹니다. 또한 코드를 읽는 것은 컴파일러만을 위한 것이 아닙니다. 많은 프로그래머가 코드를 읽습니다. 또한 혼자 코드를 작성해도, 코드를 쉽게 읽을 수 있어야 합니다. 따라서 두 번째 장에서 가독성을 다룹니다.
‘2부: 코드 설계’에서는 다른 개발자와 함께 프로젝트를 진행하거나, 라이브러리를 만들 때 활용할 수 있는 내용을 다룹니다. 바로 컨벤션(convention)과 규약(contract)입니다. 물론 컨벤션과 규약은 결국 가독성과 안정성이 반영된 결과입니다. 따라서 추상화와 함께 코드 품질을 향상시킬 수 있는 내용을 추가로 다루는 부라고 생각하면 됩니다. 추가적으로 이 부에서는 코드를 확장시키는 방법과 관련된 내용을 다룹니다. 프로젝트는 오랜 시간 동안 계속해서 발전하게 됩니다. 따라서 대규모 프로젝트를 만들 때 활용할 수 있는 유용한 사례들에 대해서 설명합니다.
‘3부: 효율성’에서는 코드의 효율성과 관련된 부입니다. 대부분의 아이템에서 개발 시간과 가독성을 따로 희생하지 않고 사용할 수 있는 효율성 관련 사례를 다룹니다. 다만 일반적으로 코드의 효율성은 고성능 애플리케이션, 라이브러리, 많은 사람이 사용하는 애플리케이션에서 유용하므로, 이와 관련된 내용도 다룹니다.


목차


1부: 좋은 코드

1장 안정성
아이템 1: 가변성을 제한하라
아이템 2: 변수의 스코프를 최소화하라
아이템 3: 최대한 플랫폼 타입을 사용하지 말라
아이템 4: inferred 타입으로 리턴하지 말라
아이템 5: 예외를 활용해 코드에 제한을 걸어라
아이템 6: 사용자 정의 오류보다는 표준 오류를 사용하라
아이템 7: 결과 부족이 발생할 경우 null과 Failure를 사용하라
아이템 8: 적절하게 null을 처리하라
아이템 9: use를 사용하여 리소스를 닫아라
아이템 10: 단위 테스트를 만들어라

2장 가독성
아이템 11: 가독성을 목표로 설계하라
아이템 12: 연산자 오버로드를 할 때는 의미에 맞게 사용하라
아이템 13: Unit?을 리턴하지 말라
아이템 14: 변수 타입이 명확하게 보이지 않는 경우 확실하게 지정하라
아이템 15: 리시버를 명시적으로 참조하라
아이템 16: 프로퍼티는 동작이 아니라 상태를 나타내야 한다
아이템 17: 이름 있는 아규먼트를 사용하라
아이템 18: 코딩 컨벤션 지켜라

2부: 코드 설계

3장 재사용성
아이템 19: knowledge를 반복하지 말라
아이템 20: 일반적인 알고리즘을 반복해서 구현하지 말라
아이템 21: 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라
아이템 22: 일반적인 알고리즘을 구현할 때 제네릭을 사용하라
아이템 23: 타입 파라미터의 섀도잉을 피하라
아이템 24: 제네렉 타입과 variance 한정자를 활용하라
아이템 25: 공통 모듈을 추출해서 여러 플랫폼에서 재사용하라

4장 추상화 설계
아이템 26: 함수 내부의 추상화 레벨을 통일하라
아이템 27: 변화로부터 코드를 보호하려면 추상화를 사용하라
아이템 28: API 안정성을 확인하라
아이템 29: 외부 API를 랩(wrap)해서 사용하라
아이템 30: 요소의 가시성을 최소화하라
아이템 31: 문서로 규약을 정의하라
아이템 32: 추상화 규약을 지켜라

5장 객체 생성
아이템 33: 생성자 대신 팩토리 함수를 사용하라
아이템 34: 기본 생성자에 이름 있는 옵션 아규먼트를 사용하라
아이템 35: 복잡한 객체를 생성하기 위한 DSL을 만들어라

6장: 클래스 설계
아이템 36: 상속보다는 컴포지션을 사용하라
아이템 37: 데이터 집합 표현에 data 한정자를 사용하라
아이템 38: 연산 또는 액션을 전달할 때 인터페이스 대신 함수 타입을 사용하라
아이템 39: 태그 클래스보다는 클래스 계층을 사용하라
아이템 40: equals의 규약을 지켜라
아이템 41: hashCode의 규약을 지켜라
아이템 42: compareTo의 규약을 지켜라
아이템 43: API의 필수적이지 않는 부분을 확장 함수로 추출하라
아이템 44: 멤버 확장 함수의 사용을 피하라

3부: 효율성

7장 비용 줄이기
아이템 45: 불필요한 객체 생성을 피하라
아이템 46: 함수 타입 파라미터를 갖는 함수에 inline 한정자를 붙여라
아이템 47: 인라인 클래스의 사용을 고려하라
아이템 48: 더 이상 사용하지 않는 객체의 레퍼런스를 제거하라

8장 효율적인 컬렉션 처리
아이템 49: 하나 이상의 처리 단계를 가진 경우에는 시퀀스를 사용하라
아이템 50: 컬렉션 처리 단계 수를 제한하라
아이템 51: 성능이 중요한 부분에는 기본 자료형 배열을 사용하라
아이템 52: mutable 컬렉션 사용을 고려하라

용어

교환 및 환불안내

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