기술서 22

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

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

Dev 2024.03.16

진화적 아키텍처

감사하게도 한빛미디어 출판사에서 도서 리뷰 요청을 해주셨다. 책도 보내주셨지만, 이제 종이책은 보기 힘들어서 알라딘 이북으로 직접 구매해서 봤다. 그러므로, 이 글은 직접 구매한 도서를 읽고 간단히 정리하는 것으로 그동안의 도서 후기와 다르지 않다. 얼마 전에 봤던 '소프트웨어 아키텍처 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

도메인 주도 설계

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

Dev 2023.02.05

도메인 주도 개발 시작하기

개인적으로 새로운 주제에 대한 책을 보는 것도 좋아하지만, 한번 봤던 주제, 이미 사용하면서 조금은 알고 있다고 생각하는 주제에 대한 책도 다시 찾아서 읽어보는 것을 좋아하는데, 다시 보면 예전에 볼 때는 놓쳤던 것, 이해를 못하고 넘어갔던 것, 시간이 지나면서 잊었던 것들을 재확인할 수 있다. 오래전에 '도메인 주도 설계'를 봤을 때는 어렵게 읽은 기억이 있는데, 이 책은 주요 내용만 추려서 더 쉽게 풀어 쓰였고, 예제 코드들도 있어서 편하게 읽었다. 다만, 중반부의 리포지터리 구현 쪽 예제가 스프링과 JPA에 치중된 점은 아쉽지만, 이 점이 매우 마음에 드는 분도 있을 것이다. 10년쯤 전에 참여했던 프로젝트의 설계에 도메인과 I/O가 매우 잘 분리되어 있었고, 덕분에 많은 공부가 되었다. 하지만, ..

Dev 2023.01.09

소프트웨어 아키텍처 101

병특시절에 개발했던 3티어 구조의 서버부터 세월을 그대로 맞으면서 겪었던 아키텍처들이 책의 파트 2에 하나씩 소개되어 있다. 코드는 거의 없고, 각 아키텍처가 등장한 배경과 용도 그리고 장단점을 거시적으로 잘 설명해준다. 깊이 내려가지는 않는다 싶었는데, 아직 읽어보지 않아서 모르겠지만, 최근에 출간된 '소프트웨어 아키텍처 The Hard Parts'라고 심화편에서 더 깊이 설명하는가 보다. 책의 후반부에도 재미난 내용이 많다. 덕분에, '체크! 체크리스트' 책을 읽어보고 싶어졌다. 아래에서 강조하는 것처럼, 트레이드 오프에 대한 설명이 많이 나온다. 은탄환은 없다. 아키텍처 특성을 선택하는 문제에 있어서 정답은 없으며 오직 (마크가 한 유명한 말처럼) 잘못된 선택만 있을 뿐이라는 점을 명심하세요.아키텍..

Dev 2022.11.20
반응형