본문 바로가기

독서/클린 아키텍처7

클린 아키텍처 6부. 세부사항 30장. 데이터베이스는 세부사항이다.아키텍처 관점에서 볼 때 데이터베이스는 엔티티가 아닌 세부사항이라서 아키텍처 구성요소 수준으로 끌어올릴 수 없다.애플리케이션 내부 데이터의 구조는 시스템 아키텍처에서 대단히 중요하지만, 데이터베이스는 데이터 모델이 아니다.데이터베이스는 일개 소프트웨어이며 데이터에 접근할 방법을 제공하는 유틸리티임아키텍처 관점에서 유틸리티는 저수준의 세부사항일 뿐이라서 아키텍처와 관련이 없다. 관계형 데이터베이스관계형 데이터베이스가 뛰어나든, 유용하든 결국 기술일 뿐이고 이는 관계형 데이터베이스가 세부사항임을 뜻한다.데이터를 행 뒨으로 배치한다는 자체는 아키텍처에서 중요하지 않으며 유스케이스는 알아서도, 관여해서도 안된다.데이터가 테이블 구조를 가진다는 사실은 아키텍처 외부 원에 위치한.. 2024. 7. 28.
클린 아키텍처 5장. 아키텍처 - 2 22장. 클린 아키텍처지난 수십년간 시스템 아키텍처와 관련된 여러 가지 아이디어가 나왔다.육각형 아키텍처(Hexagonal Architecture)DCI(Data, Content and Interaction)BCE(Boundary-Control-Entity)위 아키텍처는 모두 시스템이 다음과 같은 특징을 지닌다.프레임워크 독립성 : 아키텍처는 프레임워크를 도구로 사용하며, 프레임워크가 지닌 제약사항으로 시스템을 강제하지 않는다. 즉, 프레임워크 존재 여부에 의존하지 않는다.테스트 용이성 : 업무 규칙은 UI, DB, 웹 서버, 기타 외부 요소가 없이 테스트할 수 있다.UI 독립성 : 시스템의 변경 없이 UI를 쉽게 변경할 수 있다.데이터베이스 독립성 : 오라클이나 MS-SQL 서버 등을 다른 DB로 교체.. 2024. 7. 24.
클린 아키텍처 5부. 아키텍처 - 1 15장. 아키텍처란?소프트웨어 시스템의 아키텍처는 시스템을 구축했던 사람들이 만들어낸 시스템의 형태다.모양은 컴포넌트로 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트가 서로 의소통 하는 방식에 따라 정해짐형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수되도록 만들어짐이러한 일을 용이하게 만들기 위해서는 가능한 한 많은 선택지를, 가능한 한 오래 남겨두는 전략을 따라야 한다.아키텍처의 주된 목적은 시스템의 생명주기를 지원하는 것좋은 아키텍처는 시스템을 쉽게 이해, 개발, 유지보수, 배포할 수 있게 해준다.아키텍처의 궁극적인 목표는 시스템의 수명과 관련된 비용은 최소화하고, 프로그래머의 생산성은 최대화하는 데 있음. 개발부터 유지보수까지개발팀 규모가 적다면 아키텍.. 2024. 7. 24.
클린 아키텍처 4부. 컴포넌트 원칙 SOLID 원칙이 벽과 방에 벽돌을 배치하는 방법을 알려준다면, 컴포넌트 원칙은 빌딩에 방을 배치하는 방법이다.큰 빌딩과 마찬가지로 대규모 소프트웨어 시스템은 작은 컴포넌트들로 만들어진다. 12장. 컴포넌트컴포넌트는 시스템의 구성 요소로 배포할 수 있는 가장 작은 단위이다.(jar, gem, DLL)컴포넌트는 다양한 형태로 만들어질 수 있다.여러 컴포넌트를 서로 링크하여 실행 가능한 단일 파일로 생성할 수 있다.여러 컴포넌트를 묶어서 war 파일과 같은 단일 아카이브로 만들 수 있다.컴포넌트 각각을 jar와 같이 동적으로 로드할 수 있는 플러그인이나 실행 가능한 파일로 만들어 독립적으로 배포할 수도 있다.컴포넌트가 최종적으로 어떤 형태로 배포되든, 잘 설계된 컴포넌트라면 반드시 독립적으로 개발 가능해야 .. 2024. 7. 21.