자바 알고리즘 인터뷰 with 코틀린 - 102가지 알고리즘 문제 풀이로 완성하는 코딩 테스트, 2024년 세종도서 학술부문 추천도서
박상길 지음, 정진호 일러스트 / 책만 / 2023년 9월
평점 :
장바구니담기


『파이썬 알고리즘 인터뷰』로 유명한 지은이와 일러스트가 모여, 이번에는 『자바 알고리즘 인터뷰』로 돌아왔습니다. 

취업과 이직을 위해 코딩테스트를 준비하는 분들에게 기초를 튼튼하게 다질 수 있고, 상세한 문제 풀이가 가득한 『자바 알고리즘 인터뷰』를 추천합니다.

 

 

『자바 알고리즘 인터뷰』는 5부와 부록으로 구성되어 있습니다.

1부에서는 코딩 인터뷰와 코딩 테스트에 대한 소개와 준비하는 방법을 자세히 알려줍니다.

2부에서는 자바와 코틀린의 특징, 동작 원리의 차이점과 고급 문법에 대해 다루고, 빅오(Big-O), 문자열 처리를 살펴봅니다. 

3부에서는 자료구조 중 선형 자료구조인 배열부터 연결 리스트, 스택, 큐, 데크, 우선순위 큐, 해시 테이블을 살펴봅니다. 

4부에서는 자료구조 중 비선형 자료구조인 그래프와 트리, 힙, 트라이, 최단 경로 문제를 살펴봅니다.

5부에서는 알고리즘을 다룹니다. 정렬부터 시작하여 다이나믹 프로그래밍까지 살펴봅니다.

마지막 부록에서는 2022년도 카카오 개발자 신입 공채에 출제되었던 7개의 문제를 풀이합니다.

 

 

 

책에서 인상적이었던 문제로 리트코드에 나온 <두 수의 합>을 구하는 문제였습니다. 배열의 두 숫자를 더하는 간단한 문제였지만 무차별 대입부터 시작하여 다양한 방식으로 문제를 풀 수 있었고, 최적화를 통해 어떻게 문제를 풀어야 효율적, 비효율적인지 알 수 있었습니다. 

두 번째로 2022년 카카오 코딩 테스트 문제였던 <주차 요금 계산> 문제입니다. 코딩 테스트 문제중에서는 현실과 동떨어진 문제가 많았는데, 실생활에서 자주 마주칠 수 있는 문제를 풀게되어 반가웠습니다. 비즈니스 로직부터 차례대로 구현하면 되었는데, 정해진 시간 안으로 주차된 차한테는 기본 요금을 계산하고 그 이상의 경우 초과 요금을 계산하는 것이었습니다.  다만 머리 속에서 생각하는 것과 실제 코드로 구현하는 것은 상당한 차이가 있어서, 앞으로 꾸준히 연습을 해야겠다는 다짐을 했습니다.

 

 

 

책의 장점으로 첫째, 자바와 코틀린을 동시에 배울 수 있습니다. 자바의 실행 방식을 비롯하여 고급 문법들을 알려주고, 코틀린을 처음 접하는 독자들을 위해 자바와 코틀린의 차이점과 여러가지 팁을 소개합니다.

둘째, 102개의 문제(리트코드 문제 88개+프로그래머스 문제 7개+카카오 기출 문제 7개)를 풀어보면서 코딩 테스트 대비를 단단히 할 수 있습니다. 리트코드를 포함하여 국내 코딩 테스트 플랫폼으로 많이 사용하는 프로그래머스의 사용법과 함께 문제를 소개합니다. 마지막으로 2022년에 출제된 카카오 채용 문제를 풀면서 책에서 배운 모든 방법을 확인해봅니다. 

셋째, 친절한 일러스트와 설명으로 이해가 잘 되었습니다. 이 책의 저자와 일러스트가 같은 

『비전공자도 이해할 수 있는 AI 지식』(박상길 지음, 정진호 그림, 반니, 2022)을 읽었던 적이 있었는데, 글과 수식으로만 이해하기 힘든 AI를 이해하는 데 큰 도움을 주었던 기억이 납니다.  『자바 알고리즘 인터뷰』도 다양하면서도 친절한 일러스트로 이해를 돕고, 특히 코드의 주석까지 세세하게 설명해줘서 코드의 품질을 높이는 데에도 도움이 되었습니다.

 

