추천도서 50

가상 면접 사례로 배우는 대규모 시스템 설계 기초 2

책을 손에서 놓지는 않았었는데, 독서 후기를 정리한 지가 벌써 꽤 오래되었다. 다 읽은 책을 덮고 내용을 복기하며 글로 정리한다는 게 은근히 시간이 들어가는 작업이긴 하다. 현재 회사로 이직할 때 디자인 인터뷰라는 다소 생소한 테크 인터뷰 과정을 지원자 입장에서 거쳤고, 최근에는 같은 과정을 면접자 입장에서 진행하고 있다. 이와 관련된 기술 도서 하나를 개인적으로 추천하려고 한다. 코딩 테스트에는 많이들 익숙하지만, 디자인 인터뷰는 아직 낯설어 하는 분들이 많다. 이 책이 많은 도움이 될 것이라고 생각한다. 이 책은 2021년에 출간된 '가상 면접 사례로 배우는 대규모 시스템 설계 기초’ 도서에 이은 후속작으로 분량이 2배 정도 늘어난 것 같다. 전작은 시스템 아키텍처에 대한 가벼운 소개 정도로 추상화 ..

Dev 2024.03.16

고도를 기다리며

어느 날 내가 좋아하는 미드 '하우스 (House M.D)'를 다시 보다가 예전에는 그냥 그런가 보다 하고 넘겼던, 저 대사 '걔들보단 고도가 빨리 올걸요.'의 컨텍스트가 궁금해졌다. 뉘앙스는 '쟤들은 매우 늦을 것이다.'를 의미한다는 것을 굳이 '고도’가 누군지 몰라도 이해할 수는 있다. 하지만 그래서, '고도’는 누군데? 저 대사에 등장하는 '고도’가 궁금해서, '고도를 기다리며’를 찾아서 읽었다. 매우 얇지만, 금방 읽히지는 않았다. 일단, 소설이 아니다. '햄릿’과 같이 자주 접하지 않았던 아래와 같은 형식의 희곡이다. 침묵. 둘이 다 움직이지 않고 서 있다. 두 팔은 흔들거리고 고개를 푹 숙인 채 무릎에는 맥이 빠졌다. 에스트라공 (힘없이) 우린 꽁꽁 묶여 있는 게 아닐까? (사이) 안 그래? ..

Book Shelf 2023.10.29

진화적 아키텍처

감사하게도 한빛미디어 출판사에서 도서 리뷰 요청을 해주셨다. 책도 보내주셨지만, 이제 종이책은 보기 힘들어서 알라딘 이북으로 직접 구매해서 봤다. 그러므로, 이 글은 직접 구매한 도서를 읽고 간단히 정리하는 것으로 그동안의 도서 후기와 다르지 않다. 얼마 전에 봤던 '소프트웨어 아키텍처 The Hard Parts’ 저자의 신간이다. 책의 표지에는 '개정판'이라는 언급이 없는데, 이 책은 2017년에 출간된 'Building Evolutionary Architectures: SUPPORT CONSTANT CHANGE'의 개정판이다. 진화적 소프트웨어 아키텍처는 여러 차원에 걸쳐 유도된 변화와 점진적 변화를 지원한다. 이 책은 위와 같은 정의를 어떻게 실현할 수 있는지에 대한 세부적인 사항을 설명한다. 그중..

Dev 2023.09.24

자바 알고리즘 인터뷰 with 코틀린 - 102가지 알고리즘 문제 풀이로 완성하는 코딩 테스트

베타리더로 참여했던 '자바 알고리즘 인터뷰 with 코틀린 - 102가지 알고리즘 문제 풀이로 완성하는 코딩 테스트' 도서가 곧(2023년 9월 20일) 출간됩니다. 전작도 재밌게 봤었고, 이번 신작도 미리 읽어보면서 재밌었습니다. https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=324537416 자바 알고리즘 인터뷰 with 코틀린 코딩 테스트와 알고리즘 인터뷰를 준비하는 개발자들을 위한 최고의 책 『파이썬 알고리즘 인터뷰』가 자바와 코틀린 코드로 무장하고 한층 업그레이드되어 돌아왔다! 200여 가지가 넘는 풍부 www.aladin.co.kr

Dev 2023.09.14

소프트웨어 아키텍처 The Hard Parts

얼마 전에 발표자로 참여했던 카카오 테크밋 행사의 패널 토의에서 리팩터링 전과 후의 차이를 수치로 측정할 객관적인 지표에 대한 질문의 답변으로 설명한 내용 중에 발표에서 소개했던 '코드 복잡도'와 이 책에서 읽었던 피트니스 함수에 대해서 간단히 소개했었다. 이 책은 예전에 소개했던 '소프트웨어 아키텍처 101'(이하 101)의 후속으로 많은 내용이 101과 이어지며, 101은 저자가 2명이었는데, 이 후속작은 저자가 4명으로 늘었다. 그 영향인지 가상의 팀을 구성하고 대화체로 상황을 설명하는 방식이 추가되었지만, 책의 분위기는 크게 달라지지 않았다. 101에서 계속 강조하던 트레이드오프의 중요성도 계속 강조된다. 소프트웨어 아키텍처에서는 최고의 설계를 고집하지 마세요. 그 대신에 나쁜 것 중에서 제일 나..

Dev 2023.08.06

자바 최적화 (Optimizing Java)

