자바 코딩의 기술 : 똑똑하게 코딩하는 법
한 번만 읽을 게 아니라 여러 번 읽으면서 체화시켜야 하는 책
리팩토링, 클린코드에 대해 관심이 있다면 두고두고 읽어야하는 책
자주 쓰이는 70가지의 예제를 통해 '똑똑하게 코딩하는 법'을 배울 수 있는 책
리뷰 순서
- 목차
- 이 책의 설명 방식
- 이 책을 읽기 위해 필요한 지식
- 인상 깊었던 점
- 이런 분들에게 추천합니다!
이 게시글은 위의 순서대로 작성됐습니다!
목차
1장. 우선 정리부터
2장. 코드 스타일 레벨 업
3장. 슬기롭게 주석 사용하기
4장. 올바르게 명명하기
5장. 문제 발생에 대비하기
6장. 올바르게 드러내기
7장. 객체 디자인
8장. 데이터 흐름
9장. 실전 준비
이 책의 설명 방식
- 코드 조각을 제시한 후 무엇이 왜 잘못되었는지 설명합니다.
- 코드를 더 나은 해법으로 어떻게 바꾸는지 보여줍니다.
- 이 코드는 현미경(microscope)으로 분석(analyze)한 샘플(sample)이 유기체(organic)인지 아닌지, organic이면 외계인인지 사람인지를 리턴하는 내용입니다.
- 이 책은 '화성 탐사 작전'과 관련된 우주에 대한 내용을 담고 있습니다. 코드의 설정이 흐트러지는 것을 막아 코드 내 문제 해결에 집중을 하도록 하기 위함이라고 합니다.
- 코드 중에 바뀔 부분과 바뀐 부분을 볼드체로 처리하여 변경 내용을 쉽게 확인할 수 있습니다.
이 책을 읽기 위해 필요한 스킬들
- 자바 기본 문법
- 조건문과 루프로 간단한 프로그램 제작 가능
- 객체 지향 프로그래밍의 기초
- 간단한 알고리즘 구현 가능
- 리스트나 큐, 스택, 맵 같은 기본적인 자료구조 사용 방법
저는 컴퓨터공학과 3학년 학생이고, 5번까지 다 배운 상태에서 이 책을 읽었습니다. 2학년 때 '문제해결 및 실습:JAVA', 3학년 때 자바로 리팩토링을 하는 수업인 '문제해결기법'을 들었었고, 아직 '객체 지향 프로그래밍' 수업은 듣지 않은 상태입니다. 개인적인 생각으로는 자바를 막 배우고 난 상태일 때 이 책을 읽었으면 딱 좋았을 것 같다고 생각했습니다.
리팩토링 수업 같은 경우에는 코드에 대해 고민할 일이 많았습니다. 이 코드는 이렇게 바꿀 수도 있고 저렇게 바꿀 수도 있는데, 왜 이렇게 하는 것보다 저렇게 하는 게 더 효율적인 방법이라는 거지? 이런 식의 고민 말입니다. 이 책이 고민을 하지 않게 만든다는 건 아닙니다. 이 책은 안내서처럼, 어떻게 해답을 도출해내야 하는지 친절하게 독자를 이끌어줍니다. 이 부분을 어떤 맥락에서 이렇게 만들었고, 이게 다른 코드보다 어떤 부분이 나은지, 아니면 경우에 따라 어떤 기준으로 판단하는지도 알려줍니다. 제가 읽었던 한 전공 서적과 같은 경우에는 왜 그런지 생각해보라고 질문만 던지고 (솔루션도 없고) 사라졌었는데, 이 책과 같은 경우에는 친구처럼 같이 고민하고 알아내는 기분이라 읽기 더 편했습니다.
인상 깊었던 점
- 깃허브 예제 소스를 제공한다.
- 기술 블로그를 하는 사람들은 공부하면서 TIL에 올릴 때 유용할 것 같습니다.
- 메소드명이나 변수명 등으로 화성 탐사 작전과 관련된 단어가 꽤 나온다.
- 모르는 게 나와서 자바 관련인가 하고 찾아보면 화성 관련 단어였습니다.
- ex. hull.isIntact(), shouldAbortTakeOff
- 검색해서 무슨 뜻인지만 알면 내용을 이해하는데는 불편함 없었습니다.
- 오히려 책에 쓰여있듯이 cat, dog 같은 거면 매번 이해하기 더 번거로웠을 것 같습니다.
- 말투가 세련됐다.
- 쭉 읽었을 때 이해하기도 편하고, 다시 여러 번 돌아가서 읽지 않아도 됐습니다.
- ex. 최적화할 여지가 아직 남았습니다. 예를 들어 두 번째 조건의 양 분기에서 grantAccess()를 동일한 인수로 호출하고 있네요. 두 조건을 별개의 비공개(private) 메서드로 추출할 수 있습니다. 이렇게 하면 코드의 목적이 훨씬 더 명확해지죠.
- 주석이나 JavaDoc을 유용히 쓰는 방법을 자세하게 알려준다.
- 주석은 최대한 쓰지 않는게 낫다고는 했지만, 오히려 이런 주석이면 쓰는게 오히려 좋을 것이라 생각하기도 했습니다.
- 이게 JavaDoc이라는 명칭이 있었다는 걸 처음 알았습니다. 책을 읽고 나중에 한 번 써보고 싶어졌습니다.
- 명명 관련 규칙을 정리해 놓았다.
- 개인적으로 가장 쉬우면서도 어려운 것이 명명이라고 생각합니다. 이 책에서는 그 규칙들을 사전처럼 찾아볼 수 있도록 한 챕터를 할애했습니다.
- 정적 코드 분석 도구, 팀 내 자바 포맷 통일, 빌드 자동화, 콘솔 출력 대신 로깅 등 (내가 몰랐던) 실전에서 쓰이는 것들을 알려준다.
- 팀프로젝트나 협업을 할 때 팀원들과 이 내용을 공유하면 유용하게 쓰일 것 같습니다.
이런 분들에게 추천합니다!
- 이 책이 추천합니다! 기업에서 신입 사원에게 프로그래밍을 가르치는 선임 개발자
이 책에 따르면 주니어 개발자를 훈련시킬 때 유용할 것이라고 합니다. 코드에서 문제를 발견하면 이 책에서 해당하는 절을 알려줘서, 수습사원 스스로 간단한 예제와 함께 문제 해법에 도달하는 방법을 읽도록 하면 시간을 아낄 수 있을 것이라며 추천했습니다.
- 제가 추천합니다! 자바 관련 팀플을 해야하는 학부생들
이 책을 읽으면서 지난 학기에 했던 프로젝트의 리팩토링이 잘못된 부분이 있었다는 걸 깨달았습니다. 수업 시간에 팀플을 해야하는 경우, 이 책을 교재 삼아 스터디를 진행하면 좋을 것 같다고 생각했습니다. 만약 제가 과거로 돌아가서 이 책을 알고 있었다면 반드시 했을 것이기 때문에 추천합니다. 정말 좋은 책이고, 이제라도 알게 되었으니 앞으로 블로그에 더 꼼꼼히 읽고 공부하는 글을 저도 쓸 것 같긴 합니다.
참고로 이 리뷰는 길벗 출판사에서 서적을 제공받아 작성되었습니다.
마지막으로 이 책에서 나왔던 (제 뼈를 때린) 명언을 인용하고, '자바 코딩의 기술' 추천드리며 마무리하겠습니다!
바보도 컴퓨터가 이해하는 코드는 작성할 수 있다. 훌륭한 프로그래머는 인간이 이해하는 코드를 작성한다. (by. 마틴 파울러) |
'📚 서적 리뷰' 카테고리의 다른 글
플러터 앱 프로그래밍 : 실전 코드로 배우는 플러터 기본과 활용법 (0) | 2021.10.19 |
---|---|
신경망 교과서 리뷰 (프로젝트를 만들면서 배우는 신경망!) (0) | 2020.07.09 |
개발자의 디자인 독해력 - 디자이너와의 협업을 위하여! (0) | 2020.04.05 |
댓글
이 글 공유하기
다른 글
-
플러터 앱 프로그래밍 : 실전 코드로 배우는 플러터 기본과 활용법
플러터 앱 프로그래밍 : 실전 코드로 배우는 플러터 기본과 활용법
2021.10.19 -
신경망 교과서 리뷰 (프로젝트를 만들면서 배우는 신경망!)
신경망 교과서 리뷰 (프로젝트를 만들면서 배우는 신경망!)
2020.07.09 -
개발자의 디자인 독해력 - 디자이너와의 협업을 위하여!
개발자의 디자인 독해력 - 디자이너와의 협업을 위하여!
2020.04.05