『자바 알고리즘 인터뷰』은 저자의 정성이 느껴지는 책으로 자료구조와 알고리즘, 자바에서 놓칠 수 있는 부분을 꼼꼼하게 다뤄서 몰랐던 부분을 채울 수 있었습니다. 예를 들어, ‘비둘기 집’을 통해 해시 충돌을 설명하는 부분이나, 자바의 스택 선언 부분에서 Deque 자료형을 사용해야만 하는 이유를 보면서 즐거움과 세심한 부분까지 신경을 쓴 책이라는 것을 느꼈습니다.

 

 

 

책에서 가장 마음에 들었던 점은 비교 중심의 전개였습니다. 사고의 본질을 무엇인가를 연구한 책, 사고의 본질(더글러스 호프스태터, 에마뉘엘 상데 지음, 김태훈 번역, 최재천 감수, 아르떼, 2017)에서는 ‘인간은 모든 것을 비교하면서 이해한다’고 합니다. <자바 알고리즘 인터뷰>는 독자가 이해하기 쉽도록 자바와 코틀린의 비교부터 시작해서 자료구조와 알고리즘들 간의 비교, 문제에서 다양한 해결방법을 서로 비교했습니다. 저자와 함께 102의 문제를 풀어보면서, 독자들은 더 나은 선택지를 찾을 수 있는 문제 해결력을 기를 수 있을 것이라 생각합니다. 

이 책은 단순히 코딩 테스트만을 위한 공부가 아닌, 실무에 쓰일 수 있는 코드로 초급자뿐만 아니라 이미 현업에 있는 개발자에게도 유용하므로 앞으로 개발 인생에 좋은 길잡이가 될 것입니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
자바 알고리즘 인터뷰 with 코틀린 - 102가지 알고리즘 문제 풀이로 완성하는 코딩 테스트, 2024년 세종도서 학술부문 추천도서
박상길 지음, 정진호 일러스트 / 책만 / 2023년 9월
평점 :
장바구니담기


코딩 테스트의 길잡이가 되어줄 책으로, 코딩 인터뷰와 코딩 테스트를 준비하는 분들에게 추천합니다.

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
나의 첫 HTML & CSS 웹 디자인 - HTML & CSS 기초부터 반응형 웹, CSS 애니메이션, 멀티 페이지 사이트 제작까지
Capybara Designs.다케우치 나오토.다케우치 루미 지음, 문지현 옮김 / 제이펍 / 2023년 10월
평점 :
장바구니담기


『나의 첫 HTML & CSS 디자인』은 4가지 웹 사이트를 직접 제작해보며 HTML과 CSS의 기본을 익히는 책으로, 웹 사이트 제작을 전혀 모르는 사람을 위한 책입니다. 귀여운 카피바라와 함께 재밌게 웹 사이트를 제작해보세요.

 

 


 

이 책은 5개의 파트로 구성되어 있습니다.

첫번째 파트에서는 웹사이트의 구조를 이해하고 HTML의 기본과 작성하는 방법을 배웁니다.

두번째 파트에서는 ‘SNS 링크 모음 사이트’ 를 만들면서 CSS의 기초와 실전을 배우고 웹 사이트를 만드는 데 필요한 크롬 개발자 도구의 사용법을 알아봅니다.

세번째 파트에서는 2칼럼 페이지의 웹 사이트인 ‘카피조우 농장’의 블로그을 만들어 보면서, Flexbox 레이아웃과 문서구조를 이해합니다.

네번째 파트에서는 1칼럼 페이지의 웹 사이트인  ‘카피조우와 카피코의 웨딩 파티 초대장’을 만들어 보면서,  반응형 웹 디자인과 웹 폰트를 적용하는 법을 배웁니다.

마지막 파트에서는 멀티 페이지의 웹 사이트인 ‘카피조우 레스토랑’을 만들어 보면서, 웹 디자인 기초와 그리드 레이아웃을 배울 수 있습니다.

 

 



재미있었던 디자인으로는 2번째 파트에 나오는 ‘카피조우 농장’의 농장 경영 블로그였습니다. 전반적으로 자연을 느낄 수 있는 색을 사용하고 카피바라가 좋아하는 당근을 떠올리게 하는  주황색 배경을 사용했습니다. 모서리를 둥글게 하고, 가독성을 고려하여 문단의 길이를 조정하여 실제 사용해도 될 만큼 귀여운 블로그 디자인이었습니다.

 

 

 


 

 

 

 

