장바구니 담기 close

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

자바 코딩의 기술

자바 코딩의 기술

  • 사이먼하러
  • |
  • 길벗
  • |
  • 2020-07-30 출간
  • |
  • 264페이지
  • |
  • 152 X 225 X 11 mm
  • |
  • ISBN 9791165212315
판매가

22,000원

즉시할인가

19,800

배송비

무료배송

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

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

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

출판사서평




대상 독자
자바 프로그래밍 초보자나 중급자가 대상입니다. 또한 프로그래머 과정을 이제 막 시작한 개발자를 가르치는 선생님에게 유용한 수업 자료입니다. 이 책은 자원 처리나 함수형 프로그래밍, 테스트에 대해 더 최신인 자바 8 문법에 기반해 팁과 비결을 제공합니다.
이 책은 자바 기본 문법을 학습하고 조건문과 루프로 간단한 프로그램을 만들 수 있고 객체 지향 프로그래밍의 기초를 알고 난 후에 읽어야 합니다. FizzBuzz(준비되었나요? 자기 평가를 해보세요 참고, 015쪽) 같은 간단한 문제를 컴파일하고 실행하고 해결하는 코드 정도는 작성할 수 있어야 합니다. 간단한 알고리즘을 구현할 수 있어야 하고 리스트나 큐, 스택, 맵 같은 기본적인 자료
구조를 사용하는 방법도 알아야 합니다. 또한 이 모든 것이 당연히 즐거워야 하고요!
복잡한 문제를 풀었을 때 큰 만족감을 느낀다면 시작이 매우 좋은 겁니다. 하지만 배울 내용이 산더미라는 사실도 물론 알고 있겠죠. 기술을 적용해보았는데 자바 프로그래밍이나 일반적인 프로그래밍 경험이 부족하다는 사실을 인정해야 한다면 이 책을 통해 최대효과를 거둘 수 있을 것입니다. 아마도 클린 코드와 숙련된 개발자가 적용하는 모범 사례에 대한 감을 아직 키우지 못했다는 뜻일 테니까요.

이제 바뀔 때가 되었습니다!
물론 〈이펙티브 자바〉(인사이트, 2018)와 〈클린 코드〉(인사이트, 2013)처럼 자바의 코드 품질과 가독성, 유지보수성, 클린 코드를 다룬 고급 책을 이미 접했다면 이미 한 발 멀리 나아갔다고 할 수 있습니다. 그래도 이 책에서 새로운 내용을 더 찾을 수 있을 것이고 꼭 그럴 거예요.

이 책으로 클린 코드 가르치기
기업에서 신입사원에게 프로그래밍을 가르치는 선임 개발자라면 이 책에서 다룰 모범 사례를 익히 알고 있겠죠. 물론 업무에 따라 동의하지 못하는 사례도 있을 것입니다. 그래도 이 책을 통해 더 편하게 주니어 개발자를 훈련시킬 수 있습니다. 참조용으로 활용하면 됩니다. 수습사원이 작성한 코드에서 문제를 발견하면 이 책에서 해당하는 절을 알려주세요. 수습사원은 당신이 언뜻 내비친 문제에 대해 간단한 예제와 함께 문제 해법에 도달하는 방법을 읽을 수 있습니다. 일일이 설명을 쓰지 않아도 되니 시간을 아낄 수 있습니다.
2~3학년까지 자바를 배운 학생 대상으로 교수법 개념을 개발해온 우리의 경험이 학계에서 가르치는 데 유용할 것입니다. 이 책은 대학 학부생을 대상으로 15년 이상 코드 품질을 고급 과정으로 가르쳐온 지식의 산물입니다. 자바를 밑바닥부터 가르치지는 못하더라도 기본적으로 프로그래밍 과제를 포함하는 어떤 과목과도 어울립니다. 특히 이 책은 클린 코드 교육 워크숍 논문에서 설명했듯이 학생 코드를 평가할 때 참고하기 좋습니다.

[옮긴이의 말]
언어의 기초를 모두 익혔더라도 전문가로 가는 길은 험난합니다. 모든 언어가 그렇듯 자바를 처음 접하면 일단 타입과 연산자, 조건문, 반복문 등 언어의 기본 재료를 배웁니다. 이 정도의 지식을 갖춘 학생들에게 간단한 알고리즘 구현을 시켜보면 조금씩 다른 결과물을 냅니다. 매우 미미한 차이죠. 하지만 시간이 흐르면서 어떤 코드를 접하고 어떤 과정을 따랐는가에 따라 차이가 점점 벌어집니다.
코딩을 잘하려면 어떡해야 할까요? 코딩 기술은 경험으로 쌓입니다. 즉 실수를 저지르고 고쳐가면서 향상됩니다. 다만 코딩의 세계는 생각보다 넓어 혼자 힘으로는 역부족이고 다른 이의 경험을 밑바탕 삼아야 즉 모범 사례를 많이 보아야 큰 효과를 거둘 수 있습니다. 프로그래밍 초보자는 훌륭한 코드를 구분해내는 시야를 아직 갖지 못한 상태입니다. 이 책을 통해 다른 이의 경험을 빌려와야 하는 이유입니다.
이 책에서는 직접 가르쳐본 선생님의 입장에서 학생들이 자주 범하는 여러 실수를 카테고리별로 분류한 후 실수를 명확히 정의하고 해법을 제시합니다. 전후 코드 조각을 제공해 무엇이 잘못되었고 어떻게 바꾸었는지 자세히 설명합니다. 각 장의 소제목만 보아도 ‘~하기’, ‘~하지 않기’, ‘~ 피하기’, ‘~ 사용하기’ 등 한 눈에 보아도 선배가 조언해주는 느낌이 들죠. 실전에 바로 사용함으로써
코드 품질을 높여줄 만한 모범 사례로 가득합니다.
코딩 기술은 체득해야 하는 다양한 요구 사항을 말합니다. 체득이란 몸소 겪어야만 의미를 깊이 이해하고 스스로 해볼 수 있다는 뜻입니다. 그런 면에서 개념을 설명하고 예시를 드는 전형적인 방식에서 벗어나 하나의 주제별로 훌륭한 코드와 형편없는 코드를 비교해가며 조언하는 저자의 방식은 매우 효과적입니다. 게다가 서로 독립적이어서 꼭 차례대로 읽지 않아도 되고요.
내가 잘하고 있는 걸까, 내가 작성한 코드는 과연 품질이 좋은 걸까 문득 의심이 될 때마다 이 책을 친구처럼 옆에 두고 읽어보세요. 관련된 장을 펼쳐 하나씩 점검해보세요. 주석이나 명명에서 기본적인 관례를 잘 따르고 있는지, 흔히 저지르는 실수는 없는지, 더 최적화할 방법은 없는지, 테스트는 잘 이루어지고 있는지, 객체 디자인은 적절했는지 등을 말이죠. 이런 과정이 쌓이고 쌓여 일관되고 훌륭한 코드 작성으로 이어집니다.
_심지현


