Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- gcp
- Cloud SQL
- ansible
- Solution Architect
- Google Cloud Platorm
- Cloud Datastore
- AWS Solution Architect
- Solution Architect Certificate
- Kubernetes Engine
- VPC
- 앤서블
- AWS 자격증
- Google Cloud Platform
- Cloud Spanner
- playbook
- AWS Database
- Compute Engine
- Amazon Web Service
- 리버스 프록시
- Cloud Storage
- container
- Google Cloud Platrofm
- GKE
- AWS
- kubernetes
- Reverse Proxy
- AWS Certificate
- Google Cloud
- 아마존웹서비스
- Cloud Bigtable
Archives
- Today
- Total
sungwony
[만들면서 배우는 클린 아키텍처] Intro 본문
- 계층형(layered) 아키텍처 스타일의 단점
- 클린 아키텍처
- 육각형 아키텍처(Hexagonal Architecture)
- 도메인 중심 아키텍처의 장점
→ 이후 육각형 아키텍처의 실습
학습 목표
- 계층형 아키텍처를 사용했을 때의 잠재적인 단점
- 아키텍처 경계를 강제하는 방법
- 잠재적인 지름길(?)들이 소프트웨어 아키텍처에 어떤 영향을 미칠 수 있는지
- 언제 어떤 스타일의 아키텍처를 사용할 것인지
- 아키텍처에 따른 코드 구현
- 아키텍처의 각 요소들을 포함하는 다양한 종류의 테스트
예제 코드
GitHub - wikibook/clean-architecture: 《만들면서 배우는 클린 아키텍처》 예제 코드
서문
클린 아키텍처 이론은 알겠지만?!
→ 선행 공부 했어야 하나?
클래스 간의 의존관계가 어느 정도로 허용되어야 하는지, 패키지 레벨을 어떻게 나눠야 하는지와 같은 객체지향 기반의 어플리케이션을 구조화 하는 방안에 대한 힌트를 얻을 수 있을 것이다
연관 서적
- 도메인 주도 설계
- 클린 아키텍처
모든 외부 요소를 근본적으로 외부 인터페이스로 나타내므로 비대칭 계층화 체계와는 다른 모양의 대칭 뷰를 보여준다
계층형 아키텍처
- 사용자와의 상호작용을 담당하는 프레젠테이션 계층과 엔티티의 영속성을 처리하는 영속성 레이어를 별개의 계층으로 구분한다.
- 프레젠테이션 계층은 하위의 도메인 계층에, 도메인 계층은 하위 영속성 계층에 의존한다
→ 즉, 도메인 계층 입장에서 의존은 비대칭적이다
육각형 아키텍처
- 사용자 인터페이스나 데이터베이스 모두 비즈니스 로직으로부터 분리돼야 하는 외부 요소로 취급한다.
- 핵심은 의존성의 방향으로 비즈니스 로직이 외부 요소에 의존하지 않고 프레젠테이션 계층과 데이터 소스 계층이 도메인 계층에 의존하도록 만들어야 한다는 것!
→ 즉, 도메인 계층 입장에서 의존성은 대칭적이다
- 애플리케이션은 비즈니스 관심사를 다루는 내부(inside)와 기술적인 관심사를 다루는 외부(outside)로 분해된다
- 외부에 포함된 기술적인 컴포넌트를 어댑터(adapter)라 부른다
- 어댑터가 내부와 상호작용하는 접점을 포트(port)라고 부른다 (포트와 어댑터 패턴)
도메인 주도 설계의 전제 조건은 도메인 구현을 격리하는 것이다(내부와 외부의 분리)
인트로부터 범상치않다
계층형 아키텍처는 비대칭적이다 직선적인 의존관계를 가진다.
이것이 왜 문제가 되는지 한번 알아보자.
'development > architecture' 카테고리의 다른 글
[만들면서 배우는 클린 아키텍처] 02. 의존성 역전하기 (0) | 2022.10.01 |
---|---|
[만들면서 배우는 클린 아키텍처] 01. 계층형 아키텍처의 문제는 무엇일까? (0) | 2022.10.01 |