클린 아키텍처 4

[클린 아키텍처] 6부. 세부사항

🍊 데이터베이스는 세부사항이다. 데이터베이스는 세부사항이고, 아키텍처의 구성요소 수준으로 끌어올릴 수 없다. 아키텍처와 데이터베이스의 관계는 건물로 비교하면 건물의 아키텍처와 문 손잡이의 관계와 같다. 체계화된 데이터 구조와 데이터 모델은 아키텍처적으로 중요하지만, 기술과 시스템은 중요하지 않다. 🍒 데이터베이스 시스템은 왜 널리 사용되는 걸까? -> "디스크(저장소의 중심)" 때문이다. -> 데이터가 많아짐과 동시에 데이터를 읽는 "속도"는 중요했다. 시간 지연을 완화하기 위해 색인, 캐시, 쿼리 등 최적화가 필요했고, 이런 것을 제공해주고 데이터 접근 및 관리 시스템이 나오게 된 것이다. 🍒 데이터베이스 시스템은 왜 세부사항인 걸까? - 데이터베이스는 그저 매커니즘에 불과하며 데이터를 이리저리 옮길..

개발서적 2022.03.10

[클린 아키텍처] 3부. 설계 원칙

🎯 설계 원칙 SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open-Closed Principle) : 개방-폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존성 역전 원칙 ❗ SRP : 단일 책임 원칙 하나의 모듈은 오직 하나의 액터에 대해서만 책임져야 한다. 모듈이란? - 단순한 정의로 소스 파일 징후1) 우발적 중복 Employee라는 클래스 안에 calculatePay, reportHours, save 메서드가 3명의 액터를 책임진다. 즉, 단..

개발서적 2022.01.12

[클린 아키텍처] 2부. 벽돌부터 시작하기 : 프로그래밍 패러다임

🎯 프로그래밍 패러다임 : 3가지 패러다임 구조적 프로그래밍 객체지향 프로그래밍 함수형 프로그래밍 ❗ 구조적 프로그래밍 1) 탄생과정 "데이크스트라"는 모듈을 증명 가능하게 하는 바로 그 제어 구조가 모든 프로그램을 만들 수 있는 제어 구조의 최소 집합과 동일하다는 사실을 발견했다. (최소 집합은 순차, 분기, 반복 3가지로 표현할 수 있다는 것) 그렇기에 우리는 모두 구조적 프로그래머이며, 선택의 여지는 없다. 2) 기능적 분해 모듈을 증명 가능한 더 작은 단위로 재귀적으로 분해할 수 있게 되었고, 결국 모듈을 기능적으로 분해할 수 있음을 뜻한다. 3) 엄밀한 증명은 없다. 무언가가 올바른지를 입증할 때 사용하는 전략에 유클리드 방식 같이 수학적인 증명만 있는 것은 아니다. 상당히 성공한 또 다른 전략..

개발서적 2021.12.23

[클린 아키텍처] 1부. 소개

🚪 들어가기. 왜 클린 아키텍처를 읽으려고 하나? 입사한지 7개월차. "과연 잘 짠 코드는 무엇인가?" 의문이 생겼다. 누군가 알려주는 사람은 없었고,,, 혼자 해결해 나가야 했고,, 그러던 중 책을 추천해주었다! 이 책을 읽고 진정한 개발자로 거듭나자! 🎯 소프트웨어 아키텍처의 목표는? 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는 데 있다. 새로운 기능을 추가할 때, 비용이 증가한다면 나쁜 설계이고, "단순명료"해야 좋은 설계이다. 🔅 소프트웨어 개발의 진리 빨리 가는 유일한 방법은 제대로 가는 것 명심하자! 자신을 과신한다면 재설계하더라도 원래의 프로젝트와 똑같이 엉망으로 내몰린다. 🪄 소프트웨어 개발자가 알아야 하는 2개의 가치 1. 행위 - 대부분의 개발자는 어떤 요구사항을 ..

개발서적 2021.12.12