본문 바로가기

추천 검색어

실시간 인기 검색어

자바 코드의 품질을 높이는 100가지 방법

한빛미디어

2025년 03월 10일 출간

국내도서 : 2025년 03월 30일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 PDF (4.72MB)   |  425 쪽
ISBN 9791169219143
지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
교보eBook App 듣기(TTS) 불가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.

PDF 필기가능 (Android, iOS)
소득공제
소장
정가 : 25,600원

쿠폰적용가 23,040

10% 할인 | 5%P 적립

이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.

카드&결제 혜택

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
  • 리뷰 작성 시, e교환권 추가 최대 200원

작품소개

이 상품이 속한 분야

이 책은 자바 개발에서 반복적으로 발생하는 100가지 실수를 모아 더 나은 코드를 작성할 수 있도록 돕는 실전 가이드다. 단순한 코드 리뷰를 넘어, 실제 사례와 코드 예제를 통해 표현식, 프로그램 구조, 숫자 처리, 예외 처리, 유닛 테스트 등에서 발생할 수 있는 다양한 문제의 원인과 해결책을 깊이 있게 탐구한다. 각 장은 독립적으로 구성되어 있어 관심 있는 주제별로 자유롭게 학습할 수 있으며, 초보자부터 숙련자까지 모든 수준의 자바 개발자에게 유용하다.
이 책을 통해 자주 발생하는 오류를 피하고 더 견고하고 높은 품질의 코드를 작성하며 성장할 수 있을 것이다. 이 책이 여러분의 개발 여정에 든든한 길잡이가 되길 바란다.
CHAPTER 1 코드 품질 관리
코드 리뷰와 페어 프로그래밍
코드 스타일
정적 분석
자동화된 테스트
뮤테이션 커버리지
동적 분석
코드 어설션
정리

CHAPTER 2 표현식
실수 001 숫자 연산자 우선순위 오해
실수 002 조건식의 괄호 누락
실수 003 덧셈이 아닌 결합으로 작동
실수 004 멀티라인 문자열 리터럴
실수 005 단항 덧셈 연산자
실수 006 조건 표현식의 묵시적 타입 변환
실수 007 비단락 논리 연산자 사용
실수 008 &&와 || 혼동
실수 009 잘못된 가변 인수 호출
실수 010 조건 연산자와 가변 인수 호출
실수 011 반환값 무시
실수 012 새롭게 생성된 객체를 사용하지 않음
실수 013 잘못된 메서드를 참조하는 바인딩
실수 014 메서드 참조 시 잘못된 메서드 지정
정리

CHAPTER 3 프로그램 구조
실수 015 잘못된 if-else 연쇄
실수 016 이전 조건의 다음 조건 지배
실수 017 switch 문 통과 실수
실수 018 구형 for 루프 오류
실수 019 루프 변수 미사용
실수 020 잘못된 루프 방향
실수 021 루프 오버플로
실수 022 멱등 루프 본문
실수 023 잘못된 초기화 순서
실수 024 누락된 슈퍼클래스 메서드 호출
실수 025 우발적인 정적 필드 선언
정리

CHAPTER 4 숫자
실수 026 우발적인 8진수 리터럴 사용
실수 027 수치 오버플로
실수 028 정수 나눗셈 중 반올림
실수 029 Integer.MIN_VALUE의 절댓값
실수 030 홀수 검사와 음수
실수 031 확장으로 인한 정밀도 손실
실수 032 무조건적인 축소 변환
실수 033 16진수 음수
실수 034 복합 할당의 묵시적 타입 변환
실수 035 나눗셈과 복합 할당
실수 036 short 타입
실수 037 비트 조작 알고리즘
실수 038 음수 바이트
실수 039 잘못된 클램핑 순서
실수 040 특수한 부동소수점 수
정리

CHAPTER 5 일반적인 예외
실수 041 NullPointerException
실수 042 IndexOutOfBoundsException
실수 043 ClassCastException
실수 044 StackOverflowError
정리

CHAPTER 6 문자열
실수 045 char 값을 문자로 간주
실수 046 대소문자 변환
실수 047 기본 로케일에서 String.format 사용
실수 048 포맷 인수 불일치
실수 049 정규 표현식 대신 일반 문자열 사용
실수 050 replaceAll 오용
실수 051 이스케이프 시퀀스 오용
실수 052 문자열의 대소문자 비교
실수 053 indexOf 메서드 결과 미확인
실수 054 indexOf 인수 오용
정리

