25장 계층과 경계 시스템은 세가지 컴포넌트 (UI,업무 규칙, 데이터베이스)로 구성되어있다고 생각할 수 있지만, 실제로는 훨씬 많다. 움퍼스 사냥 게임 게임 규칙은 게임의 상태를 영속성을 가지는 특정한 데이터 구조로 저장한다. UI 컴포넌트가 어떤 언어를 사용해도 게임 규칙을 재사용 가능. 데이터 저장소 또한, 고수준인 게임 규칙을 의존하는 형태이다. 클린 아키텍처? 잠재된 아키텍쳐 경계를 존재할 수 있다. 이를 그림으로 나타내면 다음과 같다. 점선으로 된 테두리 : API를 정의하는 추상 컴포넌트 해당 API는 위나 아래의 컴포넌트가 대신 구현한다. 그리고 api는 구현하는 쪾이 아닌, 사용하는 쪽에 정의되고 소속된다. EX) Game Rules 내부 코드에서 사용하나 Language 내부 코드에서 ..
클린 아키텍쳐 5장 ****객체 지향(Objected - Oriented)의 본질은 무엇인가?**** 캡슐화? 객체 지향 언어는 데이터와 함수를 쉽고 효과적으로 캡슐화하는 방법을 제공한다. 이를 통해 데이터와 함수가 응집력 있게 구성된 집단을 서로 구분 짓는 선을 그을 수 있다. 구분선 바깐에서 데이터는 은닉되고, 일부 함수만이 노출된다. c언어에서도 데이터 구조와 함수를 헤더파일(노출부)에 선언하고, 구현 파일(은닉부)에서 구현하는 방식으로 캡슐화를 지킬 수 있다. 상속화? 객체 지향 언어는 캡슐화를 강제하지 않지만, 상속은 확실히 제공한다. C언어에서는 상속을 흉내낼 수 있을 뿐, 상속의 기능을 제공하진 않았따. 다형성? 다형성은 기존에 존재하던 함수 포인터를 응용한 것이다. 다형성의 매력은 , 의존..