소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 구조적 프로그래밍 증명 데이크스트라는 초기에 인식한 문제는 프로그래밍은 어렵고, 프로그래머는 프로그래밍을 잘하지 못한다는 사실이었다. 데이크스트라는 연구를 진행하면서 goto 문장이 모듈을 더 작은 단위로 재귀적으로 분해하는 과정에 방해가 되는...
3장. 패러다임 개요
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 패러다임 개요 구조적 프로그래밍(Structured Programming) 최초로 적용된 패러다임은 구조적 프로그래밍으로, 1968년 에츠허르 비버 데이크스트라(Edsger Wybe Dijkstra)가 발견했다. 데이크스트라는 무분별한 점프(g...
EF Core Fluent API Entity Configuration
소개 이번 포스트는 EF Core에서 Fluent API 패턴을 기반으로 한 Entity Configuration에 대해 정리하도록 하겠습니다. Entity Configuration Entity Configuration은 테이블 및 관계 매핑에 대해 구성합니다. PrimaryKey(기본 키), AlternateKey(대체 키), Index, T...
2장. 두 가지 가치에 대한 이야기
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 두 가지 가치에 대한 이야기 모든 소프트웨어 시스템은 이해관계자에게 서로 다른 두 가지 가치를 제공하는데, 행위(behavior)와 구조(structure)가 바르 그것이다. 행위 소프트웨어의 첫 번째 가치는 바로 행위(behavior)다. 프...
1장. 설계와 아키텍처란?
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 설계와 아키텍처란? 설계(design)와 아키텍처(architecture)는 어떤 차이가 있는가? 아키텍처는 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬때 사용 된다. 반면, 설계는 저수준의 구조 또는 결정사항 등을 의미 할 때가 많다...
First Class Collection(일급 컬렉션)
참조 객체지향 생활 체조 9가지 First Class Collection 소개 최근 DDD를 공부하면 일급 컬렉션이라는 단어가 나와 찾아보게 되었습니다. 일급 컬렉션은 마틴 파울러가 쓴 소트웍스 앤솔러지 : 소프트웨어 기술과 혁신에 관한 에세이의 객체지향 생활체조 파트에서 언급되는 8번째 규칙입니다. 일급 컬렉션이란? Co...
12장. 아키텍처 스타일 결정하기
소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 아키텍처 스타일 결정하기 언제 실제로 육각형 아키텍처 스타일을 사용해야 할까? 언제 육각형 아키텍처 스타일 대신 전통적인 계층형 아키텍처 스타일을 고수 해야 할까? 이 두가지가 가장 궁극적인 질문 이다. 도메인이 왕이다. 외부의 영향을 받지...
11장. 의식적으로 지름길 사용하기
소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 의식적으로 지름길 사용하기 절대 갚을 길 없는 기술 부채를 쌓아가면서 항상 지름길의 유혹을 느낀다는 사실을 저주한다. 지름길을 방지하기 위해서는 먼저 지름길 자체를 파악해야 한다. 왜 지름길은 깨진 창문 같을까? 1969년 심리학자 필립 짐바르도(Phili...
10장. 아키텍처 경계 강제하기
소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 아키텍처 경계 강제하기 일정 규모 이상의 모든 프로젝트에서는 시간이 지나면서 아키텍처가 서서히 무너지게 된다. 계층 간의 경계가 약화되고, 코드는 점점 더 테스트하기 어려워지고, 새로운 기능을 구현하는 데 점점 더 많은 시간이 든다. 경계와 의존성 ...
9장. 애플리케이션 조립하기
소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 애플리케이션 조립하기 유스케이스, 웹 어댑터, 영속성 어댑터를 구현해봤으니, 이제 이것들을 동작하는 애플리케이션으로 조립하는 차례이다. 왜 조립까지 신경 써야 할까? 필요할때 마다 인스턴스화 시켜서 사용하지 않는 것은 의존성이 올바른 방향을 가리키게 하기 위...