CHAPTER 7 객체 비교
실수 055 equals 메서드 대신 참조 동등성 비교
실수 056 equals()가 내용을 비교한다고 간주함
실수 057 URL.equals() 사용
실수 058 스케일이 다른 BigDecimal 비교
실수 059 관련 없는 타입에 equals() 사용
실수 060 잘못된 equals() 구현
실수 061 배열 필드 hashCode()
실수 062 equals()와 hashCode() 불일치
실수 063 특정 반환값에 의존하는 compare()
실수 064 동일한 객체를 비교할 때 0을 반환하지 않음
실수 065 뺄셈을 이용한 숫자 비교
실수 066 비교 메서드가 반환하는 NaN 값 무시
실수 067 비교 메서드에서 객체를 키 시퀀스로 표현하지 못함
실수 068 비교자의 난수 반환
정리

CHAPTER 8 컬렉션과 맵
실수 069 관련 없는 객체 타입 검색
실수 070 단일 객체와 컬렉션 혼합
실수 071 null을 허용하지 않는 컬렉션에서 null을 검색함
실수 072 맵에서 null 값 사용
실수 073 수정 불가 컬렉션의 수정 시도
실수 074 가변 객체를 키로 사용
실수 075 HashMap 및 HashSet의 등장 순서 의존
실수 076 순회 도중 수정하기
실수 077 List.remove() 오버로드 오용
실수 078 List.remove() 직후 원소 생략
실수 079 Collection.removeIf() 내부의 컬렉션 조회
실수 080 Map.computeIfAbsent()의 동시 수정
실수 081 이터레이터 계약 위반
정리

CHAPTER 9 라이브러리 메서드
실수 082 StringBuilder 생성자에 char 전달
실수 083 스트림 API 체인에서 부수 효과를 일으킴
실수 084 스트림을 두 번 소비
실수 085 null 사용 불가 스트림에서 null 값 사용
실수 086 스트림 API 연산 계약 위반
실수 087 instanceof 대신 getClass()를 사용
실수 088 열거형, 어노테이션, 클래스에서 getClass()를 사용
실수 089 문자열을 불리언으로 잘못 변환
실수 090 잘못된 날짜 포맷
실수 091 약한 참조, 부드러운 참조의 우발적 무효화
실수 092 세상이 안정적이라는 가정
실수 093 동시 업데이트 데이터 구조에 대한 비원자적 접근
정리

CHAPTER 10 유닛 테스트
실수 094 assert 문의 부수 효과
실수 095 잘못된 assertion 메서드 호출
실수 096 잘못된 예외 테스트
실수 097 테스트 메서드 조기 종료
실수 098 유닛 테스트에서 AssertionError 무시하기
실수 099 assertNotEquals()로 동등성 비교하기
실수 100 양식이 잘못된 테스트 메서드
정리

APPENDIX A 정적 분석 어노테이션
어노테이션 패키지
어노테이션 종류

APPENDIX B 정적 분석 툴 확장
Error Prone 플러그인
SpotBugs 플러그인
IntelliJ IDEA 플러그인
IntelliJ IDEA의 구조적 검색 및 교체 기능

단순한 실수가 큰 버그로 이어진다!
실무에서 바로 적용하는 100가지 자바 기술
대부분의 개발자는 작은 실수 하나가 예상치 못한 버그로 이어지는 경험을 종종 한다. 특히 객체를 비교할 때 equals()와 hashCode()를 올바르게 구현하지 않아 발생하는 문제는 흔히 간과되지만, 실제로는 심각한 오류를 초래한다. 또한 Stream API를 활용한 코드가 우아해 보이지만, 내부 동작을 깊이 이해하지 않으면 성능 저하나 유지보수의 어려움을 겪게 된다.
이 책은 실무에서 마주할 수 있는 다양한 문제를 깊이 있게 탐구하며, 단순한 개념 설명이 아니라 실전에서 발생하는 버그와 그 해결 방법을 중심으로 구성되었다. 예를 들어, 많은 개발자가 NullPointerException을 피하기 위해 습관적으로 null 체크를 하지만, 보다 안전하고 효과적인 방법이 존재한다. 또한 멀티스레드 환경에서 동시성 문제를 간과하면 의도하지 않은 동작이 발생할 수 있으며, 이러한 문제를 방지하기 위한 실질적인 패턴과 기법도 함께 다룬다. 이 책을 통해 단순히 실수를 줄이는 것을 넘어, 보다 안전하고 견고한 코드를 작성하는 법을 배울 수 있다. 실무에서 발생할 수 있는 문제를 미리 예측하고 대응하는 능력을 키워 자바 개발자로서 한 단계 더 나아가길 바란다.

