소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 컴포넌트 결합 지금 부터 다룰 세 가지 원칙은 컴포넌트 사이의 관계를 설명한다. 개발 가능성과 논리적 설계 사이의 균형을 다룬다. 컴포넌트 구조와 관련된 아키텍처를 침번하는 힘은 기술적이며, 정치적이고, 가변적이다. ADP: 의존성 비순환 원칙...
13장. 컴포넌트 응집도
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 컴포넌트 응집도 어떤 클래스를 어느 컴포넌트에 포함시켜야 할까? 이 장에서는 컴포넌트 응집도와 관련된 세 가지 원칙을 논의한다. REF : 재사용/릴리스 등가원칙(Reuse/Release Equivalence Principle) CCP ...
12장. 컴포넌트 원칙
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 컴포넌트 원칙 컴포넌트는 배포 단위다. 컴포넌트는 시스템의 구성 요소로 배포할 수 있는 가장 작은 단위다. 자바에서는 jar 파일이 컴포넌트이고, 닷넷에서는 DLL이다. 컴포넌트가 가장 마지막에 어떤 형태로 배포되든, 잘 설계된 컴포넌트라면 반...
11장. DIP, 의존성 역전 원칙
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. DIP: 의존성 역전 원칙 의존성 역전 원칙에서 말하는 '유연성이 극대화된 시스템'이란 소스 코드 의존성이 추상(abstraction)에 의존하며 구체(concretion)에는 의존하지 않는 시스템이다. 자바 같은 정적 타입 언어에서는 이 말은 ...
10장. ISP, 인터페이스 분리 원칙
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. ISP: 인터페이스 분리 원칙 인터페이스 분리 원칙은 아래의 다이어그램에서 그 이름이 유래했다. 인터페이스 분리 원칙 User1은 오직 op1을 User2는 op2만을, User3는 op3만을 사용한다고 가정한다. 이 경우 User1...
9장. LSP, 리스코프 치환 원칙
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. LSP : 리스코프 치환 원칙 1988년 바바라 리스코프(Barbara Liskov)는 하위 타입(subtype)을 아래와 같이 정의 했다. S 타입의 객체 o1에 각각에 대응하는 T 타입 객체 o2가 있고, T 타입을 이용해서 정의한 모든 프로...
8장. OCP, 개방-폐쇄 원칙
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. OCP: 개방-폐쇄 원칙 개방-폐쇄 원칙(OCP)이라는 용어는 1988년에 버트란트 마이어(Bertrand Meyer)가 만들었는데, 다음과 같다. 소프트웨어 개체(artifact)는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다. 다...
7장. SRP, 단일 책임 원칙
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. SRP: 단일 책임 원칙 SOLID 원칙 중에서 그 의미가 가장 잘 전달되지 못한 원칙은 바로 단일 책임 원칙(SRP)이다. 프로그래머 입장에서는 모든 모듈이 단 하나의 일만 해야 한다는 의미로 받아들이기 쉽다. 헷갈리면 안된다. 함수가 단 하...
6장. 함수형 프로그래밍
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 함수형 프로그래밍 이 패러다임에서 핵심이 되는 기반은 람다(lambda) 계산법으로 알론조 처치(alonzo Church)가 1930년대에 발명했다. 정수를 제곱하기 함수형 프로그래밍이 무엇인지 설명하기 위해 아래의 예제를 보자 public ...
5장. 객체 지향 프로그래밍
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 객체 지향 프로그래밍 좋은 아키텍처를 만드는 일은 객체지향(OO) 설계 원칙을 이해하고 응용하는 데서 출발한다. 그럼 OO란 무엇인가? “데이터와 함수의 조합”의 답은 o.f()가 왼지 f(o)와 다르다는 의미를 내포하고 있어 별로다. “시렞 ...