좋은 아키텍처

yg kim·2023년 9월 19일
0

공부하기

목록 보기
6/14

좋은 아키텍처 (클린 아키텍처)

(출처 - https://www.youtube.com/watch?v=g6Tg6_qpIVc)
페러다임 / 설계원칙(SOLID) / 컴포넌트 응집성 원칙 / 컴포넌트 결합 원칙
더 쉽게

-> 아키텍처 패턴

  • 계층형 아키텍처 / 클린 아키텍처 / 헥사고날 아키텍처
    레시피(패턴) 사용법
  1. 그냥 따라해보기
  2. 원칙 학습 후 이해하고 다시 따라해보기
  3. 각자의 프로젝트에 적용해보기
  4. 고민이 되는 지점들은 원칙에 맞게, 크게 벗어나지 않는 선에서 타협하며 적용해보기

클린 아키텍처

  • 웹 -> 도메인 <- 영속성 처럼 도메인이 중심이다(의존성 역전을 이용)
  • 장점 -> 규칙 단순 / 도메인이 세부사항에 의존 X( DDD 적용 용이/ 비즈니스 규칙에 집중이 쉬움)
    *DDD-> 도메인 주도 설계
  • 단점 -> 패키지 구조가 계층형보가 복잡 / 익숙하지않아서 버벅일 수 있음 / 레퍼런스가 적음

클린 아키텍처란? -> 여러 아키텍처를 하나로 통합 시도 ( 관심사의 분리)

  • 핵심 -> 중요도에 따라 계층을 나눔 / 의존성의 방향은 항상 안쪽, 고수준을 향함 -> 다형성을 이용해 의존성은 어디든지 역전 가능

헥사고날 아키텍쳐?

  • 클린 아키텍처 기본 다이어그램과 가장 비슷함
  • 따라할 수 있는 쿡북이나 레퍼런스가 가장 많음.
  • 포트와 어댑터(헥사고날) 사용
    특징 -> 수직, 수평으로 나눔 / DB계층에 대한 의존성 역전
    장점 -> 도메인이 다른 세부 사항에 의존하지 않음 / 수직, 수평 계층구조의 장점을 가짐
    단점 -> 클래스와 패키지 구조가 더 많아짐.

클린 아키텍처 적용 X -> 소규모 프로젝트 진행/ 프로젝트를 진행하는 개발자가 이해하고 있지 않을때!

헥사고날 아키텍처 적용시 라인, 파일, 패키지가 상당히 증가함

JPA 사용시

소프트웨어에서 아키텍처의 중요성
-> 좋은 아키텍처를 구성하는 방법 클린 아키텍처 -> 하지만 클릭아키텍처는 애매-> 규칙이 단순하기 때문 -> 그렇기 때문에 기준을 잡아야된다.

profile
발전하고 싶은 사람

0개의 댓글