Zero to Hero
article thumbnail
실용주의 프로그래머(The Pragmatic Programmer)
Review 2022. 5. 10. 22:49

최근에 20주년 기념판이 나왔다고 해서 읽어본 책. 클린 코드가 코드에 포커스를 둔 책이라면 이 책은 개발 프로젝트를 전반적으로 다룬다. 몇 가지 기억에 남는 키워드와 개인적인 생각을 정리해보면... 시작 피로(start up fatigue) 한꺼번에 많은 것을 바꾸려면 필연적으로 발생하는 많은 준비 과정이 모두를 지치게 한다. 작은 부분을 고르고 그것을 잘 개발하는 것으로 시작해 변화의 촉매가 되어보자. 상속세 프레임워크 레벨로 사용하는 오픈소스는 확장성을 위해 어쩔 수 없다고 하지만 2단계 이상의 상속 구조를 특정 상황에 대해 직접 개발해 사용하는 것에는 의문이 든다. (특히 새로 만드는 프로젝트가 아닌 기존 프로젝트의 신규 기능을 개발할 때!) 테스트의 목표 테스트 코드를 작성하다 보면 종종 이 테..

article thumbnail
RxJava 리액티브 프로그래밍
Review 2022. 4. 30. 23:14

RxJava에 대해 다룬 책 중에 비교적 최근에 나온 책이고, 2.X 버전에 추가된 Reactive Stream의 내용에 대해 다룬다. 최근 spring-web으로 구현된 프로젝트를 spring-webflux를 적용하는 작업을 하고 있는데 Reactive, 비동기, 리액티브 프로그래밍 등 경험이 없어서 관련 개념을 훑기 위해 읽어봤다. 이 책은 아주 만족스럽다. 책의 많은 지면을 리액티브 프로그래밍의 콘셉트에 대해 설명하고 있고 처음 접한 내가 약간 이해가 될 정도면 번역 수준 또한 매우 훌륭하지 않나라고 생각한다. 참고로 이 책은 WebFlux에 대한 책이 아닌 RxJava에 대한 내용을 다루는 책이다. 예제 또한 코드 전문으로 작성되어있어서 따라 해 보기도 좋았다. 현재 최신 스펙이 3.X이기 때문에..

article thumbnail
이펙티브 자바 3/E
Review 2022. 4. 30. 23:05

Java 추천 서적 TOP 5안에 항상 들어가는 책. Java를 조금 배운 상태에서 처음 읽었을 때는 굉장히 속도가 안 나서 중도하차했었는데, 최근에 완독을 했다. 이 책은 Java 개발자들에게 일침을 하는 책이다. 개발에 정답은 없다지만 비효율적인 것은 지양하고 최적화할 수 있는 부분은 하는 것이 개발자의 기본 소양이기 때문에 그런 관점에서 가이드를 준다. 뒤로 갈수록 자주 다룰 일이 없고 익숙하지 않은 어려운 개념들에 대해 다루기 때문에 읽을수록 진도가 잘 안 나가긴 했다. 항상 이런 책이 그러하지만 맹신하고, 특히 누구에게 강요하는 것은 반드시 피해야 한다. 사실 요즘 하드웨어 성능이 워낙 좋고 JVM도 계속 발전하고 있어서 웬만큼 억지로 비효율적으로 작성하지 않는 이상은 실제 기능이 동작하는데 큰..

article thumbnail
함께 자라기
Review 2022. 4. 2. 10:16

이 책은 애자일을 협소한 업무 방법론이 아닌 일하는 한 가지 스타일, 혹은 더 넘어서 삶을 사는 방식으로 확장하는 광의의 개념으로 풀어낸다. 대부분의 내용이 함께 일하는 방법과 이를 위한 태도를 다루고 직접적으로 애자일 개념을 다루는 페이지는 몇 페이지 안된다. 분량 안배만 보아도 단순히 애자일이 단순히 규칙과 도구로 실현되는 것이 아니다는 것을 간접적으로 어필하고 있다. 함께 자라기의 함께는 나와 팀 멤버뿐만 아니라 우리 팀이 만들어낼 서비스에 연관되는 모든 사람을 의미한다. 우리는 비록 의식하진 못하지만 다른 사람과 관계를 나누면서 명확한 규칙 아래에서 수치화된 자료만으로는 설명할 수 없는 불확실한 일들을 하루에도 수십 번씩 겪는다. 결국 내가 해결해야 하는 문제는 이 모든 과정에 연관되어있는 사람들..

article thumbnail
프로그래머의 뇌
Review 2022. 3. 28. 22:26

이 책은 여러 연구 사례와 함께 인지과학을 기반으로 개발자의 뇌에 대해 다룬다. 왜 btnPtr보다 buttonPointer가 이해하기 쉬운가, 왜 (i, j)를 사용하는 것이 좋은가, 왜 초보 개발자는 이해하지 못하고 시니어 개발자는 충분히 설명했다고 생각하는가 등 흥미로운 주제들을 연구 결과와 인지과학 개념을 빌어 독자를 납득시킨다. 이 책을 읽으면서 내가 평소에 충분히 상대방이 이해할 수 있도록 설명하는가 돌아보는 계기가 되었다. 협업을 할 땐 나 자신이 상대방의 콘텍스트에서 눈높이를 맞추고 이야기하는지 생각해볼 필요가 있다. 자신이 "이 코드는 이해가 안 되는데요"라고 말하는 대신 "이 코드를 읽다 보니 부하가 너무 많이 걸립니다"라고 말하는 말하는 사람인지 생각해보자. 최근에 두꺼운 기술 서적만..

article thumbnail
데이터 중심 애플리케이션 설계
Review 2022. 3. 28. 22:12

모든 내용을 이해하고 넘어가기에는 지금에 나에겐 어려운 책이었고, 읽는 속도가 잘 나질 않아서 키워드 중심으로 훑어 읽었다. 이 책은 서버 개발자가 개발 시 고려해야 하는 다양한 개념에 대해 다루고 있다. 시스템 디자인 시 고려해야 하는 트랜잭션, 파티셔닝, 일관성, 선형성 등 중요한 개념들을 다이어그램과 사례를 통해 설명한다. 우리가 사용하고 있는 RDB, 메시지 브로커 등 다양한 인프라성 도구들이 대신 구현하고 있는 그 원리와 개념이 무엇인지 알 수 있었다. 어려운 개념을 애플리케이션 레벨에서 코드로 구현하는 것이 올바른 방향인가라는 생각이 들었다. 코드 레벨에서 쉽게 구현할 수 없는 것을 구현해서 사용했을 때 성능과 신뢰성을 동시에 잡을 수 있을까? 2PC와 같은 어려운 개념의 실제 로직을 구현한 ..