전체 글(120)
-
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 -
EF Core Fluent API Entity Configuration
소개 이번 포스트는 EF Core에서 Fluent API 패턴을 기반으로 한 Entity Configuration에 대해 정리하도록 하겠습니다. Entity Configuration Entity Configuration은 테이블 및 관계 매핑에 대해 구성합니다. PrimaryKey(기본 키), AlternateKey(대체 키), Index, Table Name, 1대1 관계, 1대N 관계, N대N 관계에 대해 정의 합니다. Methods 사용법 HasAlternateKey() 엔티티에 대한 EF 모델의 대체 키 구성. HasIndex() 지정 된 속성의 인덱스 구성 HasKey() 속성 또는 속성 목록을 기본 키로 구성 HasMany() 일대다 또는 다대다 관계에 대해 다른 유형의 참조 수집 속성을 포함..
2023.05.17 -
First Class Collection(일급 컬렉션)
참조 객체지향 생활 체조 9가지 First Class Collection 소개 최근 DDD를 공부하면 일급 컬렉션이라는 단어가 나와 찾아보게 되었습니다. 일급 컬렉션은 마틴 파울러가 쓴 소트웍스 앤솔러지 : 소프트웨어 기술과 혁신에 관한 에세이의 객체지향 생활체조 파트에서 언급되는 8번째 규칙입니다. 일급 컬렉션이란? Collection을 Wrapping하면서, 그 외 다른 변수가 없는 클래스의 상태를 일급 컬렉션이라고 합니다. 예를 들어 아래의 좌측 코드를 우측 코드로 변경 된 것을 일급 컬렉션이라고 합니다. 그냥 봐서는 Emails라는 Class는 왜 만들어서 코드의 양만 늘어나게 했는지 의아해 할 수도 있습니다. 일급 켈렉션의 이점은 아래 같습니다. 1. 비즈니스에 종속적인 자료구조 상위 클래스(U..
2023.05.16 -
한번 듣고 평생 써먹는 코드 리뷰 노하우
소개 이번 포스트는 한번 듣고 평생 써먹는 코드 리뷰 노하우를 시청하고 정리하는 포스트입니다. 목차 왜 코드 리뷰를 해야 하나? 우리가 살고 있는 시대 개발생산성 / SW 공학의 특성 / 장인정신 코드 리뷰의 정의 / 목적 코드 리뷰의 절차 왜 코드 리뷰가 어려운가 코드 리뷰의 기법들 효율적인 PR 방법 효율적인 리뷰 방법 피드백 방법 교착상태 시 추가적인 사례 코드 리뷰를 하는 아주 재밌는 방법 왜 코드 리뷰를 해야하나? 우리가 살고 있는 시대 "Software is eating the world" 소프트웨어에 의해 운영되는 제품과 서비스들의 영역이 늘어나고 있음 ICT의 융합으로 이뤄지는 차세대 산업 혁명 Big Data, AI, Robot 공학, IoT, 무인 운송 수단, 3D Printing, 나..
2023.05.16