본문 바로가기

🏛️ Architecture19

[만들면서 배우는 클린 아키텍처] Chapter6. 영속성 어댑터 구현하기 CH 6. 영속성 어댑터 구현하기 1. 의존성 역전 서비스가 영속성 기능을 사용하기 위해 포트 인터페이스를 호출 육각형 아키텍처에서 영속성 어댑터는 주로 아웃고잉 어댑터 => 앱에서 호출하기 때문, 반대의 경우는 없다. 포트는 앱과 영속성 사이의 간접적 계층 영속성 문제에 신경쓰지 않고 도메인 코드 개발 목적 영속성 계층에 코드 의존성을 없앰 이럴 경우, 영속성 코드를 변경하더라도 코어 코드에 영향이 없음 런타임에도 여전히 앱이 영속성 코드에 의존하고 있다. 인터페이스 계약을 만족하는 한 영속성 코드 수정은 문제가 없다. 2. 영속성 어댑터의 책임 입력을 받는다. 주로 도메인 엔티티, DB 연산 전용 객체 입력을 데이터베이스 포맷으로 매핑한다. JPA Entity 객체 매핑 JPA를 제외한 기술도 고려 .. 2022. 10. 31.
[만들면서 배우는 클린 아키텍처] Chapter5. 웹 어댑터 구현하기 CH.5 웹 어댑터 구현하기 1. 의존성 역전 Web Adaptor = Incomming Adaptor 외부로부터 요청 받음 => 애플리케이션 코어 호출 => 무슨 일을 해야할지 알려줌 애플리케이션 계층은 웹 어댑터가 통신할 수 있는 포트를 제공 서비스는 포트 구현 & 웹 어댑터가 이 포트를 호출 제어 흐름 왼쪽 => 오른쪽 웹 어댑터가 유스케이스를 직접 호출할 수 있지만 간접 계층을 넣음 포트 (간접 계층)는 외부와 통신할 수 있는 곳에 대한 명세서 어떤 통신이 일어나는지 명확하게 알 수 있음. Outgoing Port 이 포트는 웹 어댑터에서 구현하고 애플리케이션 코어에서 호출해야 한다. 웹 어댑터는 인커밍 & 아웃고잉 어댑터가 될 수도 있다고 한다. 2. 웹 어댑터의 책임 거시적 관점 HTTP 요청.. 2022. 10. 30.
데이터 분산 처리 [Micro Service Architecture] 프로젝트를 진행 중이다. 프로젝트의 규모가 커질 수록 계층 간 DTO 객체를 이용하는 일이 많아졌다. 불변 객체를 적절히 설계해야 할 필요를 느끼며 최대한 클래스 설계를 잘했다. 리뷰를 받던 중 MAS 아키텍쳐에 대해 알게 되었다. 데이터 정합성 관련 문제가 생길 수 있지만 한번 개념에 대해 정리해보고 수정을 해볼 생각이다. 보편적인 아키텍처 모놀리식 아키텍쳐 (Monolithic Architecture) 우리가 많이 보아온 형태이다! 소프트웨어의 모든 구성 요소가 하나로 통합되어 있는 형태 주로 소규모 프로젝트에서 사용한다. 규모가 커질 경우 한계가 드러남 장점 단순한 아키텍처로 개발이 쉽다 복잡하지 않고, 배포가 간단하다 확장성이 쉽다 고가용성 서버를 쉽게 구현할 수 있다 단점 Scale out이 어.. 2022. 5. 27.
Layered & Domain Architecture 란 무엇일까? 스프링 프레임워크를 공부하며 프로젝트를 설계하는 도중 프로젝트 설계 과정에서 의외의 문제가 발생했었다. 기존에 만들었던 웹 프로젝트대로 Controller & Service & Domain & Repository 패키지를 생성해서 만들었지만 프로젝트를 설계하는 데에 있어서 분명히 설계 기준이 있을 거라는 생각이 들었다. 아니나 다를까 DDD이든 Layered 이든 여러 가지 프로젝트 아키텍처가 존재하는 것을 알게 되었고, 이번 기회에 상세히 정리해서 프로젝트에 구체적으로 적용시켜볼 생각이다. 소프트웨어 아키텍처(Software Architecture) 란? -> 말 그대로 구조이다. -> 여러 가지 소프트웨어 구성 요소가 가진 특성 중 외부에 드러나는 특성, 구성 요소 간의 관계를 표현하는 시스템 구조나.. 2022. 5. 3.
반응형