이 책의 장점으로는 첫째, HTML과 CSS의 기본을 배울 수 있습니다. 웹 디자인 실무에 유용한 지식인 그리드, Flexbox, 그리드 레이아웃, 반응형 디자인을 다양한 그림과 도식으로 쉽게 이해할 수 있었습니다.

둘째, 단계별 실습으로 효과적인 학습이 가능했습니다. 한 번에 웹 사이트를 제작하는 것이 아닌, STEP별로 나눠 어떤 코드로 이런 효과가 나는지, 어느 부분에서 오류가 발생하는지 알 수 있어 효과적인 학습이 가능했습니다.

셋째, ‘이것만은 알아보자’로 배운 것을 확인하고, ‘실력을 확인해보자’로 실력을 검증하며 성장할 수 있었습니다. ‘여기에 주의!’와 ‘건너뛰어도 ok’로 심화된 내용을 설명하여 더 공부하고 싶은 사람들을 배려했습니다. 

넷째, 파비콘과 OGP(Open Graph Protocol)와 같이 놓치기 쉬운 세세한 설정 부분까지 배울 수 있었습니다.

 

 



다음으로 추천하는 도서로는 『웹 디자인 이렇게 하면 되나요?』(고바야시 마사유키 지음, 김모세 옮김, 제이펍, 2022)는 HTML과 CSS의 기초를 배우고 그 다음 단계를 배우는 책으로 93개나 되는 다양한 디자인을 구현하면서 전문가의 코드 작성법을 배울 수 있습니다.

 

 


 

이 책은 정말 쉬운 난이도+아기자기한 디자인+친절한 설명으로 웹사이트를 처음 만들고자 하는 사람에게 추천합니다. 17년의 경력을 가진 저자와 함께 빈 화면에서 하나씩 채워가며 웹 사이트를 만드는 지식을 습득할 수 있었습니다. 책을 읽은 후 방황하지 않게, 앞으로 공부해야 할 방향을 알려주는 부분이 저에게는 특히 인상적이었습니다. 무엇이 되겠다는 거창한 목표보다 자신이 재밌는 것을 찾아 탐색하고 즐기는 것이 가장 중요하다는 것을 알려준 소중한 책이었습니다.


해당 서평은 출판사로부터 책을 제공받아 주관적으로 작성되었습니다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
빅데이터 시대, 잘 먹고 잘 사는 현대인의 필수 교양 정보 문해력 - 정보 과부하에 지지 않는 5가지 힘을 당신에게
로스 도슨 지음, 박영민 옮김 / 프리렉 / 2023년 9월
평점 :
장바구니담기


필수 교양 정보 문해력은 정보 과잉 시대에 대처하는 현명한 힘을 기르는 책입니다. 현명한 힘을 기르는 구체적인 역량으로는 정보의 이유를 찾는 '목적', 정보를 서로 연관시키는 '프레이밍', 정보를 가려내는 '필터링', 주의력을 길러내는 '집중', 여러 요소를 융합하는 '종합'을 소개합니다. 

 

 


 

 

 

 

첫 번째 장은 '목적의 힘'으로 목적 중심의 정보 역량을 위한 6가지의 영역(정체성, 전문지식, 창업, 사회 공동체, 웰빙, 열정)을 제시합니다. 
두 번째 장은 '프레이밍'으로 맥락에 따라 정보를 파악할 수 있는 3가지의 지도(트리, 네트워크, 시스템)와 틀(글쓰기, 색인 카드, 연결 노트)을 알려줍니다.
세 번째 장은 '필터링의 힘'으로 최적의 정보 균형을 맞추기 위한 정보 포트폴리오(주류 언론, 사람들, 피드,  소셜 미디어) 설정과 정보 큐레이션의 중요성을 강조합니다. 
네 번째 장은 '집중의 힘'으로 집중력의 6가지 모드(탐지하기, 탐색하기, 동화하기, 파고들기, 탐험하기, 회복하기)를 살펴보고, 생산성과 성과를 높이기 위한 타임 박스와 같은 집중력 훈련의 방법에 대해 알아봅니다.
다섯 번째 장은 '종합의 힘'으로 다양한 정보를 종합할 수 있는 5가지 역량(아이디어에 개방성, 창의적 연결, 통합적 사고, 더 풍부한 멘탈 모델, 통찰력에 적합한 인지 상태)을 제시하고, 반복적인 의사결정을 통해 미래를 개선할 수 있는 방법에 대해 생각해 봅니다.
여섯 번째 장에는 여태까지 나온 5가지 역량에 대한 통합의 중요성과 더욱더 심해지는 정보 과부하 시대에 우리가 맞이할 2가지의 기회(인지 오프로딩, 인지적 진화)에 대해 설명합니다. 

 

 

 


 

