자바 코딩의 기술

Mr.SQL·2021년 1월 7일
0

도서리뷰

목록 보기
1/1

기: 나는 왜 도서 리뷰어에 지원을 했는가.

나는 기본적으로 책 읽는 것을 꽤 좋아하는 편이다.
읽고 싶은 책들 들고가서 카페로 간 후, 커피를 마시면서 적절한 시간을 보내곤 한다.
아무튼, 시간이 없다는 핑계로 도서를 차일피일 미루다가 길벗 도서 리뷰어 공고를 봤다.
'괜찮은 책 있으면, 핑계를 뒤로하고 읽어봐야겠다'
라는 마음 하나로 길벗 14차 개발자 도서 리뷰어에 지원했고...합격했다!

승: 왜 이 책을 선택했는가

다음은 당시 리뷰어 모집시 리뷰 대상 도서들이다.


다양한 도서들, 흥미있어보이는 도서들이 많아서 기대가 많았다.
특히 파이썬이나 수학 등에 관련된 도서들이 다수 인 것을 보면, 인공지능 분야가 정말 떠오르고 있구나라는 생각도 든다.
...물론 나는 자바민국에 사는 학생A답게, 자바 관련 도서를 선택할 목적이었다.
내가 고른 도서는
'자바 코딩의 기술'
이다.
선택한 이유는 다음과 같다.
첫 째, 코드를 예쁘게 쓰는 방법을 보고 싶기 때문이다.
둘 째, 무턱대고 이펙티브 자바를 보기에는 뇌가 터질 것 같기 때문이다.
실제로 전에 이펙티브 자바 보다가 2장을 다 읽는 순간 뇌의 회로가 다 탔다.
그리고 그 날의 기억도 증발
셋 째, 자바민국에 사는 학생이기에 자바에 대한 기본 소양을 쌓고 싶기 때문이다.

전: 책을 읽고 나서 변한 부분은 무엇인가

먼저 책의 구성을 소개한다.
총 9개의 챕터로 구성됐으며, 각 챕터당 약 10개 정도의 소챕터가 있다.
8챕터까지는 코드를 더 가독성있게 설명하는 방법 및 예시들이 설명됐다.
9장부터는 빌드 후 통합 등 개발과 생산성에 관련한 내용들을 간단히 언급하고 있다.


또한, 개선 전의 코드, 개선 후의 코드 둘 모두를 보여줌으로써 독자가 저자의 의도를 더 잘 이해할 수 있게 돕는 구성이다.
기승전결, 그리고 보충하는 내용과 연관된 챕터까지 동시에 작성됐는데 이 모든 구성과 짜임새가 가독성에 신경 많이 썼다는 인상을 준다. 즉, 번역도 잘됐다는 인상을 많이 받았다.

이 책을 읽고 나서 변한 점은 다음과 같다.
첫 째, 코드를 조금 더 이쁘게 쓰려고 노력한다.
이 책의 4.3, 4.4, 4.5 챕터들을 한 마디로 요약하면 다음과 같다.
'변수를 작명할 때는 의미가 있게, 축약하지 말자'
실제로 공감을 많이했다. 작년 하반기 채용시장의 코딩테스트 때, 변수명 짓는 시간 단축하다고 대충짓거나 한 글자로 짓곤했다.
결과는? 망했다.
제출 직전 검토할 때 변수 이름만 봤을 때 무엇을 하는지 파악이 어려워서 시간 소요가 컸기 때문이다. 때문에 4챕터를 보면서 다시는 변수 이름을 대충 짓지 않겠다고 다짐하고 있다...그것이 설령 단순 연습코드라고 하더라도

둘 째, 코드가 길어지더라도 의미가 있고 보기 좋은 코드가 되게 지향하게 됐다.
그 동안 나는 '코드가 짧아야 가독성이 좋은 것이다'라고 생각했다.
그래서 조건절에 따른 로직이 한 줄 짜리라면, { 을 작성하지 않곤 했다.
하지만, 이 책의 저자는 그것에 대해 반대한다. 정확히 말하자면, 코드가 길어지더라도 가독성을 더 우선시한다는 것이다.
이를 체감할 수 있는 부분 중 하나가 '1.7 항상 괄호 사용하기'이다.
저자는 { 처리가 안 된 코드를 { 를 명시적으로 작성해주면서 코드가 길어지더라도 { 등을 사용해야 한다고 한다. 동시에, 더 나은 코드란 적은 코드가 아닌 읽기 쉬운 코드임을 계속 강조한다.

셋 째, 불 매개변수의 사용 신중화이다.
그 동안 나는 불 매개변수를 메서드 등에 별 생각없이 쓰곤했는데 불 매개변수는 좀 신중하게 쓰기로했다.
저자는 다음과 같이 말한다.
7.1을 보면, 불 매개변수가 들어온다면 메서드는 자연스럽게 두 가지의 처리에 대한 코드를 작성해야 한다.
그러면 이는 '메서드는 1개의 기능을 수행한다'라는 지침에 위배된다. 즉 가독성의 저하를 불러온다.
또한, 호출 할 때 그 불 매개변수가 실제로 무엇을 행하는지 단번에 파악하기 어려워진다.
저자가 말하는 최악의 습관들을 자연스레 지닌 나

저자는 매개변수로 불을 받는 메서드를 분할하여 수정하면서 가독성을 높이는 방법을 보여준다.
이를 통해 호출 할 때 불을 사용할 필요도 없어지고 모호성이 낮아진 코드의 작성법을 제시하고 있다.

결: 앞으로도 이 책을 계속 읽을 것인가

그렇다.
이유는 다음과 같다.

첫 째, 당장 적용 가능한 실용적 사례들이 많다. 위에서 소개한 내용 외에도 java docs 활용에 대한 방법론등 문서화와 주석에 대한 좋은 방법론도 많이 소개됐다.
둘 째, 개발을 하면서 계속 참고할 수밖에 없는 사례들이 많기 때문이다. 8장의 람다, 함수형, 스트림에 대한 내용 등 자바로 개발을 한다면 마주치는 것들에도 저자는 다양한 사례들을 구성했다.
셋 째, 올바른 테스트 사례와 방법론들을 참고하기 위해서다. 6장의 경우는 전반적으로 테스트에 대한 방법들을 다루는데, 이는 개발을 진행하며 '무엇을 어떻게 테스트를 수행할 것인가'에 대한 지침을 줄만한 것들로 구성됐다.

두고두고 책장에 꽂고, 필요할 때마다, 틈날 때마다 읽을 가치가 충분히 있다. 생각보다 얇고 가볍지만, 무거운 내용들. 그러나 그것을 유쾌하게 풀어낸 저자와 길벗 출판사.

profile
Mr.SQL velog에 오신것을 환영합니다.

0개의 댓글