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

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

클린 아키텍처 책 표지

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/S000201140661

 

세컨드 브레인 | 티아고 포르테 - 교보문고

세컨드 브레인 |

product.kyobobook.co.kr


독서기간 : 2023.10.10 ~ 2023.10.15
독서시간 : 10 Hour
평점 : ★★★★★ 
한줄평 : 디지털 시대에 꼭 필요한 개인지식관리 지침서

얼마 전에 유튜브에서 제텔카스텐이라는 지식관리 시스템을 접하였습니다.
메모를 원자 단위로 나누고, 연결하여 새로운 아이디어를 얻는 방법으로 정보를 잘 관리하는 방법을 이야기하는 내용이었는데, 관심이 생겨서 정보를 찾아보다보니 옵시디언과 세컨드브레인이라는 키워드에 도착하였습니다.

평소에 일기를 쓰거나 일정을 관리하고, 공부한 내용을 정리하고 노트를 디지털로 변환하고 클라우드에 연동하는 것에 관심이 많았는데, 옵시디언과 세컨드브레인이 개인지식관리에 관한 깊이있는 이야기가 많아 흥미있었던 주제와 연결되어 정말 재밌고 시간가는 줄 모르고 책을 읽었습니다.

전통적인 폴더구조와 십진분류법으로 정리된 자료들이 시간이 지나면서 점점 더 복잡해서 자료를 찾기 힘들어지고 그에따라 one note에서 컨플루언스, 노션, 굿노트까지 계속해서 더 나은 방법을 찾아 정보 대이사를 하는 것이 반복되어 점점 피로해지고 있었는데 세컨드브레인이 제시하는 메모를 바라보는 관점의 전환, 그리고 `실행`을  관점으로 자료를 정리하는 PARA 시스템을 도입하면서 이 문제들을 해결할 수 있었습니다.

기록하고 자료를 정리하는 것에 흥미가 있으신 분이라면 강력 추천드립니다.

개발자 원칙 표지

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

 

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

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

product.kyobobook.co.kr

독서기간 : 2023.03

독서시간 : 5H

평점 : ★★★★☆

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

 

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

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

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

 

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

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

 

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

 

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

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

 

 

 

손에 잡히는 10분 정규 표현식 표지

 

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

 

독서기간 : 2022.08

독서시간 : 2H

평점 : ★★★★★

한줄평 : 텍스트, 문자를 다루는 레벨을 올릴 수 있는 책이다.

 

일을 하다 보면 다양한 곳에서 정규표현식과 만나게 된다.

정규표현식을 볼때마다 항상 든 생각이 언젠가 한번 제대로 정리하여 개발생산성을 높이고 싶다 였는데, 괜찮은 책이 없을까 찾다가 발견하여 보게 되었다.

 

인터넷에서 필요할 때마다 찾아보면 쉬워 보이면서도 직접 쓰려고 하면 정리가 제대로 되지 않아서 활용하기가 쉽지 않은데, 잘 정리된 내용을 하나씩 읽어가면서 체계를 잡을 수 있어서 큰 도움이 되었다.

 

정규식을 공부한 뒤 가끔씩 여러 조건들을 넣어서 필요한 정보만 빠르게 검색하면 정말 뿌듯해진다.

여유가 난다면 꼭 공부하기를 추천한다.

'독서 > IT 기술' 카테고리의 다른 글

[독서/IT 기술] 토미의 Git with 소스트리  (0) 2022.08.07

함께 자라기 책 표지

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

 

함께 자라기 - YES24

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

www.yes24.com

독서기간 : 2022.08

독서시간 : 5H

평점 : ★★★★★

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

 

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

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

 

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

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

 

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

 

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

토미의 Git with 소스트리 책 표지

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

 

토미의 Git with 소스트리 - YES24

이 책은 두 개의 파트로 구성돼 있다. 파트I에서는 Git의 기본 개념에 대해 설명 했다. 파트2에서는 Git의 여러 명령을 사용하는 방법에 대해 설명했다. 이 책을 반드시 처음부터 읽을 필요는 없다.

www.yes24.com

 

독서기간 : 2022.07.12 ~ 2022.07.25

독서시간 : 5H

평점 : ★★★★★

한줄평 : Git에 대해서 동작원리부터 실제사례까지 공부할 수 있음

 

개발 공부를 시작하거나 취직 후 개발자로 일을 하게 되면 형상관리도구를 사용하게 된다.