이 책의 장점으로 각 장마다 자신의 역량을 점검할 수 있는 문제를 제시합니다. 문제는 간단한 설문이며, 빈칸을 채워나감에 따라 자신의 부족한 점을 무엇이고 정보 과부하를 극복할 수 있는 구체적인 방법을 제시합니다. 행동이나 생각을 되새기면서 올바른 정보 습관을 형성하는 데 필요한 점이 무엇일지 생각했습니다.
두 번째 장점으로 실천적인 프로그램을 제시합니다. 특히 6가지 집중 모드는 정보 과잉의 시대에 하루를 어떻게 보내야 될지 고민인 독자에게 큰 도움이 될 거라 생각합니다.
세 번째 장점으로 부록으로 제시하는 '정보 문해력 자료실'입니다. 더 심도 있는 내용이 궁금한 독자들을 위해 추천하는 도서와 정보 큐레이션을 위한 뉴스레터, 시각화 도구, 시간 활용 도구 등 독자들에게 필요한 앱을 제공해서 유용했습니다.

 

 


 

이 책은 '정보 개발 서적'으로, 정보를 통해 어떻게 성공할 수 있는 지를 가르치는 책입니다. 정보 문해력을 개발하고 정보 과부하에 빠지지 않기 위한 구체적인 실용적인 방법을 제시하면서 미래는 정보를 잘 다루는 사람들이 성공을 이루게 된다는 것을 깨달았습니다. 이 책은 무엇보다 실천을 강조합니다. 책에서 제시하는 다섯 가지 능력을 통해 정보 습관을 개선한다면, 우리는 우리가 가진 잠재력을 해방하고 정보 과부하 시대에 성공할 수 있을 것입니다.

 

해당 서평은 출판사로부터 책을 제공받아 주관적으로 작성했습니다.


댓글(0) 먼댓글(0) 좋아요(2)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
실전 스프링 부트 - 기본 개념부터 실무 베스트 프랙티스, 그리고 GraalVM, GraphQL, R소켓 등 최신 기술까지
솜나트 무시브 지음, 오명운 옮김 / 제이펍 / 2023년 9월
평점 :
장바구니담기


『실전 스프링 부트』은 2014년에 처음 출시하여, 오늘날 애플리케이션의 많은 부분을 차지하고 있는 스프링 부트를 실전(In Practice)이라는 말대로 기초부터 실전까지 직접 하나하나 실행하면서 배우는 책입니다.
처음부터 만들어가는 ‘CourseTracker’라는 애플리케이션에 기능을 추가하면서 실무 개발 실력을 기를 수 있습니다.

 

 


 

책은 총 5부와 10장으로 구성됩니다.
1부는 1장 스프링 부트의 주요 특징을 소개합니다.
2부는 2장부터 7장까지로, 스프링 부트 애플리케이션 개발에 필요한 다양한 개념과 기법을 알아봅니다. 스프링 부트의 공통 기능, 데이터베이스 연동, 스프링 부트 자동 구성, 스프링 시큐리티와 기본과 활용, 스프링 부트로 RESTful API를 개발하는 것을 다룹니다. 
3부는 8장은 스프링 부트를 사용해서 리액티브 애플리케이션을 만드는 방법을 알아봅니다.
스프링 웹 플럭스, R 소켓, 웹소켓을 사용합니다.
4부는 9장은 스프링 부트 애플리케이션을 다양하게 배포하는 법을 살펴봅니다.
5부는 10장과 부록으로 스프링 부트에서 코틀린과 스프링 네이티브(GraalVM), GraphQL을 사용하는 법을 알아봅니다. 부록에서는 스프링 이니셜라이저와 스프링 CLI, 스프링 MVC와 타임리프 템플릿 엔진을 다룹니다.

 

 


 

