본문 바로가기

FrontEnd

아키텍쳐와 클린 아키텍쳐

728x90
반응형

본문을 들어가기 전에 ,

완벽한 내용의 아키텍쳐와 클린 아키텍쳐의 내용은 절대 아니다.

어려운 개념이라 간단하게 정리하기가 어렵기 때문에

일부인 개념만 정리해 둔 글이고,

 

직접 클린 아키텍쳐에대해 더 알고싶다면

아래 참조 블로그 여러개를 참조해서 읽으면 많은 도움이 될 것이다.

 

아키텍쳐란 

시스템 목적을 달성하기위해 시스템의 상호작용등의 시스템디자인에 대한 제약 및 설계

  1. 시스템 구성 및 동작 원리
  2. 시스템 구성요소에 대한 설계 및 구현을 지원하는 수준을 기술
  3. 구성 요소 간의 관계 및 외부환경과의 관계 묘사
  4. 요구사양 및 시스템 수명주기 고려
  5. 시스템의 전체적인 최적화를 목표

한마디로 정리하면,

최적화를 목표로 두고 시스템 구성과 동작원리 그리고 시스템의 구성환경등을 설명 및 설계하는 청사진 또는 설계도 입니다.
기본 Computer Science 지식을 기반으로 주변환경등을 고려하여,

최상의 소프트웨어를 구성하는 방법을 연구하고 이를 바탕으로 가이드하는 역할

 

 

 

클린 아키텍쳐

 

Credit: 도서출판 인사이트

 

안쪽 원으로 갈수록 고수준 소프트웨어가 되며 소스코드 의존성은 반드시 안쪽으로 향해 있어야함.

내부 원은 외부 원의 함수,클래스, 변수 등 어떠한 것도 알지 못해야함.

즉, 외부 원이 내부 원에 영향을 주어선 안됨.

 

useCase를 중심으로 관심사를 분리하고 비즈니스 로직을 바꿀수 있는 모든 요소로부터 분리하는것이 클린 아키텍처의 핵심이다.

 

 엔티티 

핵심 비니지스 규칙을 캡슐화  /  외부 변경은 이 레이어의 동작에 그 어떤 영향을 주면 안된다.

  • 엔티티는 핵심 비지니스 룰을 포함하고 비지니스 룰에 따라 다른 Use Case 와의 조화를 이루어야 한다

 

 Use Case 

목표를 완료하는 데 필요한 역할과 자동화 시스템 간의 작업 및 통신 단계 목록

  • Use Case 는 엔티티의 흐름과 동작을 조율

  • 엔티티나 도메인 레이어에 필요한 모든 데이터는 대개 Use Case 나 Gateway 를 통해 전달

 인터페이스 어뎁터 

 데이터를 유스케이스, 엔티티에게 가장 편리한 형식에서 DB, 웹 등 외부 에이전시에게 가장 편리한 형식으로 변환

 

 프레임워크와 드라이버 

가장 바깥 계층은 일반적으로 DB, 프레임워크 같은 도구 또는 세부사항으로 구성됨.

 

엔티티와 useCase는 비즈니스 Object로 바라보고, Ui 등 외부세계는 gateway를 통해 useCase와 소통한다.

 

 

 

 

 

 


✔️ 참고

✓  medium.com/@younghyun/clean-architecture-part-2-the-clean-architecture-3e2666cdce83

✓  tuhbm.github.io/2019/04/24/architecture/

✓  medium.com/@justfaceit/clean-architecture%EB%8A%94-%EB%AA%A8%EB%B0%94%EC%9D%BC-%EA%B0%9C%EB%B0%9C%EC%9D%84-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%8F%84%EC%99%80%EC%A3%BC%EB%8A%94%EA%B0%80-1-%EA%B2%BD%EA%B3%84%EC%84%A0-%EA%B3%84%EC%B8%B5%EC%9D%84-%EC%A0%95%EC%9D%98%ED%95%B4%EC%A4%80%EB%8B%A4-b77496744616

728x90
반응형