본문 바로가기

추천 검색어

실시간 인기 검색어

[epub3.0]자바 코딩의 기술

똑똑하게 코딩하는 법
길벗

2020년 08월 05일 출간

종이책 : 2020년 07월 30일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 ePUB (10.55MB)
ISBN 9791165212575
지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
교보eBook App 듣기(TTS) 가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 전자책 화면에 표기된 주석 등을 모두 읽어 줍니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
  • '교보 ebook' 앱을 최신 버전으로 설치해야 이용 가능합니다. (Android v3. 0.26, iOS v3.0.09,PC v1.2 버전 이상)

소득공제
소장
정가 : 17,600원

쿠폰적용가 15,840

10% 할인 | 5%P 적립

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

카드&결제 혜택

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

작품소개

이 상품이 속한 분야

내 코드, 정말 괜찮을까?

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

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

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

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

[예제 코드]
ㆍ 길벗 깃허브 저장소: https://github.com/gilbutITbook/007025
ㆍ 원서 소스 코드: https://pragprog.com/titles/javacomp/source_code
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쪽) 같은 간단한 문제를 컴파일하고 실행하고 해결하는 코드 정도는 작성할 수 있어야 합니다. 간단한 알고리즘을 구현할 수 있어야 하고 리스트나 큐, 스택, 맵 같은 기본적인 자료
구조를 사용하는 방법도 알아야 합니다. 또한 이 모든 것이 당연히 즐거워야 하고요!
복잡한 문제를 풀었을 때 큰 만족감을 느낀다면 시작이 매우 좋은 겁니다. 하지만 배울 내용이 산더미라는 사실도 물론 알고 있겠죠. 기술을 적용해보았는데 자바 프로그래밍이나 일반적인 프로그래밍 경험이 부족하다는 사실을 인정해야 한다면 이 책을 통해 최대효과를 거둘 수 있을 것입니다. 아마도 클린 코드와 숙련된 개발자가 적용하는 모범 사례에 대한 감을 아직 키우지 못했다는 뜻일 테니까요.

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

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

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

작가정보

저자(글) 사이먼 하러

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

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

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

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

작가의 말

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

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

이 상품의 총서

Klover리뷰 (0)

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

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

문장수집

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

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

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

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

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

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

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

    사진 첨부(선택) 0 / 5

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

    신고/차단

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

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


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

    문장수집 작성

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

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

    P.
    [epub3.0]자바 코딩의 기술
    똑똑하게 코딩하는 법
    저자 모두보기
    낭독자 모두보기
    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일)