이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 30장. 데이터베이스는 세부사항이다. [ 서론 ] 아키텍처 관점에서 데이터베이스는 엔티티가 아닌 세부사항이라서 아키텍처의 구성 요소 수준으로 끌어올릴 수 없음 애플리케이션 내부 데이터의 구조는 시스템 아키텍처에서 대단히 중요하지만 데이터베이스는 데이터 모델이 아님 데이터베이스는 소프트웨어이자 유틸리티인 저수준의 세부사항(메커니즘)일 뿐이라서 아키텍트와 관련이 없음 뛰어난 아키텍트라면 저수준의 메커니즘이 시스템 아키텍처를 오염시키는 일을 용납하지 않음 [ 관계형 데이터베이스 ] 관계형 데이터베이스는 데이터를 저장하고 접근하는데 탁월한 기술이지만 결..
이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 15장. 아키텍처란? [ 서론 ] 소프트웨어 시스템의 아키텍처란 시스템을 구축했던 사람들이 만들어낸 시스템의 형태임 그 모양은 시스템을 컴포넌트로 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트의 의사소통하는 방식에 따라 정해짐 그 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수되도록 만들어짐 “이러한 일을 용이하게 만들기 위해서는 가능한 많은 선택지를, 가능한 오래 남겨두는 전략을 따라야한다.” 소프트웨어 아키텍처의 목표는 시스템을 제대로 동작하도록 만드는것도 중요하지만 시스템의 생명주기를 지원하는 ..
이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 0. 서론 [ 도입 ] SOLID 원칙이 벽과 방에 벽돌을 배치하는 방법을 알려준다면, 컴포넌트 원칙은 빌딩에 방을 배치하는 방법을 설명해줌 큰 빌딩과 마찬가지로 대규모 소프트웨어 시스템은 작은 컴포넌트들로 만들어짐 소프트웨어 컴포넌트와 컴포넌트를 구성하는 요소가 무엇인지, 컴포넌트를 결합하여 시스템을 구성하는 방법에 대해 논의함 12장. 컴포넌트 [ 서론 ] 컴포넌트는 시스템의 구성 요소로 배포할 수 있는 가장 작은 단위이며, 자바의 경우 jar 파일이 컴포넌트임 컴포넌트는 다양한 형태로 만들어질 수 있음 여러 컴포넌트를 서로 링크하여 실행 가..
이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 0. 서론 [ 도입 ] SOLID는 함수와 데이터 구조를 클래스로 배치하는 방법, 그리고 클래스들을 서로 결합하는 방법을 설명해줌 SOLID는 객체 지향 소프트웨어에만 적용되지는 않음, 클래스는 단순히 함수 + 데이터의 집합을 의미함 SOLID의 목적은 중간 수준(코드보다 상위 수준인 모듈과 컴포넌트 내부)의 소프트웨어 구조가 다음과 같도록 만드는데 있음 변경에 유연함 이해하기 쉬움 많은 소프트웨어 시스템에서 사용되는 컴포넌트의 기반이 됨 참고로 도입 부분에 중요한 부분이 있는데, "좋은 소프트웨어 시스템은 깔끔한 코드로부터 시작한다. 좋은 벽돌..
이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 3장. 패러다임 개요 [ 구조적 프로그래밍 ] 최초로 만들어진 패러다임은 아니지만 최초로 적용된 패러다임(1968년 다익스트라) 다익스트라는 무분별한 점프(goto 문법)는 프로그램 구조에 해롭다는 사실을 제시함 대신 if/then/else와 do/while/until과 같은 더 익숙한 구조로 대체함 구조적 프로그래밍은 제어흐름의 직접적인 전환에 대해 규칙을 부과하는 패러다임 "직접적인 전환에 대한 규칙을 부과한다"는 의미는 goto 문으로 코드를 직접 넘나드는 것을 막는다는 뜻이다. 이는 언어 차원에서 goto 문법을 지원하지 않음으로써 자연스..