자바 코딩 인터뷰 완벽 가이드 - 자바 프로그래머의 취업을 위한 258가지 코딩 인터뷰 & 테스트
안겔 레오나르드 지음, 시진 옮김, 테자스위니 만다르 조그 감수 / 동양북스(동양문고) / 2022년 8월
평점 :
장바구니담기


개발자로 취업을 원하는 혹은 이직을 원하는 개발자들을 위한 모든 준비과정이 담긴 책이다.

자바 언어 기반의 모든 내용이 담겨있다.

얼마전 이직을 한 나도, 주변 지인 개발자들도 이직 준비를 하기 위해 틈틈이 많은 시간을 할애하고 있을 것이다.

가장 많은 준비를 필요로 하는 것은 기준에 따라 다르지만 코딩 테스트가 아닌가 싶다.

나도 이직을 준비하는 과정에서 코딩 테스트를 준비하는 시간을 퇴근 후 매일 할애를 하였었다.

코딩 테스트를 준비하면서 스스로가 판단하기에 실력도, 문제해결의 접근 방법도 처음에 비해 달라졌다.

코딩테스트를 통과한 이후에는 실무 면접을 준비하는 데에 시간을 많이 할애한다.

이미 경력이 있는 개발자의 경우, 지금까지 해왔던 업무에 대한 정리 뿐만 아니라 사용했던 기술에 대해 깊이 있는 준비가 필요하다.

신입 개발자를 지원한 분들의 경우에는 CS 관련 공부를 많이 한다.

이렇듯 취업/이직에 개발자들이 공부하고 준비하는 데에 많은 시간을 할애하고, 유용한 정보들은 구글링을 많이 한다.

이러한 준비과정에서의 모든 정보를 한 권의 책으로 준비할 수 있다면 시간적인 측면에서 이점이 있다.

이 책은 이러한 준비과정에 필요한 모든 정보를 담고 있을 뿐만 아니라 특히 여러 기술들을 깊이 있게 공부해볼 수 있다.

총 4개의 파트로 구성되어 있다.

첫번째는 면접을 준비하는 방법에 대한 내용이 담겨 있다.

이력서 작성방법과 면접 준비 과정 및 이러한 과정에서 흔히 하기 쉬운 실수들을 소개하며 준비과정에서 어떤 점을 유의해야하는지, 면접 과정에서 받을 수 있는 질문에 대해 어떻게 답변을 알 수 있다.

그리고 구글, 아마존 등의 유명한 IT 기업의 인터뷰를 통해 어떻게 면접을 준비하는 지에 대해 도움을 받을 수 있다.

만약 채용 과정에서 불합격이라는 결과를 받게 된다면 어떻게 마인드 컨트롤을 해야 하는지에 대해 자세히 쓰여져 있다.

두번째는 자바의 핵심 개념을 살펴본다.

자바를 주로 사용하는 개발자들에게도 유용한 챕터인데, 기술 면접 중 받을 수 있는 여러 유형의 질문 소개하고 이에 대한 내용을 자세하게 설명해주고 있다.

면접을 위한 준비에서도 이 내용을 알면 면접관들에게 좋은 인상을 남길 수 있지만 실무에서도 필히 알고 있어야 하는 내용들이기 때문에 이 챕터에서 다루는 질문 중 모르는 내용은 정리해두는 것도 도움이 될 것이다.

이 챕터는 개념 뿐만 아니라 코딩 테스트를 준비하는 데에도 많음 도움이 된다.

기출문제 형식으로 하나하나 다루기 때문에 비슷한 문제를 접하였을 때 어떤 접근 방식으로 풀 수 있는 지에 대한 접근법을 배워볼 수 있다.

세번째는 알고리즘과 자료구조에 관한 내용을 다룬다.

자료구조에 대해 개념을 정리해볼 수 있고, 코딩 테스트에서 접할 수 있는 다양한 유형의 문제들을 풀어볼 수 있어 자료구조에 대한 이해를 많이 높일 수 있다.

네번째는 동시성과 함수형 프로그래밍에 관핸 내용을 다룬다.

이 챕터의 내용은 신입 개발자들에게 다소 어려운 내용일 수 있다.

하지만 자바를 사용하려는, 사용하는 개발자라면 네번째에서 다루는 내용은 꼼꼼히 읽어보았으면 한다.

나의 경우도 이 네번째 챕터는 특히나 꼼꼼히 읽었는데 혼동했던 개념이나 정확히 알지 못했던 개념들을 정리해볼 수 있어서 많은 도움이 된 챕터이다.

처음 이 책을 받아보았을 때 상당한 두께로 많은 부담이 되었다.

