포스트

2023년 프로그래밍 책 후기

이번 글은 개인적으로 작년에 읽었던 책 중에 좋았던 책과 후기를 작성해보고자 한다.

책을 읽고 직접 적용해보고 생각해보는 것을 좋아하다보니 몇 년간 정말 많은 책을 읽은 것 같다. 아직도 자주 사용하는 사이트의 장바구니엔 읽어보고 싶은 책들이 쌓여있다. 읽어볼 정보와 지식이 많다는 건 항상 설레게 한다. :)

객체 지향

1. 객체지향의 사실과 오해

oop.jpg

객체지향이란 무엇인지를 다양한 예시와 함께 설명해준다. 역할, 책임, 협력 그리고 메시지를 통해서 객체지향을 설계하는 방법과 관점들을 설명해주는데. 객체지향에 대해 쉽고 빠르게 감을 잡기에는 좋은 책이라고 생각한다.

2. 오브젝트

object.jpg

객체지향의 사실과 오해의 심화판이라고 보면 될 것 같다. 읽다보면 코드 예시를 통해서 설명을 해주는 부분이 참 좋다. 계속 반복되는 얘기를 하는 것 같지만, 다각도에서 점진적으로 설명해준다. 한 번 보다는 2~3번 읽고 직접 적용해보는게 좋다고 생각이든다. 하지만 두께가 있다보니 아직 한 번만 읽었다.

프로그래머 정신

1. 프로그래머의 길, 멘토에게 묻다.

programmer.jpg

순서대로 읽을 필요없고 읽고 싶은 부분을 읽어도 된다는 장점이 있다. 프로그래머로 인생을 살아가면서 시작과 끝에 대한 조언이 들어있다. 내용의 대부분은 실제 적용해보면 좋겠다고 생각이 든다. 아직 적용한 부분들이 많이 없지만 책에 나오는 정신만큼은 적용했다.

2. 소프트웨어 장인

software.jpg

가볍게 읽기 좋다고 생각한다. 모든 부분이 와닿지는 않는다. 이유는 아직 해당 챕터의 대상이 아니기 때문일 것 같다. 보관하다 대상이 되었을 때, 다시 읽으면 좋을 것 같다.

자바

1. Effective Java

effective.jpg

처음 아무것도 모르고 구매하고 읽었을 땐, 어려운 부분이 많았다. 아주 약간의 경험이 쌓이고 다시 읽었을 때는 그 내용이 이해가 되고 배울점이 많았다. 모든 부분을 적용할 순 없지만 내용 자체가 좋다. 순서대로 안읽어도 되기 때문에 필요한 부분을 다시 읽기 좋다.

2. Modern Java In Action

modern.jpg

Effective Java와 마찬가지로 많은 도움이 된 책이다. 스트림에 대한 이해와 함수형 프로그래밍에 대해서 딥하게 배울 수 있었고 읽을 때마다 새로운 것들이 보인다. 자바를 학습함에 있어서 강추하는 책 중에 하나다.

DB

1. Real MySQL 8.0 1

mysql.jpg

책을 정독하면 MySQL에 대한 아키텍처와 인덱스에 대한 이해를 얻을 수 있다. 모든 부분을 적용하기는 어려운 부분이 많지만 전체적인 그림을 그리는데는 아주 좋았던 것 같다. 실제 쿼리나 파티션 등은 2에 기록되어 있고 1은 이론이나 설정이 대부분이다. 개발자라면 한 번쯤은 꼭 읽는 것도 좋다고 생각한다.

2. SQL 레벨업

levelup.jpg

Case의 다양한 사용 방법을 알려준다. 뿐만 아니라 인덱스, 서브쿼리 등 실제 사용할만한 사례에 대해서 설명해준다. 개인적으로 Case 의 이해가 부족했는데. 이 책을 통해서 어느 정도 이해를 얻었던거 같다. 하지만 한 번 읽는다고 내것이 되는 내용은 아니었다. 두고두고 읽어봐야 할 책

개발방법론

1. 좋은 코드, 나쁜 코드

goodCode.jpg

좋은 주제와 내용들이 많다. 어떤 코드가 좋은 코드이고 나쁜 코드인지 읽기 쉽게 되어 있다. 다만 다 읽고 나서 뇌에 뚜렷하게 남는 부분이 없었던 것 같다. 아무래도 새로운 부분이 없어서 그랬던 것 같다. 다른 책에서 나온 내용들이 대부분이다 보니 각인이 되지 못한거 같다. 하지만 책은 좋다.

2. 내 코드가 그렇게 이상한가요?

myCode.jpg

