본문 바로가기
클린아키텍처

[클린아키텍처] 29장 클린 임베디드 아키텍처

by bzerome240 2022. 3. 19.

 

소프트웨어를 구축하는 활동

1) 먼저 동작하게 만들어라

-> 소프트웨어가 동작하지 않는다면 사업은 망한다.

2) 그리고 올바르게 만들어라

-> 코드를 리팩터링해서 당신을 포함한 나머지 사람들이 이해할 수 있게 만들고 요구가 변경되거나 요구를 더 잘 이해하게 되었을 때 코드를 개선할 수 있게 만들어라

3) 그리고 빠르게 만들어라 

-> 코드를 리팩터링해서 요구되는 성능을 만족시켜라

 

 

앱-티튜드 테스트 App-titude test

앱이 동작하도록 만드는 것 -> 프로그래밍에는 단순히 앱을 동작하도록 만드는 것보다 중요한 것이 많다.

 

 

타깃-하드웨어 병목현상 target-hardware bottleneck

- 임베디드가 지닌 특수한 문제: 임베디드 코드가 클린 아키텍처 원칙과 실천법을 따르지 않고 작성된다면, 테스트 환경이 해당 특정 타깃으로 국한될 것이다. 그리고 그 타깃이 테스트가 가능한 유일한 장소라면 타깃-하드웨어 병목현상이 발생하여 진척이 느려질 것이다.

-> 몇가지 아키텍처 원칙을 임베디드 소프트웨어와 펌웨어에 적용하여 병목현상을 줄일 수 있다.

 

 

계층형 아키텍처

  • 하드웨어는 기술의 발전과 무어의 법칙에 따라 변할 것이다.
  • 부품은 낡게 되고, 새로운 부품은 적은 전력을 사용하면서도 더 나은 성능을 제공하며, 더 저렴할 것이다.
  • 인터페이스를 통해 프로그래밍한다.
  • 모듈들이 서로 인터페이스를 통해 상호작용한다면 특정 서비스 제공자를 다른 제공자로 대체할 수 있다.

 

안티패턴

: 소프트웨어가 펌웨어가 서로 섞이는 일

-> 가벼운 변경에도 시스템 전체 대상으로 회귀 테스트를 전부 실행해야 한다.

 

HAL (Hard-ware Abstraction Layer)

: 소프트웨어와 펌웨어 사이의 경계인 하드웨어 추상화 계층

 

OSAL (Operating System Abstraction Layer)

: 운영체제 추상화 계층을 통해 소프트웨어를 운영체제로부터 격리시킨다.

 

 

 

 

 

 

728x90
반응형

댓글