IT/책

[Clean Architecture] 1달1권, 두번째 책 후기

Terriermon 2022. 1. 7. 00:31

두번째 책을 마치고

두번째 책은 클린 아키텍처, 클린 코드에 뒤이어서 '클린'이란 무엇일까라는 의문점을 풀기 위해 읽었다. 다 읽은 지는 약 이주가 되었지만 뒤늦게 후기를 남긴다.

 

 

결론부터 말하자면

클린 코드에 비해 클린 아키텍처는 더 포괄적이었다. 클린 코드는 포괄적이었지만 예시와 함께 말하고자 하는 바를 명확히 알 수 있었는데, 클린 아키텍처는 조금 어려웠다. 내가 아키텍처적인 지식이 부족한 것일까?

 

다시 한 번 읽어봐야 하는 것은 분명하다. 아키텍처 지식이 부족한 상태에서 읽은 책은 난해하고 어려웠을 뿐이다.

 

그래서 별점을 말하자만 2/5 이다.

 

 

클린 아키텍처는 설계 원칙에 대해 말한다.

클린 아키텍처의 기본, 설계원칙. 회사를 다니면서 설계원칙에 대해 깊게 생각할 수 없다. 설계 단계는 대부분 위에서 주어진다. 특히, SI를 하는 나는 주어진 것에 맞춰 코드를 짤 뿐이다.

 

그래서 생소하면서도 아, 다음에 프로젝트를 하면 이런 것을 적용시켜봐야겠구나, 라는 생각을 할 수 있었다.

더보기

SRP: 단일 책임 원칙

- 소프트웨어 모듈은 변경 이유가 하나여야 함

 

OCP: 개방-폐쇄 원칙

- 기존 코드를 수정하기 보다 새로운 코드를 추가하는 방법으로 행위를 변경해야 함

 

LSP: 리스코프 치환 원칙

- 상호 대체 가능한 구성요소를 이용해 소프트웨어 시스템을 만들 수 있으려면, 구성요소는 반드시 서로 치환 가능해야 함

 

ISP: 인터페이스 분리 원칙

- 소프트웨어 설계자는 사용하지 않은 것에 의존하지 않아야 함

 

DIP: 의존성 역전 원칙

- 고수준 정책을 구현하는 코드는 저수준 세부사항을 구현하는 코드에 의존해서는 안됨

> 세부사항이 정책에 의존

이 5가지 원칙을 종합하면, 서로 의존하지 않고 항상 분리되게, 그리고 항상 확장 가능하도록 아키텍처를 설계해야 한다는 것이다.

 

그리고 이것은 비단 아키텍처 뿐만 아니라 코드에서도 적용되는 원칙이다. 우리는 절대 프레임워크에, 언어에, DB에 종속되어서는 안된다.

 

 

그렇다면 종속을 최소화 하기 위해서는?

책을 읽으면서 가장 궁금했던 점이었다. 해당 원칙들을 지키면서 종속을 최소화 하려면 어떻게 해야하는가

 

결론은, 책에는 명확하게 나와있지 않았다. 아키텍처를 본격적으로 구상해본 적 없는 나는, 책에서 하는 말들은 너무 뜬구름 잡는 이야기였다. 그래서 실제로 저 원칙을 지켜서 아키텍처를 만들면 어떻게되는데? 라는 예시에 대한 구체성이 없다.

 

실제 프로젝트를 하면서, 책을 다시 읽어봐야 한다. 요약본이라도.

 

 

기억에 남는건...

결국 위 5가지의 원칙과 프레임워크, DBMS 등은 부수적인 것이므로 제일 마지막에 정해야 한다는 것.

 

다양한 패턴, 규칙들이 나오긴 했지만 실제 적용까지는 많이 힘들 것 같다.

 

아키텍처를 해보지 않은 사람에게는 불친절한 책이었다.

 

 

 

다음 책은 면접이다.

코딩인터뷰 완전분석은 구글, 아마존 등 해외 IT 기업들의 면접을 위해서 만들어진 책이다. 그러나 요즘 우리나라에서도 추세를 따라가면서 해당 책에 있는 몇 문제가 나온다.

면접과 동시에 공부를 할 수 있는 책이기를 바랄 뿐이다.