안녕하세요. 다메카솔🐿️ 입니다.

이번에 읽은 책은 최근 관심이 많아진 아키텍처에 관련된 책입니다.

클린 아키텍처 책 표지

https://product.kyobobook.co.kr/detail/S000001033082

 

클린 아키텍처: 소프트웨어 구조와 설계의 원칙 | 로버트 C. 마틴 - 교보문고

클린 아키텍처: 소프트웨어 구조와 설계의 원칙 | 살아있는 전설이 들려주는 실용적인 소프트웨어 아키텍처 원칙 소프트웨어 아키텍처의 보편 원칙을 적용하면 소프트웨어 수명 전반에서 개발

product.kyobobook.co.kr

후기
독서기간 :  2024.03
독서시간 : 20H
평점 : ★★★★★
한줄평 : 구루의 경험으로 배우는 프로그래밍 설계의 교과서

클린 코드도 유명하지만, 클린 아키텍처 책도 개발 공부를 시작할 때 많이 추천받은 책이었습니다.
처음 읽었을 때는 아직 프로그램의 가장 작은 단위 코드들도 작성하는데 쉽지 않을 때라 책을 읽어도 바라보는 시각이 차이가 많이 나서 내가 직접 활용하기가 어렵다고 느꼈었습니다.
나중에 시간이 지나면서 구현이 아닌 설계, 객체지향, 함수형 프로그래밍, 그리고 설계 원칙(자바의 SOLID 등), 또 MSA 아키텍처나 비동기 프로그래밍, 의존성과 결합도 등 학습에 꾸준한 관심을 가지는 개발자들이라면 자주 볼 수 밖에 없는 지식들에 조금 익숙해졌을 때, 다시 한번 먼 이야기로 느껴지던 설계와 아키텍처에 대해 공부해보고 싶다는 생각을 했습니다.

많은 내용이 나오는 책이지만 조금 익숙해진 개념들이 자주 나오다보니 읽는데 정말 재밌게 읽었습니다.
특히 경력 30년차의 대선배가 옆에서 이야기해주는 것 같은 펌웨어까지 개발하던 시기에서부터 지금까지 시행착오를 거치며 발전한 아키텍처의 필요성이 교과서에서 보던 것과는 다르게 `만약 내가 그런 상황있더만 열마나 고생했을까?` 를 생각하며 읽다보니 몰입이 잘 되었던 것 같습니다.

기억남았던 내용들은, 절차지향 -> 객체지향 -> 함수형 프로그래밍이 나오게 된 기저에는 코드에 대한 제약이 있다. 무엇이 좋은 코드인지는 분명하지 않지만, 무엇이 오답인 지는 경험을 통해 알 수 있다. 이었습니다. 
선배 개발자들이 개발하면서 겪은 고통스러운 과정을 통해 절차지향은 제어흐름의 직접적인 전환에 대한 규칙(메모리의 goto 문), 객체지향은 제어흐름의 간접적인 전환에 대한 규칙(모듈에서 더 나아간 역할과 책임, 협력으로 이루어진 제어흐름), 함수형 프로그래밍은 할당문에 대한 규칙(변수를 선언하는데 사이드 이펙트를 예방할 수 있는 각종 규칙들)이 제안되었다는 점은 단순히 개발 패러다임으로 바라볼 때와는 다르게 전체 프로그램 역사가 모두 이어지는 느낌을 받았습니다.

더 확장하여, 특정 언어에 국한되지 않고, 코드들이 어떻게 구성되면 좋은지 에 대해 저자의 시간의 흐름에 따른 경험을 바탕으로 얻은 원칙들을 배울 수 있었습니다.

아직 실무에 모두 적용하기엔 시간이 많이 걸리겠지만, 프로젝트에서 자주 보이던 xxxService, xxxServiceImpl 클래스의 의미가 이전에는 관습적으로 느껴지던 인터페이스가, 지금은 설계와 구현을 분리한 것이고, SRP를 준수하며, 좋은 아키텍처 로서 미래의 변경사항에 대비해 구성요소를 쉽게 분리할 수 있도록 준비해둔 아키텍처 요소로 보이게 되어서 시야가 넓어진 느낌을 받았습니다.

