본문 바로가기

로버트 C. 마틴(Robert C. Martin)38

클린 아키텍처:소프트웨어 구조와 설계의 원칙(Clean Architecture) - 1부 : 소개 (1장) 프로그램을 동작하게 만들기는 그리 어려운 일이 아니다. 하지만 프로그램을 제대로 만드는 일은 전혀 다르다. 제대로 된 소프트웨어를 만들면 아주 적은 인력만으로도 새로운 기능을 추가하거나 유지보수할 수 있다. 변경은 단순해지고 빠르게 반영할 수 있다. 결함은 적어지고 잦아든다. 아주 사소한 변경에도 몇 주가 걸릴 뿐만 아니라 큰 위험을 감수해야 하지는 않았나? 잘못된 코드와 끔찍한 설계로 인해 방해를 받지 않았나? 형편없는 소프트웨어 구조로 인해 실패한 적은 없었나? 프로그래밍 지옥을 경험하지 않았나? 훌륭한 소프트웨어 설계를 바탕으로 작업하면서 즐거움을 느끼기보다는, 형편없는 소프트웨어 설계와 맞서 싸우는 일을 훨신 더 자주 맞닥뜨린다. [1장] 설계와 아키텍처란? 설계(design)와 아키텍처(arch.. 2020. 2. 23.
클린 아키텍처:소프트웨어 구조와 설계의 원칙(Clean Architecture) (서문) [추천사] 아키텍처의 매력은 그 구조에 있다. 구조란 패러다임을 지배하고 소프트웨어 개발의 논의를 지배하는 무언가로서, 컴포넌트, 클래스, 함수, 모듈, 계층, 서비스가 그 예다. 소프트웨어는 무엇으로 구성되는가? 건축물과는 다르다. 소프트웨어는 소프트웨어로 구성된다. 큰 소프트웨어 구조물은 작은 소프트웨어 컴포넌트로 만들어지며, 이 컴포넌트는 더 작은 컴포넌트로 만들어지고, 계속 이런 식이다. 비록 소프트웨어 아키텍처에서 물리학이나 물리적인 규모를 말하는 것은 의미가 없더라도, 우리가 반드시 인정하고 신경 써야 할 물리적인 제약은 분명 존재한다. 프로세서 속도와 네트워크 대역폭은 시스템 성능을 한정 짓는 결정적 제약이 될 수 있다. 메모리와 스토리지는 코드 베이스의 야욕을 꺾어 버릴 수 있다. 소프트웨.. 2020. 2. 22.