본문 바로가기
SW

클린 아키텍처:소프트웨어 구조와 설계의 원칙(Clean Architecture) (서문)

by 라꾸스떼(YR) 2020. 2. 22.
반응형

[추천사]

아키텍처의 매력은 그 구조에 있다. 구조란 패러다임을 지배하고 소프트웨어 개발의 논의를 지배하는 무언가로서, 컴포넌트, 클래스, 함수, 모듈, 계층, 서비스가 그 예다.

소프트웨어는 무엇으로 구성되는가? 건축물과는 다르다. 소프트웨어는 소프트웨어로 구성된다. 큰 소프트웨어 구조물은 작은 소프트웨어 컴포넌트로 만들어지며, 이 컴포넌트는 더 작은 컴포넌트로 만들어지고, 계속 이런 식이다.

비록 소프트웨어 아키텍처에서 물리학이나 물리적인 규모를 말하는 것은 의미가 없더라도, 우리가 반드시 인정하고 신경 써야 할 물리적인 제약은 분명 존재한다. 프로세서 속도와 네트워크 대역폭은 시스템 성능을 한정 짓는 결정적 제약이 될 수 있다. 메모리와 스토리지는 코드 베이스의 야욕을 꺾어 버릴 수 있다. 소프트웨어는 마치 꿈을 구성하는 재료와 같지만, 실행되는 곳은 물리적인 세계다.

 

[서문]

현재의 소프트웨어는 과거와 동일한 것들로 구성된다. 여전히 if문, 할당문, while 루프로 구성된다.

코드는 그다지 바뀌지 않았다. 이처럼 코드가 변하지 않았다는 사실이 시스템의 종류와 관계없이 소프트웨어 아키텍처의 규칙이 일관된 이유다. 소프트웨어 아키텍처의 규칙이란 프로그램의 구성요소를 정렬하고 조립하는 방법에 관한 규칙이다. 그리고 이 구성요소가 보편적이며 변하지 않았으므로, 이들을 정렬하는 규칙 역시도 보편적이며 변한 것이 없다.

규칙은 바뀌지 않았다. 그 모든 새로운 언어, 그 모든 새로은 프레임워크, 그 모든 패러다임에도 불구하고, 이 규칙은 앨런 튜링이 최초로 기계어 코드를 작성한 1946년에서 달라지지 않았다.

반응형

댓글