시간이 된다면 꼭 읽어보시는 걸 추천드립니다.

안녕하세요. 다메카솔🐿️ 입니다.

개발을 처음 시작할 때 추천받고 읽기 시작했지만 완독에 굉장히 오래 걸렸던 책 객체지향 사실과 오해 입니다.

 

https://product.kyobobook.co.kr/detail/S000001628109

 

객체지향의 사실과 오해 | 조영호 - 교보문고

객체지향의 사실과 오해 | 객체지향에 대한 선입견을 버려라!『객체지향의 사실과 오해』는 객체지향이란 무엇인가라는 원론적면서도 다소 위험한 질문에 답하기 위해 쓰여진 책이다. 안타깝

product.kyobobook.co.kr

 

독서기간 : 2023.05 ~ 2024.02

독서시간 : 10H +

평점 : ★★ ☆☆

한줄평 : 개발자 추천서에 꼭 들어가지만 읽기 쉽지 않은 책

 

객체지향 프로그램을 할 때 어떤 관점으로 프로그램을 바라보고 개발을 해야 더 생산성이 높을까?
자바를 처음 배울 때 클래스 생성부터 시작하여 메인함수 구현, 자동차나 붕어빵 클래스를 만들어서 객체들을 생성하고 값을 할당하는 등 기본 문법을 익혀나갑니다.


기능구현을 할 수 있게되고 프로그램을 작성하게 되면서 기능개발, 유지보수, 요구사항 변경 등 생산성에 대한 고민을 하게 되는데 이때 변화하는 요구사항에 유연하고 읽기 쉬운 코드, 견고한 프로그램을 작성할 수 있는 패러다임에 대해 앞서 나간 선배 개발자가 후배들에게 여러 예시로 설명을 해주는 내용이었습니다.


저는 보통 책을 읽을 때 출퇴근 시간에 읽는데, 내용이 추상적이고 예시가 많고 비슷하게 보이는 내용의 작은 차이들을 설명하는 글들이 많아 출퇴근때 읽기에는 가독성이 좋지 않아 완독에 많은 시간이 걸렸습다.
너무 자주 책을 덮는 일이 반복되어 왜이리 안읽히지 고민을 해보았는데 든 생각은 초보자가 읽기에는 다소 내용이 딱딱하게 느껴졌고, 어느정도 배경지식이 있어야 독서효율성이 나올 것 같습니다.


내용은 분명 알찬 책이지만, 읽기 쉬운 코드, 바보처럼 단순한 코드가 좋은 코드, 유지보수하기 쉬운 코드라 말하는 개발자의 관점으론 과연 독자에게 좋은 책인가? 라는 의문이 듭니다.
내공이 얕아서 그럴 수 있어 한 1~2년 뒤에 다시 한번 읽어볼 생각입니다.

안녕하세요. 다메카솔🐿️ 입니다.

요즘 PKM(개인지식관리)와 옵시디언, 제텔카스텐에 관심이 생겨서 읽었던 책을 소개해드립니다.

https://product.kyobobook.co.kr/detail/S000001534370

 

하우 투 제텔카스텐(How to Zettel-Kasten) | 제레미 강 - 교보문고

하우 투 제텔카스텐(How to Zettel-Kasten) |

product.kyobobook.co.kr

 

독서기간 : 2023.10

독서시간 : 5H

평점 : ★★☆☆☆

한줄평 : 제텔카스텐 입문 책, 하지만 바로 적용하기는 힘든 기본서

 

