기술도서17 클린 아키텍처 요약 - 3부. 설계원칙 (3) 10장. ISP : 인터페이스 분리 원칙클라이언트가 자신이 사용하지 않는 불필요한 인터페이스에 의존하지 않아야 한다. 인터페이스의 단일 책임 원칙으로 생각해 볼 수 있다.ISP와 아키텍처아래와 같은 구조로 S → F, F → D 의존하고 있다. 이때 D에 결함이 생겼고 F와는 관계없는 기능이라고 하자. 하지만 D의 내부 변경이 일어나면 의존 관계로 인해 F를 재배포할 수도 있다. 더 심각한 문제는 S까지 영향을 준다는 사실이다.System (S) → Framework (F) → Database (D) 결론불필요한 무언가에 의존하면 예상치 못한 문제에 빠진다. 11장. DIP : 의존성 역전 원칙추상에 의존하며 구체에는 의존하지 않는다. 안정된 추상화변동성이 큰 구체 클래스를 참조하지 않기.변동성이 큰 구.. 2024. 6. 29. 클린 아키텍처 요약 - 3부. 설계원칙 (2) 8장. OCP : 개방 폐쇄 원칙 확장에는 열려있고 변경에는 닫혀 있어야 한다. 사고실험 OCP는 모듈 설계 뿐만 아니라 컴포넌트 수준에서도 중요한 의미를 가진다. 사고 실험을 통해 이해해보자. '재무제표 보고 시스템'을 만든다고 생각해보자. 프로세스 : 재무데이터 → (재무분석) → 보고용 재무데이터 → 웹 표시 or 프린터 출력 목적을 달성하기 위해 처리과정을 컴포넌트 단위로 구분해보면 아래와 같다. (색이 들어간 네모박스가 컴포넌트 임) 컴포넌트 단위 분리 설명 재무제표 보고 시스템을 위해 View, Presenter, Controller, Interactor, Database 5개의 컴포넌트 생성. 컴포넌트간 관계 의존(화살표)은 오직 한 방향으로만 표시된다. Controller와 Database.. 2024. 4. 22. 클린 아키텍처 요약 - 3부 설계원칙 (1) 좋은 아키텍처를 정의하는 원칙은 SOLID다. SOLID는 1980년대 유즈넷(과거 페이스북)에서 설계 원칙을 모아 탄생시켰다. 이 원칙의 목적은 '중간수준'의 소프트웨어 구조가 아래와 같도록 만드는 것이다. 변경에 유연 이해하기 쉬움 많은 소프트웨어에 사용될 수 있는 컴포넌트 중간수준 뜻 : 개발자가 모듈 수준에서 작업할 때 적용할 수 있다는 뜻. SOLID 요약 SRP (Single Responsibillity Principle, 단일책임원칙) 모듈 변경의 이유는 하나여야 함. OCP (Open Closed Principle, 개방-폐쇄 원칙) 코드를 수정하기 보단 새로운 코드를 추가하는 방식으로설계해야 함. LSP (Liskov Subsitution Principle, 리스코프 치환 원칙) 소스트웨.. 2024. 3. 12. 클린 아키텍처 요약 - 2부 벽돌부터 시작하기:프로그래밍 패러다임 개인적 견해는 기울임꼴로 작성했다. 2부. 벽돌부터 시작하기 프로그래밍 패러다임 3장. 패러다임 구조적 프로그래밍 무분별한 점프 구조(goto)의 해로움을 깨닫고 if, while등 더 익숙한 구조로 대체했다. 제어흐름의 직접적인 전환에 규칙을 부과했다. 객체지향 프로그래밍 객체 지향 프로그래밍은 제어흐름의 간접적인 전환에 부과되는 규율이다. 함수 포인터를 특정 규칙에 따라 사용하는 과정을 통해 필연적으로 다형성이 등장하게 되었다. 함수 호출 스택 프레임을 힙(heap)으로 옮기면, 함수 호출 반환 후에도 함수에서 선언된 지역변수가 오랫동안 유지될 수 있음을 발견했다. 함수 로드 방식을 스택에서 힙으로 바꾸면서 소멸했던 함수가 유지 가능해졌다. 이는 객체지향을 가능케하는 출발점으로 보인다. 함수형 프로그.. 2024. 2. 26. 클린 아키텍처 요약 - 1부 소개 개인적 견해는 기울임꼴로 작성했다. 서문 아키텍처의 규칙은 동일하다. 현재의 소프트웨어는 과거와 동일한 것들로 구성되어 있다. 하드웨어는 더 작고 빨라졌지만 소프트웨어를 구성하는 것돌은 조금도 바뀌지 않았다. 아키텍처의 원칙은 보편적이며 시간이 지나더라도 변함이 없다. 앨런 튜링이 최초로 기계어 코드를 작성한 1946년에서 달라지지 않았다. 과거에는 규칙을 몰랐거나 어겼을 뿐이다. 이 책은 세월이 흘러도 변치 않는 그 규칙에 관한 것이다. 1부. 소개 1장. 설계와 아키텍처란? 설계와 아키텍처의 차이는? 설계와 아키텍처 둘 사이에는 아무런 차이가 없다. 설계를 저수준, 아키텍처를 고수준을 의미하는 용어로 자주 사용되지만 무의하다. 이 둘은 단절없이 이어진 직물과 같으며 개별로 존재할 수 없다. 고수준에서.. 2024. 2. 19. 이전 1 2 3 다음