• 마지막으로 시스템을 환경에 특화된 핵심 계층과 환경에 독립적인 주변부 계층으로 나누는 방법입니다. 환경에 특화된 핵심 계층은 개별 환경에 맞게 만들고, 환경에 독립적인 주변부 계층은 모든 환경에서 공유될 수 있도록 만듭니다. 이 방법은 추상화 계층 접근법과 표면적으로 유사해 보이지만, 환경에 특화된 기능은 추상화되지 않기에 별개의 전략으로 볼 수 있습니다. 참고로 환경에 특화된 계층은 환경에 독립적인 로직과 연결하는 데 필요한 만큼만 구체적으로 작성합니다.
이렇게 환경이 다른 경우 해결할 수 있는 몇 가지 표준적인 방법이 있지만, 대부분 엔지니어링 문제와 마찬가지로 모든 상황에 적용할 수 있는 완벽한 해답은 없습니다.
Note ≣ | 추상화 계층
추상화 계층(abstraction layer)은 다양한 환경에서 공통의 인터페이스를 제공하여 개발자가 환경별로 다른 코드를 작성할 필요 없이 통일된 방법으로 소프트웨어를 개발할 수 있게 하는 계층입니다. 예를 들어 유니티(Unity) 게임 엔진은 다양한 플랫폼의 그래픽 렌더링을 지원하려고 자체적으로 그래픽 API 추상화 계층을 사용합니다.