[Clean Architecture] 아키텍처 (2)
·
Reference/Clean Architecture
1. Clean Architecture 📌 아키텍처의 목적헥사고날 아키텍처, DCI(Data, Context and Interaction), BCE(Boundary-Control-Entity)와 같은 수많은 시스템 아키텍처가 존재한다.백엔드를 주로 다루는 이들은 헥사고날 아키텍처를 마치 궁극적으로 달성해야 하는 목표점으로 여기지만, 모든 아키텍처는 관심사의 분리(separation of concerns)를 핵심 가치로 서로 다른 형태를 지닐 뿐이다. 프레임워크 독립성, 테스트 독립성, UI 독립성, 데이터베이스 독립성, 외부 Agency에 대한 독립성.우리가 알아야 하는 것은 헥사고날 아키텍처가 아니라, 바로 이러한 것들의 중요성이다. [iOS] Clean Architecture 쉽게 이해해보기📕..
[Clean Architecture] 아키텍처 (1)
·
Reference/Clean Architecture
아니, 안 그래도 이번 건 내용이 너무 길어서 분리했는데 왜 이렇게 많은 거지.임시저장은 내용이 길어지면 뒷 내용이 잘려버리는 이슈가 있어서 그냥 게시해버렸다.1. 아키텍처란? 📌 들어가며잘 모르겠지만, 소프트웨어 아키텍처는 기술적 성취의 정점에 서 있다고 한다."젊고 야심 찬 소프트웨어 개발자라면 한 번쯤은 소프트웨어 아키텍트가 되고 싶다고 꿈꿔 보지 않았을까?"라고 하지만, 옛날에 쓰여진 책이라 그런 걸 수도...요새는 잘 못 본 것 같기도 하고, 기술적 정점에 서 있다는 느낌을 주진 않는 것 같다. 여튼 소프트웨어 아키텍트가 되더라도 여전히 프로그래머(여야 한)다.아키텍트를 바라보기 위해 코드를 벗어나 고수준의 문제에 집중해야 한다는 말을 하지만, 현실은 직접 경험해보지 않는다면 올바른 아키텍처를..
[Clean Architecture] 컴포넌트 원칙
·
Reference/Clean Architecture
1. 컴포넌트 📌 컴포넌트의 간략한 역사컴포넌트는 배포 단위다.이번 장은 말 그대로 "독립적 배포 단위"가 가능해진 역사에 대해 설명해준다. 나도 잘 모르겠지만, 먼 옛날 옛적 c언어 개발자들을 "요즘 개발자 놈들"이라 부를 정도의 선조 시대에는 프로그램이 차지할 메모리 위치와 레이아웃을 프로그래머가 직접 제어를 했다고 한다.즉, 절대 주소 바이너리 값을 사용했다는 말인데, 컴파일러에게 메모리 주소에 로드할 코드를 생성하라고 컴파일러에게 알려줬다고 한다. 이런 환경에서 라이브러리 함수에 접근하려면?소스 코드는 애플리케이션으로 가져와서 단일 프로그램으로 컴파일해야만 했다.그런데 그 시절의 HW를 고려했을 때 이건 노역에 가까운 행위임이 뻔했다.메모리도 엄청 작은데, 라이브러리도 매번 함께 컴파일을 한다고..
[Clean Architecture] 설계 원칙
·
Reference/Clean Architecture
📕 목차 1. SOLID 원칙 2. SRP: 단일 책임 원칙 3. OCP: 개방-폐쇄 원칙 4. LSP: 리스코프 치환 원칙 5. ISP: 인터페이스 분리 원칙 6. DIP: 의존성 역전 원칙 1. SOLID 원칙 📌 개요 좋은 SW 시스템은 Clean Code로부터 시작한다. 좋은 벽돌로 좋은 아키텍처를 정의하는 원칙이 바로 SOLID 원칙 함수와 데이터 구조를 클래스로 배치하는 방법과 이들 클래스를 서로 결합하는 방법을 설명한다. 클래스는 단순히 함수와 데이터를 결합한 집합일 뿐, '클래스'라는 단어를 사용하는 것이 SOLID 원칙이 객체 지향 SW에만 적용되는 것은 아니다. 📌 목적 SOLID 원칙의 목적은 중간 수준 소프트웨어 구조가 아래와 같도록 만드는 것이다. 변경에 유연하다. 이해가 쉽다. ..