이 책의 장점으로는 그림과 표를 통해 필요한 개념을 알기 쉽게 설명했습니다. CSRF, 동기·비동기, 웹소켓, 사용자 인증 과정을 표현한 시퀀스 다이어그램 등 스프링 부트를 배우는 독자를 배려했습니다.
요구 사항과 해법이라는 실무 중심으로 진행했습니다. 실무 중심의 진행으로, 이제 막 스프링 부트를 배우는 초급자 뿐만 아니라 숙련자에게도 도움이 될 거라 생각합니다.
스프링 부트에 대한 최신 기술을 배울 수 있었습니다. 스프링 네이티브와 GraphQL이라는 다른 책에서 접해보지 못한 내용을 살펴볼 수 있어 좋았고, 특히 원서에 없는 내용인 프로메테우스와 그라파나를 활용해 대시보드를 만드는 부분이 인상적이었습니다. 
마지막으로 저자의 깃허브 링크 제공으로 편리했습니다. 각 장이 시작할 때마다 소스 코드를 제공하고, 완성본도 제공하여 막히는 부분이 있을 경우 비교하면서 해결할 수 있었습니다.

 

 

 


 

아쉬운 점으로는 Maven 기반으로, Gradle 기반이었으면 더 좋았을 것이라 생각합니다.
다음으로, 많은 사람들이 자주 사용하는 클라우드 서비스인 AWS에 배포하는 내용이면 좋았을 것 같습니다. 
가장 큰 아쉬운 점으로 어느 디렉터리에 코드를 생성, 추가하는지 알려 주지 않는 점이었습니다.
이 점은 저자가 제공하는 깃허브를 이용하거나, Manning 출판사의 홈페이지를 이용하면 어느 정도 해결이 가능했습니다.

 

『실전 스프링 부트』는 스프링 부트를 처음 접하는 초급자부터 읽을 수 있는 책이라 생각합니다. 
책의 설명이 자세하므로 흐름대로 따라가기만 하면 되었습니다.
하지만 스프링 부트 관련 프로젝트를 한 번이라도 한 경험이 있다면 수월할 것입니다.

 

『스프링 인 액션, 개정 5판』(크레이그 윌즈 지음, 심재철 옮김, 제이펍, 2020)은 『실전 스프링 부트』 과 비슷한 내용을 다루는 책으로, 스프링 부트의 여러 기능에 대한 이해를 도와줬던 책이었습니다.
『코딩 자율학습 스프링 부트3 자바 백엔드 개발 입문』(홍팍 지음, 길벗, 2023)은 최근에 읽었던 책으로, 초급자가 스프링 부트 프로젝트를 시작하는 데 도움이 될 책입니다. 스프링 부트로 게시판을 빠르고 쉽게 만들어 볼 수 있었습니다. 

 

 

 


 

이 책은 HashCorp Vault, Prometheus, Grafana, KeyCloak, GraalVM, GraphQL 등 스프링 부트에 적용할 수 있는 최신 기술을 다루면서 기초까지 다룬 균형을 잘 잡은 책이었습니다.
실무에 대한 내용을 다뤄서 복잡했지만 책의 흐름대로 차근차근 실습하면서 실력이 늘어난 것 같고, 애플리케이션에 기능을 추가함에 따라 뿌듯함을 느꼈습니다.
스프링 부트의 다양한 기능을 기초부터 고급까지 친절한 설명으로 초급자가 읽기에도 부담이 없었습니다. 시퀀스 다이어그램과 부록의 스프링 MVC 기반 타임리프 웹 애플리케이션 흐름이 도움이 많이 되었고, 두고두고 써먹을 것 같습니다.
저의 경우 최근에 스프링 부트 배포가 잘 안되어 고생을 했었는데, 다양한 방법으로 배포를 알려줘서 향후 배포를 할 때 도움이 될 것 같습니다.
이 책을 스프링 부트의 방대한 내용으로 인해 어디서부터 시작해야 될지 모르는 분, 스프링 부트에 대해 제대로 배워보고 싶은 분에게 추천합니다.

 

해당 서평은 출판사로부터 책을 제공받아 주관적으로 작성했습니다.



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