개인적으로 2023년에 읽은 책중에 마음에 들었던 책 중에 하나이다. 응집도, 클래스의 활용 등, 사이드 프로젝트를 진행할 때, 이런 것까지 클래스로 따로 빼는게 나을까? 싶을 때가 많았는데. 이 책엔 과감하게 클래스로 설계한다. 그런 것들을 보며 클래스 설계에 대한 이해를 더 얻을 수 있었다. 책을 읽다보면 직접 적용해보고 싶다는 생각이 많이 들었다. 읽기 쉽고 내용도 좋다. 강추

3. 리팩터링 2판

refactoring.jpg

이 책도 순서대로 읽을 필요가 없다. 필요한 부분을 읽어도 되는데. 필요한 부분을 모를 땐 그냥 순서대로 읽으면 될 듯 싶다. 이 책에서 배웠던 것은 리팩터링 방법도 있었지만 리팩터링 후 깔끔해지는 구조이다. 아! 이런 코드가 클린한 코드이구나. 라는 예시를 다양하게 볼 수 있어서 좋았다. 역시 사람들이 추천하는데는 이유가 있다.

테스트 코드

1. 테스트 주도 개발

test.jpg

TDD란 무엇인지 예시를 통해서 알려준다. 후반부에는 주의점과 몇가지 TIp을 알려주는데. TDD에 대해 아무것도 모른다는 가정하에 배우기 좋은 책이라고 생각한다. 약간 산만하다는 느낌이 들긴하는데. 나쁘지 않다.

2. Effective Software Testing

effective_test.jpg

기능, 경계, 명세 기반 등, 테스트 코드의 다양한 예시를 보여준다. 테스트 코드의 종류와 방법에 대해서 알고 싶을 때 읽기 딱 좋았던 책이다. 실전 예시가 많아서 직접 적용해볼 수도 있었다. 한창 테스트 코드에 대해서 관심이 많았을 때, 이 책과 인프런의 강의가 도움이 많이 됐던 기억이 있다.

DDD

1. 도메인 주도 설계 첫걸음

domain_first.jpg
책들을 읽다보면 ‘이 책 정말 잘썼다.’ 라고 느껴지는 책들이 있는데. 모던 자바인 액션과 바로 이 책이었다. 글도 술술 읽히며 내용도 이해가 잘되고 구조적으로 잘 짜여졌다고 느껴졌다.

DDD에 대해 이해하기 위해 처음으로 읽어보면 좋은 책이라고 생각된다.

도메인 주고 설계 핵심’를 요약본 같은 느낌으로 같이 읽는 것을 추천한다.

2. 도메인 주도 개발 시작하기

domain_start.png

Java를 기준으로 도메인 주도 개발을 위한 예시를 보여준다. 다만 DDD에 대한 이해를 위한 책은 아니라고 생각된다. DDD를 자바로 개발할 때 활용하기 좋은 책이라고 본다. DDD 내용이 아니더라도 실제 적용하기에 좋은 예시가 많다.

설계 및 DevOps

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

systemDesign.jpg

처음은 다른 사람의 추천으로 아무 기대 없이 가볍게 읽었는데. 읽다보니 너무 좋았던 책이다. 2는 현재 읽고 있는 중이다. 설계에 대해서 생각해보게 해주며 간접 경험을 하게 해준다.

개인적으로 처음 요구사항을 읽고, 노트에 나름의 설계한다. 그 후 뒷 부분을 읽고 차이점과 배울점이 비교해가며 읽는 것이 좋다. 이 책 덕분에 정말 설계의 기초를 조금이나마 배웠던 것 같다. 두고 두고 읽을 만한 책이다.

2. 컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커

infra.jpg

리눅스와 도커, 쿠버네티스에 대한 경험이 조금 있다보니 DevOps에 대해서 감만 잡아볼까? 라는 생각으로 읽어본 책이다. 가볍게 따라하면서 배울 수 있는게 많았다. 다만 헬름이나 쿠버네티스 등 실제로 적용하기엔 딥하게 들어가야 할 부분이 많아서, DevOps를 제대로 목표하는게 아니라면 1번 가볍게 볼만하다.
비슷하게 ‘도커, 쿠버네티스, 테라폼으로 구현하는 마이크로서비스’ 를 읽었는데. 동일했다.

이 밖에도 여러 책을 읽었는데. 가장 기억에 남고 괜찮았던 책만 뽑아봤다. 책을 읽는 것도 좋지만 Output을 만들고 다른 건 없을까 고심하고 있지만 쉽지가 않다.

언젠가는 실제 환경에서 다양하게 적용해보고 경험해보고 싶다. 또 책도 써보고 싶은데. 언젠가 이루게 될거라 믿는다. 😁

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.