DDD(42)
-
3장. 패러다임 개요
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 패러다임 개요 구조적 프로그래밍(Structured Programming) 최초로 적용된 패러다임은 구조적 프로그래밍으로, 1968년 에츠허르 비버 데이크스트라(Edsger Wybe Dijkstra)가 발견했다. 데이크스트라는 무분별한 점프(goto)는 프로그래밍에 해롭다는 사실을 제시하고 if/then/else와 do/while/until 과 같은 더 익숙한 구조로 대체 했다. 구조적 프로그래밍은 제어흐름의 직접적인 전환에 대해 규칙을 부과 한다. 객체 지향 프로그래밍(Object-Oriented Programming) 1966년, 올레 요한 달(Ole Johan Dahi)과 크리스텐 니가드(Kristen ..
2023.05.19 -
2장. 두 가지 가치에 대한 이야기
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 두 가지 가치에 대한 이야기 모든 소프트웨어 시스템은 이해관계자에게 서로 다른 두 가지 가치를 제공하는데, 행위(behavior)와 구조(structure)가 바르 그것이다. 행위 소프트웨어의 첫 번째 가치는 바로 행위(behavior)다. 프로그래머를 고용하는 이유는 이해관계자를 위해 기계가 수익을 창출하거나 비용을 절약하도록 만들기 위해서다. 이를 위해 프로그래머는 이해관계자가 기능 명세서나 요구사항 문서를 구체화 할 수 있도록 돕는다. 많은 개발자들이 기계를 구현하고 버그를 수정하는 일이 자신의 직업이라고 믿지만 틀렸다. 아키텍처 소프트웨어의 두 번째 가치는 소프트웨어(software)와 관련 있다. 부..
2023.05.18 -
1장. 설계와 아키텍처란?
소개 클린아키텍처: 소프트웨어 구조와 설계의 원칙 책을 읽고 정리하며 소감을 적는 포스트입니다. 설계와 아키텍처란? 설계(design)와 아키텍처(architecture)는 어떤 차이가 있는가? 아키텍처는 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬때 사용 된다. 반면, 설계는 저수준의 구조 또는 결정사항 등을 의미 할 때가 많다. 소프트웨어 설계에서 저수준의 세부사항과 고수준의 구조는 모두 소프트웨어 전체 설계의 구성요소다. 이 둘은 단절 없이 이어진 직물과 같으며, 이를 통해 대상 시스템의 구조를 정의한다. 개별로는 존재할 수 없고, 실제로 이 둘을 구분 짓는 경계가 뚜렿하지 않다. 고수준에서 저수준으로 향하는 의사결정의 연속성만 있을 뿐이다. 목표는? 소프트웨어 아키텍처의 목표는 필요한 시..
2023.05.18 -
First Class Collection(일급 컬렉션)
참조 객체지향 생활 체조 9가지 First Class Collection 소개 최근 DDD를 공부하면 일급 컬렉션이라는 단어가 나와 찾아보게 되었습니다. 일급 컬렉션은 마틴 파울러가 쓴 소트웍스 앤솔러지 : 소프트웨어 기술과 혁신에 관한 에세이의 객체지향 생활체조 파트에서 언급되는 8번째 규칙입니다. 일급 컬렉션이란? Collection을 Wrapping하면서, 그 외 다른 변수가 없는 클래스의 상태를 일급 컬렉션이라고 합니다. 예를 들어 아래의 좌측 코드를 우측 코드로 변경 된 것을 일급 컬렉션이라고 합니다. 그냥 봐서는 Emails라는 Class는 왜 만들어서 코드의 양만 늘어나게 했는지 의아해 할 수도 있습니다. 일급 켈렉션의 이점은 아래 같습니다. 1. 비즈니스에 종속적인 자료구조 상위 클래스(U..
2023.05.16 -
12장. 아키텍처 스타일 결정하기
소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 아키텍처 스타일 결정하기 언제 실제로 육각형 아키텍처 스타일을 사용해야 할까? 언제 육각형 아키텍처 스타일 대신 전통적인 계층형 아키텍처 스타일을 고수 해야 할까? 이 두가지가 가장 궁극적인 질문 이다. 도메인이 왕이다. 외부의 영향을 받지 않고 도메인 코드를 자유롭게 발전시킬 수 있다는 것은 육각형 아키텍처 스타일이 내세우는 가장 중요한 가치다! 육각형 스타일과 같은 도메인 중심의 아키텍처 스타일은 DDD의 조력자라고까지 말할 수 있다. 도메인을 중심에 두는 아키텍처 없이는, 또 도메인 코드를 향한 의존성을 역전시키지 않고서는, DDD를 제대로 할 가능성이 없다. 즉, 설계가 항상 다른 요소들에 의해 주도되고 말 것이다...
2023.05.15 -
11장. 의식적으로 지름길 사용하기
소개 만들면서 배우는 클린 아키텍처 책을 읽고 정리하며 소감을 적는 포스트입니다. 의식적으로 지름길 사용하기 절대 갚을 길 없는 기술 부채를 쌓아가면서 항상 지름길의 유혹을 느낀다는 사실을 저주한다. 지름길을 방지하기 위해서는 먼저 지름길 자체를 파악해야 한다. 왜 지름길은 깨진 창문 같을까? 1969년 심리학자 필립 짐바르도(Philip Zimbardo)는 나중에 깨진 창문 이론이라고 알려진 실험을 했다. 어떤 것이 멈춘 것처럼 보이고, 망가져 보이고, [부정적인 형용사를 넣어보자], 혹은 관리되지 않는다고 여겨지면 인간의 뇌는 이를 더 멈추고, 망가뜨리고, [부정적인 형용사를 넣어보자] 해도 된다고 생각하게 된다. 이 이론은 삶의 많은 부분에 적용할 수 있다. 기물 파손이 흔한 동네에서는 방치된 차를..
2023.05.15