하지만 필요한 내용부터 찾아 읽고, 모르는 내용을 알아가니 이 책의 장점을 다시한번 알 수 있었다.

자바 코딩 인터뷰를 준비하는 백과사전같은 이 책을 취업과 이직을 준비하는 개발자들에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지
최범균 지음 / 한빛미디어 / 2022년 3월
평점 :
장바구니담기


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


소프트웨어 개발 방법론에는 많이 알려진 TDD 뿐만 아니라 DDD, BDDD 등 다양하다.

이 중 이 책은 DDD에 대해서 처음 접하는 개발자들이 입문하는 데에 많은 도움을 받을 수 있는 책이다.

이 책은 총 11장으로 구성이 되어있다.

전반부에서는 도메인 모델을 구현할 때 알아야 하는 개념을 다룬다.

도메인 모델을 사용하면 여러 이해 당사자들이 동일한 도메인을 이해하고 관련 내용을 공유하는 데 도움이 된다.

이러한 도메인을 이해하기 위해서 알아야 하는 것들을 통해 모델링을 해본다.

그리고 표현, 응용, 도메인, 인프라스트럭처라는 네 가지 영역에 대해 학습하고, 이 네 가지 영역을 구성하는 데 많이 사용하는 계층 구조와 주요 구성요소에 대해 다룬다.

전반부 내용은 DDD를 이해하는 개념이 소개되기 때문에 놓치지 않고 꼼꼼히 읽어보는 것을 추천한다.

중반부와 후반부는 DDD를 이루는 패턴들을 소개한다.

특히 중/후반부의 내용은 새로 알게된 용어들과 개념들이 많이 포함되어 있다.

나 또한 새로 접한 용어들과 개념들이 상당수 포함되어 있었다.

책에서 설명하는 내용들을 소스 코드와 다이어그램을 함께 보면서 이해하는 것을 추천한다.

책을 처음부터 끝까지 읽어가다보면 실제로 어떻게 구현해 나가는 지 이해하게 된다.

또한 기존 우리가 설계하는 방식에서 발생하는 여러 문제점들을 DDD로 해결하는 방식을 상세하게 설명해주기 때문에 DDD의 이점을 이해해볼 수 있었다.

이번에 책을 읽을 때는 DDD를 입문하여 개념을 이해하는 목표로 읽었었다.

다음에 이 책을 한번 더 볼 생각인데 그때는 내용을 정리하면서 읽어볼 계획이다.

DDD가 무엇인가 정도만 알고 있었었는데, 입문자에게 맞는 맞춤 설명 덕분에 DDD에 한발짝 더 다가갈 수 있었다.

DDD가 무엇인지 모르는 분들이나, DDD에 대해 입문해보고 싶은 분들에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
좋은 코드, 나쁜 코드 - 프로그래머의 코드 품질 개선법, 2023년 세종도서 학술부문 추천도서
톰 롱 지음, 차건회 옮김 / 제이펍 / 2022년 5월
평점 :
장바구니담기


책 제목에서 알 수 있듯 어떻게 하면 좋은 코드를 작성할 수 있는지 배울 수 있다.

개발자라면 유명한 "클린코드" 책을 한번쯤 읽어보거나 들어보았을 것이다.

몇년 전 클린코드라는 책을 읽어본 뒤 코드 작성법에 대해 많이 배울 수 있었고, 내가 작성했던 코드와 비교해보는 등 여러 방면에서 나에게 많은 영향력을 주었던 책이다.

이 책도 "클린코드"처럼 올해 나에게 많은 영향력을 준 책이 되었다.

최근 코드를 작성하면서 내가 작성한 코드를 리팩토링하거나 작성한 코드에 대해 동료들에게 피드백을 받을 때, 아직도 좋은 코드를 작성하지 못하는 것 같은 생각이 들었다.

코드를 작성하면서 항상 하는 생각이지만 "어떻게 하면 좋은 코드를 작성할 수 있을까...?"라는 생각을 한다.

나 뿐만 아니라 개발자라면 하는 생각일 것이다.

어떤 코드가 그럼 좋은 코드인지 생각해보면 에러가 없는 코드, 가독성이 좋은 코드, 테스트하는 데에 용이한 코드, 재사용이 가능한 코드, 모듈화가 잘 된 코드 등 각자 마다의 기준이 있을 것이다.

이 책은 이러한 기준들을 여러 도메인에서 사용할 예시 코드를 통해서 설명한다.

이론, 실전, 단위 테스트라는 대주제에서 우리가 한번쯤 고민했던 좋은 코드의 기준에 대한 지침을 소개한다.