구글의 도움을 받아서 사용법을 익히고, 깃허브 아이디도 만들고 개인 프로젝트에서도 사용해보았지만, 지금 일하고 있는 회사에서는 SVN을 사용하고 있어서 Git을 개인적으로 사용할 때마다 더 체계적이고 잘 정리된 사용법이 있지 않을까? 하는 갈증이 있었다.

Git같은 경우는 강의로 들을 만큼 내용이 어렵거나 많은 것도 아니라 어떻게 공부하면 좋을까 고민한 결과 출퇴근 시간에 ebook으로 읽으면 괜찮겠다 생각해서 바로 교보문고에서 sam베이직으로 빌려서 독서를 시작했다.

 

본문 구성이 신입사원이 입사하여 개발자로 일하면서 git에 대한 필요성을 느끼고 사수에게 배운다는 시나리오를 설정하면서 스토리를 풀어가면서 얘기하는데, 딱딱한 기술이야기만 있는 것보다 친근감있게 다가와서 읽기 좋았고, 챕터도 출퇴근시간에 하나씩 읽기 적당한 단위로 나뉘어져 있어서 1주일정도 걸려서 완독을 하였다.

 

단순 사용법만 나열한 것이 아니고 버전관리의 역사부터 git의 주요 오브젝트, 어떤 방식으로 작동하는지 잘 정리되어 있으며, 소스트리를 통해 실제 사용 예제도 책에 삽입된 이미지를 보면서 시각적으로 볼 수 있어서 컴퓨터앞에 앉아있지 않아도 이해가 쉽게 되었다.

 

'독서 > IT 기술' 카테고리의 다른 글

[독서/IT 기술] 손에 잡히는 10분 정규 표현식  (0) 2022.10.02

 

 

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

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

 

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

 

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

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

 

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

 

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

the two states of every programmer

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

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

 

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

책 표지

 요즘 통계관련된 책을 많이 찾아서 보고 있다.

방송통신대 통계학과에 편입해서 공부한게 엊그제같은데 벌써 졸업학기가 다가왔고, 내가 그동안 무엇을 공부했는지 돌이켜 보았는데 분명 퇴근하고 학과강의도 열심히 듣고, 주말에도 복습하고 과제하고 시험보고 많은 것을 한 것 같은데 막상 무엇을 할 수 있느냐고 물어보면 내가 뭘 할 수 있을까? 라는 의문이 들었기 때문이다.

 

 개발쪽 구직이 여러 이유로 지연되어서 시작한 통계공부지만, 그래도 2년넘게 공부하면서 나름 정도 생기고 요즘 트렌드도 데이터쪽을 중요시하고 업무적으로도 DB를 볼 일이 많다 보니까 점점 더 배우길 잘했다는 생각이 들었다. 근데 막상 무언가 하려고 하면 무엇부터 시작해야할지, 활용한 경험이 없어서 막막한 느낌이 드는 것이다.

개발할때도 똑같이 전공과목이나 언어등을 배우고 막상 무언가 만들려고 하면 막막한 느낌이 많이 들었는데, 목표를 가지고 무언가 만들어가면서 지식을 실제 문제해결과 연결하면서 창고에 쌓아놓았던 물건들을 세상에 내놓을 수 있도록 다듬어야 하는 과정이 없었던 것이다.

 

 아무튼 무언가 데이터분석을 해보려고 하려고 하니까, 예전에 배웠던 내용들이 잘 기억이 나지 않았다. 교수님이 말씀해주시거나 명확한 과제가 있어서 책을 찾아야 할 때는 그 과목의 맥락 안에서 개념들을 잘 떠올리고 해결했는데, 현실세계의 문제에 적용하려고 하니까 아 그게 뭐였지? 하고 다시 찾아봐야 할 필요성을 느꼈다.

마침 자주가는 커뮤니티에서 리뷰이벤트를 하여서 참여했는데 감사하게도 책을 볼 수 있는 기회를 얻었고 쭉 보면서 예전 개념들을 다시 한번 복습하고 있다.

 

책은 예상보다 난이도 있는 내용도 꽤 많이 들어가있었고(공부를 제대로 안해서 그런가 ㅠㅠ) 쉬운 내용들도 잘 정리되어있었다. 글자가 너무 빽빽하지도 않고, 이미지도 적당히 들어가있어서 보기 편하면서 설명이 많이 필요한 부분은 수식이나 사용예시도 잘 나와있었다.

각 개념별로 페이지구성도 백과사전이라는 단어에 걸맞게 보기편하게 잘 되어있었고, 전반적으로 만족스러운 책이다. 헷갈리는 개념등 다시 봐야할 필요가 있을 때 한번씩 보면 도움이 많이 될 것으로 기대한다.

 
 
 

+ Recent posts