누구를 위한 책인가요?
- 초급부터 고급까지 자바 개발 경험이 있는 모든 프로그래머

이 책에서 다루는 주요 내용은 무엇인가요?
- 견고하고 안전한 자바 코드 작성법
- 실무에서 흔히 발생하는 실수를 예측하고 줄이는 법
- 디버깅과 테스트 시간을 절약하는 방법
- 정적 분석 도구 활용과 오탐(false reports) 수 줄이기
- 사용자 정의 플러그인으로 정적 분석 도구 확장하기

작가정보

(Tagir Valeev)
뮌헨 지사에 있는 젯브레인의 테크니컬 리더이며 IntelliJ IDEA의 자바 언어 지원 팀에 소속되어 있다. 그의 주요 관심사는 정적 분석과 코드 리팩터링이다. IntelliJ IDEA에 내장된 정적 코드 분석기를 설계하고 개발했으며 자바 바이트코드 정적 분석 도구인 FindBugs에도 기여한 바 있다. 15년간 자바로 상업용 소프트웨어를 개발해왔고 정적 분석 분야에서만 10년 이상의 경험을 보유하고 있다. 또한 2006년에 컴퓨터 과학 박사 학위를 취득했으며, 2020년에 자바 챔피언 칭호를 획득했다.

어린 시절 BASIC 언어를 계기로 프로그래밍을 접했다. 연세대학교 공과대학을 졸업한 이후 서버 엔지니어와 개발자로 일하며 다양한 업무를 담당했다. 현재는 시니어 개발자로 경력을 이어가는 한편 양질의 개발 서적 출간에 일조하고자 노력하는 중이다. 옮긴 책으로는 『자바 개발자를 위한 데브옵스 툴』, 『자바 마이크로서비스를 활용한 SRE』,『진화적 아키텍처』 (이상 한빛미디어) 등이 있다.

이 상품의 총서

Klover리뷰 (0)

Klover리뷰 안내
Klover(Kyobo-lover)는 교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1. 리워드 안내
구매 후 90일 이내에 평점 작성 시 e교환권 100원을 적립해 드립니다.
  • - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
  • - 리워드는 한 상품에 최초 1회만 제공됩니다.
  • - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
2. 운영 원칙 안내
Klover리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다. 일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

구매 후 리뷰 작성 시, e교환권 100원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여 주는 교보문고의 새로운 서비스 입니다. 교보eBook 앱에서 도서 열람 후 문장 하이라이트 하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 ‘좋아요’ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보없이 삭제될 수 있습니다.
리워드 안내
  • 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
  • e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
  • 리워드는 한 상품에 최초 1회만 제공됩니다.
  • sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.

구매 후 문장수집 작성 시, e교환권 100원 적립

    교보eBook 첫 방문을 환영 합니다!

    신규가입 혜택 지급이 완료 되었습니다.

    바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
    지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    자바 코드의 품질을 높이는 100가지 방법 웹툰 신간 알림이 신청되었습니다.
    신간 알림 안내
    자바 코드의 품질을 높이는 100가지 방법 웹툰 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
    • 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
    • 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
    감성 태그

    가장 와 닿는 하나의 키워드를 선택해주세요.

    사진 첨부(선택) 0 / 5

    총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.

    신고/차단

    신고 사유를 선택해주세요.
    신고 내용은 이용약관 및 정책에 의해 처리됩니다.

    허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
    있으니 유의하시어 신중하게 신고해주세요.


    이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.

    문장수집 작성

    구매 후 90일 이내 작성 시, e교환권 100원 적립

    eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.

    P.
    자바 코드의 품질을 높이는 100가지 방법
    저자 모두보기
    낭독자 모두보기
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 프리미엄 이용권입니다.
    선물하실 sam이용권을 선택하세요.
    결제완료
    e캐시 원 결제 계속 하시겠습니까?
    교보 e캐시 간편 결제
    sam 열람권 선물하기
    • 보유 권수 / 선물할 권수
      0권 / 1
    • 받는사람 이름
      받는사람 휴대전화
    • 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
    • 열람권은 1인당 1권씩 선물 가능합니다.
    • 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
    • 선물한 열람권의 등록유효기간은 14일 입니다.
      (상대방이 기한내에 등록하지 않을 경우 소멸됩니다.)
    • 무제한 이용권일 경우 열람권 선물이 불가합니다.
    이 상품의 총서 전체보기
    네이버 책을 통해서 교보eBook 첫 구매 시
    교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 네이버 책을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)
    구글바이액션을 통해서 교보eBook
    첫 구매 시 교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)