이론편은 코드에 대한 개발자의 접근 방식을 통해 코드 품질의 핵심 요소에 대한 소개와 코드에 대한 이해, 재사용, 테스트 하기 쉽게 추상화하는 방법, 내가 작성한 코드를 여러 개발자들이 사용하기 쉽게 작성하는 방법에 대한 가이드, 코드에서 발생한 오류를 어떻게 확인하고 오류 사항을 어떻게 대처하는 지에 대한 내용을 다룬다.

이론편에서 다룬 코드 품질의 핵심 6가지 요소를 소개한다.

  1. 코드는 읽기 쉬워야 한다.

  2. 코드는 예측 가능해야 한다.

  3. 코드를 오용하기 어렵게 만들라.

  4. 코드를 모듈화하라.

  5. 코드를 재사용 가능하고 일반화할 수 있게 작성하라.

  6. 테스트가 용이한 코드를 작성하고 제대로 테스트하라.

실전편은 이론편에서 다룬 코드 품질의 핵심 요소에 대한 실제 예시 코드를 사용한다.

내가 작성한 코드를 여러 개발자들이 이해하기 쉽도록 가독성이 높은 코드와 예측 가능한 코드를 작성하여 다른 개발자들이 코드를 잘못 해석하지 않도록 하는 방법, 코드를 잘못 사용하지 못하게 하여 버그를 발생할 수 있는 가능성을 줄이는 방법, 코드의 모듈화, 재사용화 하는 방법을 다룬다.

특별히 나는 실전편은 이 책을 읽는 분들이라면 꼼꼼하게 읽었으면 한다.

예시 코드를 보면서 내가 이러한 잘못된 코드를 작성하고 있지 않았나라는 생각도 해볼 수 있었다.

단위 테스트편은 단위 테스트 코드를 작성하기 위한 가이드를 설명한다.

단위 테스트 코드를 작성할 때의 고려해야 하는 여러 사항들을 설명하고, 유지보수하기 쉬운 단위 테스트 코드를 작성하기 위해 적용할 수 있는 사례와 기술들을 소개한다.

단위 테스트 코드를 작성해본 적이 있는 분들이나 아직 경험이 없는 분들 모두에게 도움이 될 내용들이다.

단위 테스트편에서 다룬 바람직한 단위 테스트의 주요 특징을 소개한다.

  1. 문제가 생긴 코드의 정확한 탐지

  2. 구현 세부 정보에 구애받지 않음

  3. 실패가 잘 설명됨

  4. 이해하기 쉬운 테스트 코드

  5. 쉽고 빠르게 실행

부록편도 좋은 코드를 작성하기 위한 도움이 될 내용들이 많다.

특히 널 안성과 옵셔널의 내용과 필더 패턴 내용이다.

널 안정성을 활용할 때의 이점을 통해 코드에서 발생하는 오류를 줄이고, 다른 기능을 사용하여 가독성을 높이면서 더 간결한 코드를 작성할 수 있도록 해준다.

옵셔널의 경우에는 널 처리를 제대로 하지 않은 코드의 문제에서 코드의 수가 길어지더라도 에러를 줄이기 위한 효과가 있다는 점에서 옵셔널 사용의 이점을 설명한다.

빌더 패턴은 사용 예를 통해서 좀 더 완성도 있게 구현한 코드를 배울 수 있다.

개발자에게 있어서 좋은 코드를 작성하는 것은 숙명이다.

어떻게 하면 좋은 코드, 완성도 있는 코드를 작성할 수 있을 까라는 고민을 하는 모든 개발자분들께, 그리고 항상 좋은 코드를 작성하기 위해 노력하는 개발자분들에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
이펙티브 엔지니어 - 개발자의 인생을 바꾸는 효율성의 법칙 길벗 개발자 자기계발서
에드먼드 라우 지음, 이미령 옮김 / 길벗 / 2022년 6월
평점 :
장바구니담기


개발자로 일을 하면서 누구나 효율적으로 시간을 관리하여 이전보다 높은 포퍼먼스를 보여주고자 할 것이다.

나또한 이런 고민을 많이 해왔었고, 지금도 하고 있다.

주변 여러 선/후배/동료 개발자분들을 보면 각자 그간의 경험을 토대로 어떻게 시간을 할애하면서, 맡은 업무에 대한 높은 성과를 얻으려고 한다.

이러한 경험을 토대로 이전보다 높은 성과를 이루기도 하지만, 때에 따라서는 기대에 미치지 못할 경우도 있다.

이 책은 시행착오를 경험하지 않고도 이전보다 더 높은 성과를 이루고, 성장한 개발자가 될 수 있을까라는 질문에 답을 찾아갈 수 있도록 도와준다.