자바 코드 레벨의 최적화와 JVM, GC 튜닝 정도의 설명이 있으려나 했는데, 하드웨어 레벨의 이야기와 바이트 코드와 핫스팟에 대한 세부적인 이야기들로 매우 재밌게 읽었다. 개발하면서 코드 구현의 중요도는 가능하면 가독성과 테스트 용이성이 좋은 코드로 구현하는 것에 두고 있다. 최적화에 대한 고려는 적합한 자료구조를 선정하는 것, 불필요한 블로킹을 하지 않는 것 외에는 코드 구현 레벨에서 딱히 최적화에 신경 쓴 적은 없었던 것 같다. 심지어 명시적인 함수를 명시적으로 인라인으로 선언해 본 지도 좀 되었다. 대부분의 병목은 코드 구현 레벨보다 외부 연동에서 발생한다. 꽤 오래전에 사서 필요한 부분만 보고는 잊고 있다가 올해 다 봤다. 오래전에 리디북스에서 구매했었기에 PDF 형식의 eBook에서 텍스트 복..

Dev 2023.05.13

쏙쏙 들어오는 함수형 코딩

읽은 순서랑 정리하는 순서를 맞추기가 생각보다 어렵다. 작년에 읽은 책을 이제야 정리하네. "책 제목을 꼭 이렇게 해야만 했을까?"라는 생각이 스치지만 좋은 책이다. 참고로, 이 책의 예제는 자바스크립트로 되어있는데, 리팩터링 2판과 최근에 나온 SICP 등의 특정 언어에 국한되는 내용이 아닌 책에서 예제를 구현하는 언어로 자바스크립트를 선택하고 있는데, 개발 환경을 별도로 구성할 필요도 없고 간단하게 예제를 돌려볼 수 있어서 좋다. ‘부수 효과를 없애라!’라는 슬로건 때문에 너무 단순하게 생각할 수도 있지만, 사실 함수형 프로그래밍은 부수 효과 구성에 관한 내용입니다. 부수 효과를 잘 관리해서 코드의 아무 곳에나 있지 않도록 하는 것입니다. 이 책의 주제이기도 합니다. 이 책은 보통 함수형 프로그래밍이..

Dev 2023.05.06

좋은 코드, 나쁜 코드 (Good Code, Bad Code)

2023년 카카오 신입 공채 기술 온보딩에서 코드 리뷰어로 활동할 때 참고하려고 구매했던 도서다. 나름 신간이면서 표지가 마음에 들기도 했고, 코드 품질은 언제나 관심이 있는 주제다. 읽어보니 책의 내용도 내용이지만, 적절한 컬러 사용과 보기 편한 편집으로 가독성도 매우 좋다. 이 책의 특이사항으로는 일단 예제 구성하는 데 사용한 언어에 있다. 보통 하나의 언어를 정해서 실행할 수 있는 예제를 구현하는 다른 책들과 달리 의사코드를 사용하여 예제를 구성하고 있다. 저자가 자기 생각을 전개하는 방식도 책의 제목과 순서는 배치 순서는 다르지만, 저자가 생각하기에 나쁜 코드와 좋은 코드를 대비시켜서 보여주고 왜 나쁘고 좋은지를 친절하게 설명해준다. 그리고, 모든 상황에 맞는 정답은 없다는 것을 계속 상기시켜준다..

Dev 2023.03.04

싯다르타

오랜만에 읽은 소설이 고전이네. 짧은 소설이고 생각보다 잘 읽힌다. 불교에 관심이 없거나, 다른 종교를 가지고 있더라고 큰 부담 없이 읽을 수 있을 거라고 생각하지만, 개인차가 큰 부분이니까. 어느 한 사람에게는 소중한 보배이자 지혜처럼 여겨지는 것이 어떤 다른 사람에게는 항상 바보 같은 소리로 들린다는 사실에 대해서도 나는 동의하고 있어. 작품 해설에 나온 내용으로 소개가 충분할 것 같다. 싯다르타는 아무리 각성자라 할지라도 깨달음의 순간에 체험한 것을 말이나 가르침을 통하여 전달할 수는 없다는 사실, 즉 삶과 인식 사이에 가로놓여 있는 균열을 인지한다. 열반은 ‘이성적으로 파악되는 것이 아니라 한순간의 심오한 통찰 속에서 체험될 수 있는 것’임을 깨달은 싯다르타는 편력의 길을 계속한다. https:/..

Book Shelf 2023.02.11

도메인 주도 설계

꽤 오래전에 읽은 책이 eBook으로 새로 출간되었다. 2011년에 번역서가 나왔었는데, 2023년에 eBook으로 출간되었다. 꽤 어렵게 읽었던 기억이 있어서 다시 읽어보려고 구매했다. 개정판인가 기대를 살짝 했었는데 개정판은 아니다. 출간된 지 10년이 훌쩍 넘은 기술 서적이지만 지금 읽어도 좋은 책이다. 도메인 주도 설계의 목표는 기술보다는 도메인에 대한 모델에 집중해 더 나은 소프트웨어를 만들어내는 것이다. 이 책의 목표를 간결하게 보여주는 멋진 말이다. 상호의존성은 모델과 설계를 이해하기 어렵게 만든다. 또한 테스트를 어렵게 만들고 유지보수성을 떨어뜨린다. 그리고 쉽게 축적되는 경향이 있다. ... 객체 개념을 구성하는 데 필수적이라는 사실이 증명되기 전까지는 모든 의존성을 검토해야 한다. 이러..

Dev 2023.02.05
반응형