ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 원티드 프리온보딩 : SW 아키텍쳐 - 1. 도메인과 아키텍처
    Server/기타 2023. 3. 10. 19:52

    도메인이란?

    • 정의 : 도메인은 일반적인 요구사항, 전문 용어, 그리고 컴퓨터 프로그래밍 분야에서 문제를 풀기 위해 설계된 어떤 소프트웨어 프로그램에 대한 기능성을 정의하는 연구의 한 영역이다.
    • 출처 : https://ko.wikipedia.org/wiki/도메인_(소프트웨어_공학)
    • 간단히 말하면 개발하고자 하는 소프트웨어의 요구사항, 문제 영역을 도메인이라고 생각할 수 있다.
    • 쇼핑몰을 예로 들면, 카탈로그, 리뷰, 주문, 결제, 배송, 정산, 회원 등이 도메인이다.

    레이어드 아키텍처

    아키텍처 종류

    • 모놀리식 아키텍쳐
      • Layered Architecture
      • Clean Architecture
      • Hexagonal Architecture : 도메인 중심 아키텍처의 일종으로 클린 아키텍처를 일반화한 구조 중 하나.
    • 분산형 아키텍쳐
      • Service Oriented Architecture
      • Event-based Architecture
      • MicroService Architecture

    강의에서는 앞으로 모놀리식 아키텍처를 다루게 된다.

    그 중 레이어드 아키텍처에 대해서 다음 수업부터 진행할 예정인데,

    그 이유는 “클린 아키텍처, 헥사고날 아키텍처”가 레이어드 아키텍처의 단점을 보완하기 위한 것이기 때문이라고 한다.

    그래서 어떤 단점들 때문에 저런 아키텍처들이 생겨났는지 알아보았다.

     

    [예습]

    레이어드 아키텍처의 단점

    • 특징 : present, bussiness, persistent, database 계층으로 구성되어 각 계층에서 주어진 역할(기능)을 수행한다. 관심사의 분리와 단방향 의존성이 특징이다.
    • 장점 : 소규모 애플리케이션을 개발하거나 개발 초기에 적용하기에 용이하다.
    • 단점 : 규모가 커질수록 유지보수, 테스트 용이성에 불리해진다. 핵심 로직인 bussiness 레이어가 persistent 레이어에 의존하기 때문에, persistent 레이어가 변경될 경우 bussiness 레이어가 영향을 받는다. 즉, 모든 레이어가 DB에 의존하기 때문에 DB 중심의 설계가 된다.

    클린 아키텍처

    출처 : https://joonfluence.tistory.com/322

     

    헥사고날 아키텍처

    출처 : https://brunch.co.kr/@graypool/433

     

    두 아키텍처 모두 도메인 중심의 아키텍처이기 때문에 다른 계층이 엔티티에 의존하는 구조가 되고

    DB가 무엇인지, 프레임워크가 무엇인지 등 외부 요소에 의존이 낮아지는 구조가 되기 때문에

    프레임워크를 변경하거나 새로운 패키지를 추가할 때 훨씬 수월해진다고 한다.

    때문에, 핵심 로직인 도메인에만 집중하면 된다고 한다.

     

    그동안 레이어드 아키텍처만을 적용한 프로젝트를 진행해왔었는데,

    작은 변경임에도 모든 레이어를 건드려야 하는 등 유지보수에 불편한 점이 있었다.

    기회가 된다면 클린 아키텍처의 구조로 프로젝트를 해보고 싶다.

    'Server > 기타' 카테고리의 다른 글

    XSS와 CSRF 공격  (0) 2023.03.13
    원티드 프리온보딩 : SW 아키텍쳐 - 2. Layered Architecture  (0) 2023.03.11
    HTTP  (0) 2022.10.30
    Linux & Terminal  (0) 2022.10.28
    개발자도구 Element(요소) 패널  (0) 2022.10.23

    댓글