구글, 페이스북, 인스타그램 등의 대규모 서비스를 하는 기업에서 일하는 여러 개발자들의 사례와 엔지니어링 원칙을 통해 이 책에서 말하는 "이펙티브 엔지니어"가 되기 위한 방법을 소개한다.

가장 인상깊에 보았던 내용은 아무래도 1부와 2부의 내용들이 아닌가 싶다.

개발자로서 성장하고, 시간을 잘 활용하기 위한 마인드 컨트롤을 하고, 어떤 부분에 집중해야 하는 지에 대해 소개한다.

특히 2부에서는 실제 업무를 하면서 완료 기한까지 각 단계별로 현재 상황을 체크해보면서 어떤 부분을 보완해야 할지도 배울 수 있다.

이 내용은 그간의 업무를 처리하는 과정을 비교해보며 보완해야 할 부분들을 객관화 시켜볼 수 있다는 점이 나에게 많은 도움이 되었고, 실제 업무를 함에 있어서 완성도 있고, 효율적으로 일하는 방법을 배울 수 있었다.


이 책에서 소개하는 내용들은 개인 뿐만 아닌 조직에 있어서도 많은 영향을 줄 수 있다.

그렇기 때문에 이 책에서 소개되는 구글, 페이스북, 인스타그램의 엔지니어링 원칙을 현재 내가 속해있는 조직의 모습과 연결시켜볼 수 있다.


나의 경우도 요즘 시간이 부족하여 올초에 계획했던 TODO들을 지키지 못하고 있는 것들이 있다.

'평일에는 시간이 부족해서...'라는 말로 미루었던 것들이 있었는데, 이 책을 통해 나의 모습을 객관화해볼 수 있었다.

현재 나에게 어떤 부분이 많은 시간을 소모하는지 살펴보며 시간관리 뿐만 아니라 너무 많은 에너지가 소모되지 않도록 워라벨을 지키며 업무와 개인시간을 잘 컨트롤 해봐야 겠다.

이 책이 완벽한 답은 아니지만 요즘 에너지를 많이 소모하고 있는 시점에 터닝포인트가 되었다.


​스스로를 객관화해보고 싶은 모든 개발자분들이 한번쯤 꼭 읽어보았으면 하는 책이다.


누구에게나 가장 한정적인 자원인 시간을 가장 큰 효과를 낼 수 잇는 곳,

즉 레버리지 포인트에 쓰는 영리함을 발휘해야만

어떤 회사에서나 환영하는 '이펙티브 엔지니어'가 될 수 있다는 것이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
핸즈온 데이터 시각화 - 효과적인 데이터 시각화 전략부터 20가지 시각화 도구 사용법까지
잭 도허티.일리야 일라얀코우 지음, 김태헌 옮김 / 한빛미디어 / 2022년 7월
평점 :
장바구니담기




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

이 책은 무료로 사용할 수 있는 웹에서 제공하는 도구를 사용하여 데이터를 시각화하는 방법을 배울 수 있는 책이다.

시간이 갈수록 데이터는 점점 방대해진다.

이러한 데이터를 시각화할 수 있는 방법과 결과물은 여러 자료로 사용된다.

데이터를 다루는 방법을 잘 알고 활용한다면 데이터를 이해하고 분석하는데 많은 도움이 될 수 있다.


이 책은 데이터를 다루고 시각화하는 방법에 대해 초보자도 단계별로 익힐 수 있도록 도와준다.

다양한 툴들 중 각 툴에 대한 특징을 설명하여 어떤 툴을 선택하는 것이 적합한지 툴을 선택하는 데에 있어서 여러 정보들을 제공해준다.

데이터를 시각화하기 전 고려해야 하는 여러 요소와 어떻게 필요한 데이터를 수집하고 찾을 수 있는지, 데이터를 사용하여 활용도가 높은 차트를 만드는 방법 등 완성도 있고, 의미있는 데이터를 보여주기 위한 방법에 대해 익힐 수 있다.

또한 많이 사용해본 스프레드 시트를 시작으로 각 예시를 통해서 이러한 툴로 어떻게 데이터를 시각화하는지 따라해볼 수 있다.



전반적으로 책의 내용은 어렵지 않아 엑셀을 활용하고 스프레드 시트를 사용해본 분들이라면 이 책의 내용이 어렵지 않을 것이다.

책의 내용과 예제를 단계별로 따라해본다면 데이터를 시각화하는 방법에 능숙해지지 않을까 싶다.


​이 책은 개발자에게 국한된 책이 아닌 여러 독자들에게 데이터를 시각화할 수 있는 방법을 알려준다.

따라서 데이터를 활용하는 독자들이라면 많은 도움이 될 책이다.​


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo