2024 Retrospec

Book Log

  • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 1
    • 다양한 시스템을 대상으로 (푸시 시스템, 유튜브 등) 면접 상황을 가정하여 기초 논의부터 설계 완성까지 해보는 방식으로 챕터가 구성되어 있다.
    • 다양한 시스템에 대한 설계 방식과 구성을 볼 수 있고, 특히 시스템 설계에 대한 논의 과정의 모범 답안을 보는것 같아 좋았다.
    • 특시 캐시 시스템, Graph Database, WebSocker 서버 관련 내용은 빠른 시일 내에 공부 해봐야 겠다는 생각을 했다.
  • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2
    • 이정도 내용이 기초라는 것이 놀라웠다.
    • 1편과 동일하게 시스템 면접 상황을 가정하여 매 챕터를 진행하고 있다.
    • 매 챕터에 제시되는 과제의 수준이 1편보다 더 어렵고 대규모 이다.
    • 구글 맵 처럼 내가 설계할 일이 있을까 싶은 챕터도 있었지만 (공부가 되지 않았다는 이야기는 아님) 실질적으로 도움이 되는 챕터(분산 메시징 큐 같은) 도 있었다.
    • 처음부터 정답을 제시하는 것이 아닌 대략적인 면접자의 요구사항 분석과 초기 설계, 구체화된 설계, 면접자의 피드백으로 이루어진 빌드업 과정이 존재하며 이것이 큰 도움이 되었다.
  • 지속적인 통합
    • 오랫만에 다시 꺼내 읽어본다. 재독으로 더 깊이 이해하고 동료들과 나누기 위함이다.
    • 책에서 제시한 내용 중 현대에 활발하게 실천되고 있는 내용들이 많다. 20년 전 이런 내용이 제시 되었는데 이렇게 쓰여지고 있다는 사실이 흥미롭다.
    • 지속적인 통합과 자동화가 제품에 주는 가치는 이루 말할 수 없다. 혹 지속적인 통합을 도입하지 않은 조직이 있다면 추천하고 싶다.
  • 테스트 주도 개발
    • TDD 방법론을 이론서 처럼 제시하기 보다 실제 테스트를 작성하고 로직을 구현하면서 발전시켜 본다.
    • 저자가 제시한 방법론 중 내가 하고 있는 방법은 xUnit Test 라는 방법론과 유사함을 알 수 있었다.
    • 코드의 중복을 찾아내고 개선하는 과정을 테스트코드를 통해 집요하게 이터레이션을 돌리며 발전시키는 모습이 존경스러웠다.
  • 개발자를 위한 레디스
    • Redis 를 좀더 깊게 알기위해 책을 구입했다.
    • Django celery 와의 연동을 위한 AMQP 로만 사용해 왔다가 Redis 의 다양한 기능을 알게되어 무기가 한개 더 생긴 느낌이다.
    • Cache, Pub/Sub 은 물론 Event Streaming 으로도 현업에서 사용해보길 기대하고 있다.
    • 언제 해볼 수 있을지 모르겠지만 Invalidation 을 비롯한 고급 기능과 클러스터 구성을 통한 스케일링 등 재독이 수회 필요하다.
  • 데이터 중심 애플리케이션 설계
    • 세상에는 다양한 데이터를 다루는 방법이 존재한다는 것을 알게 된다.
    • 다양한 데이터베이스에 대한 역사와 원리, 활용법이 총망라 되어 있다.
    • 데이터 파이프라인, ETL, Kafka 를 이용한 스트림 처리 등 데이터를 다루는 방법에 대해 알게 되었다.
    • 하둡, 맵리듀스, 스파크 등 대용량 데이터 처리에 대해 알게 되었다.
    • 간단히 인지하고 넘어갔던 데이터베이스의 중복 방지 알고리즘의 역사와 깊이에 놀랐다.
  • THE MONEY BOOK
    • 전체적으로 현대인의 금융 상식이라 할만한 내용으로 가득하다.
    • 돈이 늘 부족해도 저축을 해야 할까. 와 같은 쉽게 답을 내기 어려운 질문으로 이목을 끈다.
    • 상식이라 할 수 있지만 기억하고 실천하면 내 재산을 늘려줄만한 내용이 많아서 도움이 된다.
  • HTTP 완벽 가이드
    • 말 그대로 HTTP 에 대한 전반적인 내용을 다룬다.
    • 평소에 들어본 적은 있지만 자세하게 알지 못했던 http 관련 내용을 배울 수 있어 좋았다.
    • 모던함을 넘어 대중적으로 사용되고 있는 CDN 같은 기술이 어떻게 고안되고 발전되어 왔는지 알 수 있었다.
    • 많은 챕터가 유익했지만 특히 아래의 챕터들이 도움이 되었다.
      • HTTP 웹의 기초
      • 식별, 인가, 보안
      • 인코딩, 국제화
      • 콘텐츠 발행
  • Pro Git
    • Git 의 코어 기능과 설계를 알아볼 수 있어 즐거웠다.
    • Git 이 세상에 나오게 된 서사는 매우 흥미롭다.
    • Merge, Rebase 의 차이를 확실하게 알 수 있었던 챕터가 있어서 좋았다.
    • 실제 프로젝트에서 Git 으로 협업하다 보면 다양한 상황에 놓이게 되는데, 이를 현명하게 풀어나갈 수 있는 방법을 알려준다.
    • Github, Gitlab 등 git hosting 서비스에 대한 챕터는 사실 서적의 특성 상 최신 기능과 방향성을 다루기는 쉽지 않은듯 하다.
    • Gitlab 이 처음에는 이렇게 시작했구나 같은 지식은 좋았다.
    • 결론적으로는 매우 추천할만 하지만 나에게 도움이 될만한 챕터만 골라봐도 충분할 듯 하다.
  • 새로 쓴, 대용량 데이터베이스 솔루션
    • Database 그 자체에 대한 근본을 파헤치는 책이다.
    • 아래의 목적을 달성해기 위해 읽고 있다.
      • DB Index 를 정확히 이해하고 index 를 이용한 쿼리 성능 개선을 수행할 수 있다.
      • Explain 결과를 정확히 이해하여 SQL 분석을 수행할 수 있다.
    • 분량이 많아 2025년에도 읽어야 한다.