용어 정리
고수준
상위 수준의 개념, 추상화된 개념
예시: 데이터를 저장한다. 구역 배달료를 구한다
저수준
추상화된 개념을 실제 어떻게 구현할지에 대한 세부적인 개념
예시: RDB에 데이터를 저장한다. 폴리곤 구역에 속한 배달건에 대해 배달료를 구한다
시스템 아키텍쳐
지난 몇 년 동안 우리는 시스템 아키텍처에 관한 모든 범위의 아이디어를 보았고 리스트는 다음과 같다.
이러한 아키텍처는 모두 세부 사항이 약간 다르지만 매우 유사하다. 그들은 모두 관심사의 분리라는 동일한 목표를 가지고 있고 소프트웨어를 계층으로 나누어 이러한 분리를 달성한다. 각각에는 비즈니스 규칙용 레이어와 인터페이스용 레이어가 하나씩 있다.
이러한 각 아키텍처는 다음과 같은 시스템을 생성한다.
- 프레임워크와 무관하다. 아키텍처는 기능이 포함된 소프트웨어의 일부 라이브러리의 존재에 의존하지 않는다. 이를 통해 시스템에 제한된 제약 조건을 가두지 않고 이러한 프레임워크를 도구로 사용할 수 있다.
- 테스트 가능. 비즈니스 규칙은 UI, 데이터베이스, 웹 서버 또는 기타 외부 요소 없이 테스트할 수 있다.
- UI와 무관하다. UI는 시스템의 나머지 부분을 변경하지 않고도 쉽게 변경할 수 있습니다. 예를 들어 비즈니스 규칙을 변경하지 않고 웹 UI를 콘솔 UI로 교체할 수 있다.
- 데이터베이스에 독립적이다. Oracle 또는 SQL Server를 Mongo, BigTable, CouchDB 또는 다른 것으로 교체할 수 있다. 비즈니스 규칙은 데이터베이스에 바인딩되지 않는다.