목차


1장 우선 정리부터
__1.1 쓸모없는 비교 피하기
__1.2 부정 피하기
__1.3 불 표현식을 직접 반환
__1.4 불 표현식 간소화
__1.5 조건문에서 NullPointerException 피하기
__1.6 스위치 실패 피하기
__1.7 항상 괄호 사용하기
__1.8 코드 대칭 이루기
__1.9 1장에서 배운 내용

2장 코드 스타일 레벨 업
__2.1 매직 넘버를 상수로 대체
__2.2 정수 상수 대신 열거형
__2.3 For 루프 대신 For-Each
__2.4 순회하며 컬렉션 수정하지 않기
__2.5 순회하며 계산 집약적 연산하지 않기
__2.6 새 줄로 그루핑
__2.7 이어붙이기 대신 서식화
__2.8 직접 만들지 말고 자바 API 사용하기
__2.9 2장에서 배운 내용

3장 슬기롭게 주석 사용하기
__3.1 지나치게 많은 주석 없애기
__3.2 주석 처리된 코드 제거
__3.3 주석을 상수로 대체
__3.4 주석을 유틸리티 메서드로 대체
__3.5 구현 결정 설명하기
__3.6 예제로 설명하기
__3.7 패키지를 JavaDoc으로 구조화하기
__3.8 클래스와 인터페이스를 JavaDoc으로 구조화하기
__3.9 메서드를 JavaDoc으로 구조화하기
__3.10 생성자를 JavaDoc으로 구조화하기
__3.11 3장에서 배운 내용

4장 올바르게 명명하기
__4.1 자바 명명 규칙 사용하기
__4.2 프레임워크에는 Getter/Setter 규칙 적용
__4.3 한 글자로 명명하지 않기
__4.4 축약 쓰지 않기
__4.5 무의미한 용어 쓰지 않기
__4.6 도메인 용어 사용하기
__4.7 4장에서 배운 내용

5장 문제 발생에 대비하기
__5.1 빠른 실패
__5.2 항상 가장 구체적인 예외 잡기
__5.3 메시지로 원인 설명
__5.4 원인 사슬 깨지 않기
__5.5 변수로 원인 노출
__5.6 타입 변환 전에 항상 타입 검증하기
__5.7 항상 자원 닫기
__5.8 항상 다수 자원 닫기
__5.9 빈 catch 블록 설명하기
__5.10 5장에서 배운 내용

6장 올바르게 드러내기
__6.1 Given-When-Then으로 테스트 구조화
__6.2 의미 있는 어서션 사용하기
__6.3 실제 값보다 기대 값을 먼저 보이기
__6.4 합당한 허용값 사용하기
__6.5 예외 처리는 JUnit에 맡기기
__6.6 테스트 설명하기
__6.7 독립형 테스트 사용하기
__6.8 테스트 매개변수화
__6.9 경계 케이스 다루기
__6.10 6장에서 배운 내용

7장 객체 디자인
__7.1 불 매개변수로 메서드 분할
__7.2 옵션 매개변수로 메서드 분할
__7.3 구체 타입보다 추상 타입
__7.4 가변 상태보다 불변 상태 사용하기
__7.5 상태와 동작 결합하기
__7.6 참조 누수 피하기
__7.7 널 반환하지 않기
__7.8 7장에서 배운 내용

8장 데이터 흐름
__8.1 익명 클래스 대신 람다 사용하기
__8.2 명령형 방식 대신 함수형
__8.3 람다 대신 메서드 참조
__8.4 부수 효과 피하기
__8.5 복잡한 스트림 종료 시 컬렉트 사용하기
__8.6 스트림 내 예외 피하기
__8.7 널 대신 옵셔널
__8.8 선택 필드나 매개변수 피하기
__8.9 옵셔널을 스트림으로 사용하기
__8.10 8장에서 배운 내용

9장 실전 준비
__9.1 정적 코드 분석 도구
__9.2 팀 내 자바 포맷 통일
__9.3 빌드 자동화
__9.4 지속적 통합
__9.5 생산 준비와 납품
__9.6 콘솔 출력 대신 로깅
__9.7 다중 스레드 코드 최소화 및 독립
__9.8 고급 동시 실행 추상화 사용하기
__9.9 프로그램 속도 향상
__9.10 틀린 가정 알기
__9.11 9장에서 배운 내용

교환 및 환불안내

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