본문내용 바로가기
MD의선택 무료배송 이벤트 사은품 소득공제

자바 코딩의 기술 똑똑하게 코딩하는 법 | 현장에서 뽑은 70가지 예제로 배우는 코드 잘 짜는 법

사이먼 하러 , 요르그 레너드 , 리누스 디에츠 지음 | 심지현 옮김 | 길벗 | 2020년 07월 30일 출간

이 책의 다른 상품 정보

  • 정가 : 22,000원
    판매가 : 19,800 [10%↓ 2,200원 할인]
  • 통합포인트 :
    [기본적립] 1,100원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2천원 추가적립 안내 [회원혜택] 실버등급 이상, 3만원 이상 구매 시 2~4% 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    당일배송 지금 주문하면 오늘(24일,목) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • 길벗 스마트 보드 선택(행사도서구매시)
    2020.07.13 ~ 2020.10.31
  • 책을 통해 성장해나가는 개발자를 응원합니다.
    2017.06.22 ~ 2025.07.31
상품상세정보
ISBN 9791165212315(1165212315)
쪽수 264쪽
크기 152 * 226 * 14 mm /417g 판형알림

책소개

이 책이 속한 분야

내 코드, 정말 괜찮을까?

전문가의 코드와 비교하면서 배운다
코딩 스킬을 개선하는 가장 좋은 방법은 전문가의 코드를 읽는 것이다. 오픈 소스 코드를 읽으면서 이해하면 좋지만, 너무 방대하고 스스로 맥락을 찾는 게 어려울 수 있다. 그럴 땐 이 책처럼 현장에서 자주 발견되는 문제 유형 70가지와 해법을 비교하면서 자신의 코드에서 개선할 점을 찾는 것이 좋다.

적절한 코드를 작성하는 법을 배운다
너무 과하지 않으면서 간결하게, 군더더기 없이, 딱 필요한 만큼만 있는 코드를 작성하는 방법을 배워보자. BufferedReader를 br로 선언하는가? buffered로 선언하는가? 왜 reader로 선언해야 한다고 해법을 제시할까? 이 책은 변수명을 어떻게 짓는가, 주석은 어떻게 써야 하는가부터 시작해서 단계별로 주제를 심화해가면서 적절한 코드란 무엇인지 알려준다.

훌륭한 코드란 기능을 구현하는 것 이상이다
별거 아닌 것 같은 디테일 하나가 코드를 더 멋지게 만든다. 가독성이 좋아지고, 유지보수성이 좋아지고, 변경에 유연하고, 강건한 코드, 더 빠른 코드를 작성할 수 있게 해준다. 작지만 중요한 디테일을 꼼꼼하게 지적하고, 더 나은 프로그래머가 되는 여정을 보여줄 것이다.

[책 속의 문구]
명심하세요! 바보는 도구를 사용해도 바보입니다!

[예제 코드]
ㆍ 길벗 깃허브 저장소: https://github.com/gilbutITbook/007025
ㆍ 원서 소스 코드: https://pragprog.com/titles/javacomp/source_code

상세이미지

자바 코딩의 기술 도서 상세이미지

저자소개

저자 : 사이먼 하러

사이먼 하러 박사는 항상 새로운 기술, 프레임워크, 아이디어를 탐색하는 개발자이자 선생님입니다. 그의 친구들은 그를 클린 코드 전도사라고 부릅니다.

저자 : 요르그 레너드

요르그 레너드 박사는 개발자, 선생님, 연구원입니다. 10년째 자바를 가르치고 있으며 오픈 소스 소프트웨어에 기여하는 것을 좋아합니다. 컴퓨터 과학 연구자로서의 경력과 전문 소프트웨어 개발자로서의 경험을 쌓고 있습니다.

저자 : 리누스 디에츠

리누스 디에츠는 뮌헨 공과대학교의 연구원입니다. 우아한 알고리즘을 개발하거나 오픈 소스 소프트웨어를 발전시키는 데 그의 열정을 바치고 있습니다.

역자 : 심지현

이화여대 컴퓨터공학과를 졸업하고, KAIST 대학원 전산과에서 데이터베이스 전공으로 석사 학위를 취득했다. 데이터베이스 외에 온톨로지(Ontology), 개인화 검색 등을 연구했으며 졸업 후 네이버에서 검색 서버 설계 및 개발 실무 경험을 쌓다가 현재는 검색 연구실에서 검색 모델링과 추천 시스템 관련 연구를 진행 중이다.