개인지식관리에 관심이 생기며, 세컨드브레인(https://damecasol.tistory.com/95) 책을 읽은 뒤에 메모 관리 방법을 더 개선하기 위해 제텔카스텐 책을 읽었습니다.

 

관련 서적을 탐색하였을 때, 독일의 사화학자 니클라스 루만의 메모기법을 숀케 아레스가 연구 분석 한 뒤 소개한 제텔카스텐 책과 이번에 읽은 하우 투 제텔카스텐 책 2권이 있었습니다.  https://product.kyobobook.co.kr/detail/S000001534368

 

제텔카스텐 | 숀케 아렌스 - 교보문고

제텔카스텐 |

product.kyobobook.co.kr

책 내용을 훑어봤을 때, 조금 더 가볍고 읽기 쉽겠다고 생각된 하우 투 제텔카스텐 책을 출퇴근하면서 읽었는데, 개인적으로 책을 읽은 뒤에 큰 도움을 받았다고 느끼지는 못했습니다.

 

이유를 고민해보면, 우선 출퇴근시간이라는 TPO에 맞지 않은 책이었다는 점이었습니다.

메모 관리기법을 실제로 적용하기 위해서는, 메모 도구들을 점검하고 템플릿을 만들고 실제로 써보면서 숙달시켜야 하는데, 이론만 읽고 적용을 하지 못하니 휘발성 지식으로 사라져 결국 기존의 메모습관에서 머물러있게 되었습니다.

또 한가지는 책이 전달하는 내용의 효용성보다 유튜브에서 제텔카스텐을 소개하고 적용하도록 정리되어있는 영상들이 더 큰 도움이 된다고 느꼈습니다. 영상들은 실제 사용법도 소개해주고 중요내용을 짧게 요약하여 핵심을 쉽게 파악할 수 있었는데, 책을 읽을때는 어려웠다고 느껴졌습니다.

 

하지만 제텔카스텐을 제대로 알기 위한 내용들이 잘 정리되어 있어서 읽기위한 준비가 잘 안되어있을 뿐이지, 후에 다시 한번 읽어보고 싶은 책이었습니다.

개발자 원칙 표지

https://product.kyobobook.co.kr/detail/S000200381165

 

개발자 원칙 | 박성철 - 교보문고

개발자 원칙 | ★ 더 나은 개발자로 성장을 꿈꾼다면★ 먼저 헤쳐온 테크 리더들의 원칙에서 해답을 찾아보세요“나도 테크 리더가 될 수 있을까? 어떻게 선배 개발자들처럼 성장할 수 있을까? 3

product.kyobobook.co.kr

독서기간 : 2023.03

독서시간 : 5H

평점 : ★★★★☆

한줄평 : 시니어들이 경력을 쌓으며 만든 원칙들을 공유받을 수 있습니다.

 

인생을 살아가면서 사람들은 다양한 경험을 하고, 성공과 실패를 통하여 이전보다 더 성장합니다.

개발자들은 조직의 문제, 프로젝트의 문제, 더 나아가 사회의 문제를 해결하기 위해 성장을 추구합니다.

많은 책을 읽거나 컨퍼런스 등에 참여하여 새로운 정보를 얻고, 그 정보를 사람들과 나누며 함께 성장하며 살아갑니다.

 

이제 막 개발을 시작한 주니어들은 주변에 사수가 있을 수도 있고, 없을 수도 있고, 같이 성장할 비슷한 레벨의 동료들이 있을 수도 있지만 없을 수도 있습니다. 

위 책은 시니어 레벨의 테크 리더들이 현실세계의 문제를 해결하면서 깨달은 성공, 그리고 성장을 위한 원칙들의 노하우를 요약한 책입니다. 일을 하거나 인생을 살아가면서 이미 경험한 누군가가 건네주는 조언은 후임자들의 실행착오를 줄여주며 그만큼 더 생산적인 결과가 나올 수 있게되고, 결과적으로 사회가 더 좋아지게 될 것입니다.

 

각각의 테크리더들이 처한 상황과 관점이 다르다보니 책에서 소개하는 원칙들을 독자들이 처한 상황에 100% 적용할 수 있을지는 잘 모르겠습니다. 저같은 경우 주니어레벨에게 설계의 원칙을 이야기한 챕터를 읽을 때, 아직은 해당 원칙을 고민해야 할 정도로 개발자로서 성장하지 않았다는 느낌을 받았습니다.

 

하지만 지금 제 고민을 더 좋은 방법으로 해결해줄 수 있는 원칙들도 있었고, 곧 닥쳐올 고민에 대한 이야기도 있었습니다.

책을 통해 쉽게 듣기 힘든 테크리더들의 노하우를 공유받을 수 있다는 부분에서 유익한 독서였습니다.

함께 자라기 책 표지

http://www.yes24.com/Product/Goods/67350256

 

함께 자라기 - YES24

‘함께’는 협력을 말하고, ‘자라기’는 학습을 말한다. 무엇이건 실제 바깥세상(야생)에 임팩트를 남기려면 혼자 힘으로만 되는 게 없다. 함께 해야 한다. 주변 사람들과 함께. 매일 부대끼는

www.yes24.com

독서기간 : 2022.08

독서시간 : 5H

평점 : ★★★★★

한줄평 : 사람들이 함께 일하면서 같이 성장할 수 있는 협업방법에 대해 배울 수 있음

 

크고 복잡한 일들, 더 큰 성과를 내기 위해서는 혼자서 하는 것보다 여러 사람들이 함께 일을 해야 한다.

학교에서도 선생과 학생이 함께 학생의 성장이라는 목표로 협력하며, 회사에서 일을 할 때도 회사의 이익이라는 목표를 위해서 다양한 사람들이 협력하여 일을 한다.

 

일을 더 잘하기 위해서, 더 큰 성과를 내기 위해서는 어떻게 해야할까? 

회사든 학교든 결국 모든 일은 사람들이 하는 것이기 때문에, 사람들이 성장해야 회사도 성장하고 성취할 수 있는 결과도 더 커지게 된다.

 

함께 일을 하면서, 단지 목표만 보고 달려가는 것이 아니라 더 큰 관점에서 조직과 사람이 성장하는 방법에 대한 통찰력을 배울 수 있는 책이었다. 이전까지는 단순히 열심히 일에 집중하고, 부족한 부분은 스스로 찾아서 배우는 개개인의 역량에 의지하는 방식으로 일을 처리하였는데, 더 큰 성과를 내기 위해서는 일을 바라보는 시각이 개인에서 확대하여 같이 일하는 사람들을 바라보고, 그 사람들과 어떻게 협력하고 커뮤니케이션 하여 서로 윈윈할수 있을지 알게 되었다.

 

내가 알게된 내용을 주변 사람들과 함께 공유하고 현실에서 성과로 이뤄내는 것은 또 다른 문제이지만, 같이 일하는 사람들에게 선물해주고 싶은 책이다.

 

 

오늘도 개발자가 안 된다고 말했다 표지

개발자가 왜 안 된다고 말했을까?

 

나같은 경우는 시간내에 안될 것 같아서, 바꾸면 무슨 일이 일어날지 몰라서 안된다고 한 적이 있는 것 같은데, 다른 개발자들은 어떤 경우에 안 된다고 하고, 어떤 요청이 안 되는 요청일지 궁금해졌다.

 

책 내용은 기획자와 디자이너가 개발자와 협업하기 위해서 서로의 일들을 이해하고 소통하는 방식에 대해 적혀있다.

그리고 기획자와 디자이너가 어떤 일을 하는지, 일을 잘 하기 위해서 어떻게 협업해야 하는지 실제 사례를 통하여 간접경험을 할 수 있게 구성되어 있었다.

 

개발자들끼리 일할 때도 협업과 의사소통의 중요성은 많은 사람들이 강조하는 부분인데, 다른 분야의 전문가들과 일할 때도 상대방의 입장에서 이해하기 쉽도록 설명하고 함께 일을 성공시키기 위해 협력하며 신뢰를 쌓는 것이 일을 잘 하는 전문가의 모범이 아닐까 생각한다.

 

문제는 개발을 하다보면 항상 두가지 상태를 왔다갔다 한다는 것이다.

the two states of every programmer

계획한대로 개발이 잘 진행되고, 문제없이 진행되면 자신감이 하늘을 찌르고

무언가 안되면 어떻게 이런 것도 못하는데 그때 그렇게 당당하게 말하고 다녔을까 부끄러워져서 옆에 있는 사람들 얼굴보기가 부끄러워서 도망가고 싶어 진다...

 

항상 앞에 계신 분들이 이미 같은 길을 수년 넘게 걸어오신 분이라는 것을 잊지 말자... 

+ Recent posts