이펙티브 자바 3/E

Java 추천 서적 TOP 5안에 항상 들어가는 책.
Java를 조금 배운 상태에서 처음 읽었을 때는 굉장히 속도가 안 나서 중도하차했었는데, 최근에 완독을 했다.

Java 추천 서적 TOP 5안에 항상 들어가는 책.
Java를 조금 배운 상태에서 처음 읽었을 때는 굉장히 속도가 안 나서 중도하차했었는데, 최근에 완독을 했다.

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

이 책은 여러 연구 사례와 함께 인지과학을 기반으로 개발자의 뇌에 대해 다룬다.
왜 btnPtr보다 buttonPointer가 이해하기 쉬운가, 왜 (i, j)를 사용하는 것이 좋은가, 왜 초보 개발자는 이해하지 못하고 시니어 개발자는 충분히 설명했다고 생각하는가 등 흥미로운 주제들을 연구 결과와 인지과학 개념을 빌어 독자를 납득시킨다.

모든 내용을 이해하고 넘어가기에는 지금에 나에겐 어려운 책이었고, 읽는 속도가 잘 나질 않아서 키워드 중심으로 훑어 읽었다.
이 책은 서버 개발자가 개발 시 고려해야 하는 다양한 개념에 대해 다루고 있다. 시스템 디자인 시 고려해야 하는 트랜잭션, 파티셔닝, 일관성, 선형성 등 중요한 개념들을 다이어그램과 사례를 통해 설명한다. 우리가 사용하고 있는 RDB, 메시지 브로커 등 다양한 인프라성 도구들이 대신 구현하고 있는 그 원리와 개념이 무엇인지 알 수 있었다.
> 이 글은 springdoc-openapi 전환기 1편에 해당하는 글입니다.
이 글을 작성하는 시점 기준 최신 Spring Boot 버전은 2.6.4이다.
Spring Boot 2.6 Release note를 보면 다음과 같은 변경 사항이 눈에 들어온다.

클린 코드랑 같이 굉장히 유명한 책. 어쩌다 보니 2번 읽게 되었다.
소프트웨어 아키텍트 관점에서 어떻게 아키텍처를 구성해야 하는가, 무엇을 고려해야 하는가에 다루는 책이다. 사실 아키텍트는 좀 먼 미래긴 한데 굳이 인프라 레벨의 것에 접목시키지 않아도 개발할 때 패키지 구조 짜거나 할 때 고려하거나 적용해볼 만한 내용들이 많이 있었다.

Google에 'IntelliJ 테스트 속도'로 검색한 결과
IntelliJ로 Spring 베이스의 프로젝트를 개발하거나 공부해본 경험이 있는 분들이 있다면 한 번쯤은 검색해보았을 키워드가 바로 테스트 속도, 빌드 속도일 것이다. 검색 결과의 내용은 거의 대부분 아래와 같은 방법으로 속도를 올릴 수 있다고 나온다.

이 책을 한번 훑을 때까지 몇 번이나 책을 빌렸는지 모르겠다. 처음 빌려서 읽을 때는 이해가 안 되어서 반납했고, 두 번째 빌려서 읽을 때는 잘 안 와닿아서 반납했다. 시간이 좀 지났고 다시 한번 도전해봐야겠다 싶어서 주말을 이용해서 드디어 한 번을 훑었다.
이 책은 OOP라는 콘셉트를 가지고 개발을 할 때 지키면 좋을 가이드라인을 제시한다. 뭔가 기술 면접 때 나올법한 의존성 역전, SOLID, IOC 등의 개념을 코드 예시와 함께 설명한다. 책이 굉장히 두껍고 코드 양이 많아서 중간에 휙휙 넘기고 싶은 욕구가 계속 들 텐데 꾹 참고 차근차근 읽어보면 좋을 것 같다.
제목이 곧 내용.
글 쓰기가 어렵다. 내가 쓴 글을 누군가가 읽을 수 있다고 생각을 하니 더 쓰기가 어렵다. 기술적으로 유익한 글을 작성하기엔 내가 가지고 있는 지식의 깊이가 빈약하다. 무엇보다 나보다 훨씬 잘 정리해서 공유해주시는 분들이 많다. 그렇다고 내 개인적인 신변잡기를 풀어내는 것도 영 내키지 않는다. 사실 이 두 문장을 작성하기 위해서 수십 번을 쓰고 지우고를 반복했는데 이 또한 너무 화가 난다. 내 머릿속에 있는 내용을 논리 정연하고 깔끔하게 글로 작성해내는 AI 솔루션 있으면 참 좋겠다는 쓸데없는 생각이나 하고...
그동안 굉장히 블로그 포스팅이 뜸했다. 사실 포스팅할 내용들은 좀 있긴 한데 작성할 시간을 내지 못했다. 그나마 이번 주 주말부터는 조금 정신 차려서 끄적거리고는 있는데 12월은 거의 퇴근하고 멍 때리거나 잠만 잤다. 뭔가 여유가 없었다. 이제는 팀에서 담당하는 서비스의 개발과 운영 업무를 그럭저럭 하고 있는데 이것만으로도 에너지가 다 소진되었던 게 원인이라면 원인일 듯싶다.
그래서 열심히 잤다. 정말 하루 10시간 이상은 꼭 잤고, 주말에도 최대한 잠을 많이 잤다. 한 달 정도 이렇게 보내니깐 확실히 에너지가 좀 돌아온 게 느껴졌고, 이번 주 주말부터는 조금 생산적인 일을 다시 시작했다.
사실 지금 이 글도 마음에 안 들어서 수십 번을 지웠다가 말았다가를 하고 있는데 이번에도 지우면 영영 올해 포스팅을 못할 것 같아서 맘에 안 들어도 적고 땡치려고 한다. 두서없는 1년 회고, 그리고 내년을 어떻게 살아갈지에 대한 방향성을 적어보려 한다.