minho Yoo's blog

프레임워크는 세부사항이다

32. 프레임워크는 세부사항이다 프레임워크는 아키텍처가 될 수 없다. 프레임워크 제작자 프레임워크는 당신이 풀어야 할 특별한 관심사를 염두에 두지 않는다. 물론 당신의 문제는 프레임워크가 풀려는 문제와 꽤 많이 겹친다. 혼인 관계의 비대칭성 당신은 프레임워크를 위해 대단히 큰 헌신을 해야 하지만, 프레임워크 제작자는 당신을 위해 아무런 헌신...

데이터베이스는 세부사항이다

30. 데이터베이스는 세부사항이다 아키텍처 관점에서 볼 때 데이터베이스는 엔티티가 아니다. 데이터베이스는 데이터에 접근할 방법을 제공하는 유틸리티일 뿐 관계형 데이터베이스 관계형 데이터베이스는 세부사항임 데이터가 테이블 구조를 가진다는 사실은 오직 아키텍처의 외부 원에 위치한 최하위 수준의 유틸리티 함수만 알아야 함 데이터베이스 시스템은 왜...

클린 임베디드 아키텍처

29. 클린 임베디드 아키텍처 소프트웨어는 닳지 않지만, 펌웨어와 하드웨어는 낡아 가므로 결국 소프트웨어도 수정해야 한다. 소프트웨어는 닳지 않지만, 펌웨어와 하드웨어에 대한 의존성을 관리하지 않으면 안으로부터 파괴될 수 있다. ROM에 상주하는 코드만이 펌웨어는 아니다. 무엇에 의존하는지, 그리고 하드웨어 발전에 맞춰 수정하기가 얼마나 어려운...

테스트 경계

28. 테스트 경계 시스템 컴포넌트인 테스트 아키텍처 관점에서 모든 테스트는 동일 테스트는 태생적으로 의존성 규칙을 따른다. 의존성은 항상 테스트 대상이 되는 코드를 향함 시스템 내부의 어떤 것도 테스트에는 의존하지 않으며, 테스트는 시스템의 컴포넌트를 향해 항상 원의 안쪽으로 의존 테스트는 독립적으로 배포 가능 테스트는 시스템 컴포넌트 ...

'크고 작은 모든' 서비스들

27. ‘크고 작은 모든’ 서비스들 서비스 지향 아키텍처와 마이크로서비스 아키텍처는 최근에 큰 인기을 얻고 있는 이유 서비스를 사용하면 상호 결합이 철저하게 분리되는 것처럼 보인다. 사실 일부만 맞는 말 서비스를 사용하면 개발과 배포 독립성을 지원하는 것처럼 보인다. 사실 일부만 맞는 말 서비스 아키텍처 서비스 그 자체로는 아키텍처를...

메인(Main) 컴포넌트

26. 메인(Main) 컴포넌트 모든 시스템에는 최소한 하나의 컴포넌트가 존재하고, 이 컴포넌트가 나머지 컴포넌트를 생성하고, 조정하며, 관리한다. -> 메인 컴포넌트 궁극적인 세부사항 메인 컴포넌트는 궁극적인 세부사항으로, 가장 낮은 수준의 정책 의존성 주입 프레임워크를 이용해 의존성을 주입하는 일은 바로 이 메인 컴포넌트에서 이뤄져야 ...

부분적 경계

24. 부분적 경계 마지막 단계를 건너뛰기 부분적 경계를 생성하는 방법 하나는 독립적으로 컴파일하고 배포할 수 있는 컴포넌트를 만들기 위한 작업은 모두 수행한 후, 단일 컴포넌트에 그대로 모아만 두는 것이다. 이처럼 부분적 경계를 만들려면 완벽한 경계를 만들 때 만큼의 코드량과 사전 설계가 필요하다. 하지만 다수의 컴포넌트를 관리하는 작업은 하...