처음 처음 | 이전 이전 | 1 | 2 | 3 |다음 다음 | 마지막 마지막
[전자책] 자바 코드의 품질을 높이는 100가지 방법 - 자바 베테랑이 전하는 실전 오류 패턴과 해법
타기르 발레예프 / 한빛미디어 / 2025년 3월
평점 :
장바구니담기


한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다

 

이 책은 자바 개발자가 흔히 저지르는 실수 100가지를 분석하고, 구체적인 사례와 함께 해결 방법을 제시한다는 점에서 인상깊었습니다. 

 

챕터1에서는 코드 품질을 높이고 실수를 방지하기 위해 개발 문화와 도구를 어떻게 활용해야 하는지 설명합니다. 코드를 작성하는 것은 결국 사람이기 때문에 모든 실수를 사전에 방지하는 것은 현실적으로 불가능합니다. 하지만 코드 리뷰, 페어 프로그래밍, 코드 스타일, 정적 분석 도구, 테스트 자동화 등을 활용하면 실수를 줄이고 코드 품질을 유지하는데 도움이 된다고 설명합니다.

 

개인적으로 책을 읽으며 뮤테이션 커버리지, 동적 분석 등 접해보지 않았던 새로운 도구를 알게 된 점이 유익했습니다. 또한, 도구라는게 모든 문제를 해결해주지 않기 때문에 이를 간과해서는 안된다는 점을 저자는 강조합니다. 이를 통해 기술과 도구는 비즈니스 문제 해결을 위한 수단이어야 하며, 그 자체가 목적이 되어서는 안 된다는 점을 다시 생각해 볼 수 있었습니다.

 

챕터2. 표현식부터 각 주제별로 "실수 설명 → 해결 방법 → 사례 → 정리" 구조로 설명합니다. 이때 연산자 우선순위, 음수, 언더플로, 오버플로, 비트연산, 유니코드 등과 관련된 실수를 다룹니다. 경험이 부족한 개발자라면 이해하기 어려울 수도 있지만, 컴퓨터 공학 지식과 함께 실수를 찾아낼 수 있는 능력을 갖춘다면 개발자로서의 경쟁력을 강화할 수 있을 거라는 배움을 얻을 수 있었습니다. 챕터3. 프로그램 구조는 가벼운 Java 문법적인 내용이 많았는데 코딩 테스트 연습을 할 때 한번씩 했던 실수라서 쉽게 공감할 수 있었습니다.

 

챕터5. 일반적인 예외 ~ 챕터 10. 유닛 테스트에서는 구현 경험이 있다면 한번씩 접해 볼 수 있는 실수라 공감하기 쉬웠고 새로운 내용도 알 수 있어 유익했습니다. 쉽게 접할 수 있는 NullPointException을 줄이기 위한 주요 원칙으로 null 자체를 사용하지 않거나, Optional 사용, 어노테이션 명시, 정적 도구 분석 도구 활용 등 실무에서 적용할 수 있는 유용한 가이드를 제시했습니다. 또한 잠재적으로 ClassCastException 야기할 수 있는 메서드에 대해 리팩터링 하기 위해 자바 9부터 추가된 @Deprecated(forRemoval = true) 활용하여 클라이언트 코드가 마이그레이션 할 수 있도록 유도하는 예시가 인상 깊었습니다.

 

“자바 코드의 품질을 높이는 100가지 방법”을 읽으면서 모르는 내용도 많았지만 앞으로 개발자로서 나아가야 할 방향을 또하나 찾을 수 있었던 거 같습니다. OOP, 테스트 자동화, 자료구조와 알고리즘을 모르는 초보자에게 부담되는 내용일지도 모르지만, 자바 언어를 사용하는 이에게 실수 방지 가이드로 충분히 추천할 만한 도서였습니다.

 

 

 


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
그로킹 알고리즘 - 그림으로 개념을 이해하는
아디티야 바르가바 지음, 김도형 옮김 / 한빛미디어 / 2025년 1월
평점 :
장바구니담기


