본문 바로가기
Architecture

[Clean Architecture 정리] 21장. 소리치는 아키텍처

by 테리는당근을좋아해 2022. 8. 29.

21장. 소리치는 아키텍처

아키텍처의 테마

소프트웨어 아키텍처는 시스템의 유스케이스를 지원하는 구조이다. 프레임워크에 대한 것이 아니다.

 

아키텍처의 목적

좋은 아키텍처는 유스케이스를 중심을 두며 프레임워크, 도구, 환경에 구애받지 않고 유스케이스를 지원하는 구조를 아무런 문제 없이 기술할 수 있다. 

프레임워크 도구, 환경은 지엽적인 관심사이며 결합을 분리시켜 이들에 대한 결정을 미루고 선택사항을 열어두어야 한다.

 

하지만 웹은?

웹은 전달 메커니즘이며, 애플리케이션 아키텍처에서도 전달 메커니즘으로 다뤄야한다.

애플리케이션이 웹을 통해 전달된다는 것은 세부사항이지 시스템 구조를 지배해서는 안된다.

 

프레임워크는 도구일 뿐, 삶의 방식은 아니다.

앞서 말한 것처럼, 좋은 아키텍처는 유스케이스에 중점을 두며, 프레임 워크에 구애받지 않아야한다. 

프레임워크가 아키텍처의 중심을 차지하는 일을 막을 수 있는 전략을 개발해야 한다.

 

테스트하기 쉬운 아키텍처

좋은 아키텍처는 유스케이스를 최우선으로 하고, 프레임워크와 상관없이 유스케이스에 대한 단위 테스트를 할 수 있어야 한다.

엔티티 객체는 오래된 방식의 간단한 객체(plain old object)이여야 하며, 프레임워크와 같은 복잡한 것에 의존해서는 안된다.

 

 

 

오래된 방식의 간단한 객체
POJO(Plain Old Java Object)

오래된 방식의 자바 객체는 중량 프레임워크에 종속된 무거운 객체에 반발하면서 사용하게된 용어로 특정 프레임워크에 종속되지 않는 순수한 자바 객체를 지칭하는 말이다.

특정 기술과 환경에 종속된 자바 객체를 사용하게 되면 유지보수가 어렵고, 상속과 의존으로 인한 확장성이 떨어지는 문제로 POJO를 지향한다.

POJO는 순수한 VO(value object)와 같은 자바 언어 사양 외에 어떠한 제한도 묶이지 않은 자바 객체로 볼 수 있으며,
미리 정의된 클래스의 확장, 인터페이스의 구현, 어노테이션을 포함하는 것들을 따를 필요가 없다. 

 

 

서적 : http://www.yes24.com/Product/Goods/77283734

 

클린 아키텍처 - YES24

살아있는 전설이 들려주는 실용적인 소프트웨어 아키텍처 원칙『클린 코드』와 『클린 코더』의 저자이자 전설적인 소프트웨어 장인인 로버트 C. 마틴은 이 책 『클린 아키텍처』에서 이러한

www.yes24.com

 

댓글