소프트웨어를 구축하는 활동
1) 먼저 동작하게 만들어라
-> 소프트웨어가 동작하지 않는다면 사업은 망한다.
2) 그리고 올바르게 만들어라
-> 코드를 리팩터링해서 당신을 포함한 나머지 사람들이 이해할 수 있게 만들고 요구가 변경되거나 요구를 더 잘 이해하게 되었을 때 코드를 개선할 수 있게 만들어라
3) 그리고 빠르게 만들어라
-> 코드를 리팩터링해서 요구되는 성능을 만족시켜라
앱-티튜드 테스트 App-titude test
앱이 동작하도록 만드는 것 -> 프로그래밍에는 단순히 앱을 동작하도록 만드는 것보다 중요한 것이 많다.
타깃-하드웨어 병목현상 target-hardware bottleneck
- 임베디드가 지닌 특수한 문제: 임베디드 코드가 클린 아키텍처 원칙과 실천법을 따르지 않고 작성된다면, 테스트 환경이 해당 특정 타깃으로 국한될 것이다. 그리고 그 타깃이 테스트가 가능한 유일한 장소라면 타깃-하드웨어 병목현상이 발생하여 진척이 느려질 것이다.
-> 몇가지 아키텍처 원칙을 임베디드 소프트웨어와 펌웨어에 적용하여 병목현상을 줄일 수 있다.
계층형 아키텍처
- 하드웨어는 기술의 발전과 무어의 법칙에 따라 변할 것이다.
- 부품은 낡게 되고, 새로운 부품은 적은 전력을 사용하면서도 더 나은 성능을 제공하며, 더 저렴할 것이다.
- 인터페이스를 통해 프로그래밍한다.
- 모듈들이 서로 인터페이스를 통해 상호작용한다면 특정 서비스 제공자를 다른 제공자로 대체할 수 있다.
안티패턴
: 소프트웨어가 펌웨어가 서로 섞이는 일
-> 가벼운 변경에도 시스템 전체 대상으로 회귀 테스트를 전부 실행해야 한다.
HAL (Hard-ware Abstraction Layer)
: 소프트웨어와 펌웨어 사이의 경계인 하드웨어 추상화 계층
OSAL (Operating System Abstraction Layer)
: 운영체제 추상화 계층을 통해 소프트웨어를 운영체제로부터 격리시킨다.
728x90
반응형
'클린아키텍처' 카테고리의 다른 글
[클린아키텍처] 34장 빠져있는 장 (0) | 2022.03.21 |
---|---|
[클린아키텍처] 30장 ~ 32장 데이터베이스, 웹, 프레임워크는 세부사항이다, 33장 사례 연구 (0) | 2022.03.20 |
[클린아키텍처] 28장 테스트 경계 (0) | 2022.03.19 |
[클린아키텍처] 26장 메인 컴포넌트, 27장 크고 작은 모든 서비스들 (0) | 2022.03.16 |
[클린아키텍처] 23장 프레젠터와 험블 객체, 24장 부분적 경계, 25장 계층과 경계 (0) | 2022.03.13 |
댓글