한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.


그로킹 알고리즘(개정판)은 단순한 이론에 대한 설명이 아니라 직관적으로 체득할 수 있도록 돕는 책입니다. 이 책은 복잡한 개념을 쉽게 풀어내며, 특히 알고리즘을 처음 접하거나 코딩 테스트를 준비하는 사람들에게 좋은 가이드가 됩니다. 



장점 1️⃣ 체계적인 구성 

시간 복잡도빅오 표기법과 같은 기본적인 개념부터 시작해 점진적으로 난이도를 높이는 방식으로 구성되어 있습니다. 그래서 초보자도 부담 없이 따라가실 수 있고, 자연스럽게 자료구조와 알고리즘에 대한 이해도를 쌓으실 수 있습니다. 또한, 챕터의 마지막에는 핵심 정리와 연습문제가 포함되어 있어 배운 내용을 복습할 수 있도록 도와줍니다.


장점 2️⃣ 코딩 테스트에서 자주 나오는 유형을 다룹니다 

이진 탐색, 재귀, 정렬, 그래프 탐색 등 실제 코딩 테스트에서 자주 등장하는 알고리즘을 다루고 있어 실용성이 높습니다. 저는 특히 재귀에 대한 이해도를 쌓고 싶어서 이 책을 읽었는데, 완전탐색, 백트래킹, 동적 프로그래밍, 깊이 우선 탐색(DFS) 등 여러 중요한 알고리즘의 기초가 되기 때문에 많은 도움이 되었습니다. (단, 파이썬으로된 간단한 예제 코드를 다루므로 기본 문법을 이해하고 읽으시는 것을 권장합니다)


장점 3️⃣ 예제와 그림을 통한 직관적 설명  

텍스트만 있는 이론서와 달리, 이 책은 현실적인 예시와 그림과 함께 개념을 설명하기 때문에 시각적으로 이해하기 쉽습니다. 또한, 알고리즘이 어떻게 동작하는지 흐름을 따라가다 보면 자연스럽게 개념이 정리됩니다.


이 책을 읽는다고 해서 바로 코딩 테스트 문제를 풀 수 있는 것은 아닙니다. 

즉, 알고리즘을 이해하는 데 초점이 맞춰져 있어 실전 문제 풀이는 따로 연습이 필요합니다. 하지만, 개념을 탄탄히 다지고 새로운 인사이트를 얻는데는 큰 도움이 됩니다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
단위 테스트의 기술 - 견고하고 신뢰할 수 있는 코드를 만드는 단위 테스트 작성법
로이 오셔로브.블라디미르 코리코프 지음, 양문규 옮김 / 길벗 / 2024년 12월
평점 :
장바구니담기


5장까지 읽으며 책의 전반적인 구성과 흐름이 매우 탄탄하다는 인상을 받았습니다. 1부에서는 좋은 테스트의 정의와 기본 용어를 설명하며, 환경 구성과 간단한 테스트 예제를 다룹니다. 2부에서는 테스트하기 어려운 코드를 DI로 개선하는 방법을 소개하고, 직접 구현했던 가짜 객체를 격리 프레임워크(Jest, Substitute)로 자동화하는 과정을 설명합니다. 


좋은 단위 테스트를 작성하는 방법에 초점을 맞추고 있으며, 저자의 경험과 생각, 습관을 자연스럽게 공유하고 있어 흥미를 유발하며 몰입할 수 있었습니다.


평소 프론트엔드 테스트에 대해서도 궁금했었는데, 결국 테스트 도구마다 표현 방식과 지원 범위는 다르더라도 목적과 행위는 본질적으로 같다는 점을 새롭게 깨달았습니다. 5장까지만 읽고도 많은 인사이트를 얻었는데, 완독하면 테스트에 대한 시야와 습관이 한층 더 깊어질 것 같아 기대됩니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
처음 처음 | 이전 이전 | 1 | 2 | 3 |다음 다음 | 마지막 마지막