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

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

클린 아키텍처 책 표지

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

 

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

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

product.kyobobook.co.kr

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

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

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

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

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

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

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

+ Recent posts