작가의 말

사용한 양식에 대해 설득력 있는 전후 코드를 제공할 수 없다면 엉터리 약을 파는 것이다.
- 데이비드 하이네마이어 핸슨

데이비드 하이네마이어 핸슨의 말에 전적으로 동감합니다.
프로그래밍 기법을 제안하려면 그 제안이 이전에 나왔던 방법보다 나은 점을 간단히 입증할 수 있어야 합니다. 사실 관계를 논하는 전후 접근법으로 기존 코드와 새 코드를 바로 비교할 수 있습니다. 그런 후에야 어느 방법이 더 나은지 사실에 근거한 결정을 내릴 수 있습니다.
프로그래밍 방법을 배울 때도 마찬가지입니다. 자바에서 어떻게 코딩하는지 알려면 훌륭한 코드와 형편없는 코드를 비교하는 방법이 무척 유용합니다.
6년 이상 대학에서 프로그래밍을 가르쳐왔습니다. 강의를 몇 번 하고 나면 항상 이렇게 묻는 학생들이 있습니다. “코딩 기술을 더 늘리려면 어떡해야 하나요?” 질문을 던진 학생들은 프로그래밍 과제에서 두각을 나타냈으므로 나는 “전문가가 만든 코드를 읽어보세요.”라는 판에 박힌 조언을 해주었습니다.
솔직히 그런 조언은 별 도움이 되지 못했습니다. 오픈 소스 소프트웨어 세상에는 코드가 넘쳐나는데 어디서부터 읽어야 좋을지 말해주기 어렵습니다. 실제로 프로젝트 내 전문 코드와 맞닥뜨린 초보자는 그 복잡도에 쉽게 압도당합니다. 게다가 어느 코드의 품질이 정말 뛰어난지 어떻게 알 수 있겠어요? 설사 알 수 있더라도 겨우 몇 달 동안 프로그래밍해본 경험으로 고품질의 코드와 결함이 있는 코드를 어떻게 구분하겠어요?
드디어 이 책 <자바 코딩의 기술>이 나설 차례입니다. 이 책은 올바른 방향으로 읽어 나가도록 안내해주는 동반자입니다. 잘못된 코드와 훌륭한 코드를 비교해 훌륭한 자바 코드 작성법을 배울 수 있습니다. 장담컨대 수년 간 학계 수강생과 업계 전문가, 오픈 소스 프로젝트 기여자가 작성한 코드를 리뷰하며 나쁜 코드와 훌륭한 코드를 충분히 보아왔습니다.
그래서 앞에서 설명한 전후 접근법을 사용합니다. 이 책에서는 70개의 전후 코드 조각을 제공합니다. 자바 프로그래밍을 시작한 초보자가 실력을 향상시킬 수 있는 코드 조각이죠. 학부생에게 자바를 가르치면서 그런 코드를 찾아냈습니다. 모두 프로그래밍 과제를 고쳐줄 때 보았던 코드입니다.
이 책의 설명 방식은 간단합니다. 코드 조각을 제시한 후 무엇이 왜 잘못되었는지 설명합니다. 이어서 코드를 더 나은 해법으로 어떻게 바꾸는지 보여줍니다.

목차

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장에서 배운 내용

출판사 서평

대상 독자
자바 프로그래밍 초보자나 중급자가 대상입니다. 또한 프로그래머 과정을 이제 막 시작한 개발자를 가르치는 선생님에게 유용한 수업 자료입니다. 이 책은 자원 처리나 함수형 프로그래밍, 테스트에 대해 더 최신인 자바 8 문법에 기반해 팁과 비결을 제공합니다.
이 책은 자바 기본 문법을 학습하고 조건문과 루프로 간단한 프로그램을 만들 수 있고 객체 지향 프로그래밍의 기초를 알고 난 후에 읽어야 합니다. FizzBuzz(준비되었나요? 자기 평가를 해보세요 참고, 015쪽) 같은 간단한 문제를 컴파일하고 실행하고 해결하는 코드 ... 더보기

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면
결제 90일 이내 300원, 발송 후 5일 이내 400원, 이 상품의 첫 리뷰 500원의 포인트를 드립니다.

포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
북로그 리뷰는 본인인증을 거친 회원만 작성 가능합니다.
(※ 외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외) 안내
  • 해당도서의 리뷰가 없습니다.

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품