Architecture 2

클린 아키텍처(Clean Architecture)

클린 아키텍처를 알아보기 전에, 레이어드 아키텍처의 문제점에 대해 짚고 넘어가도록 하겠다.레이어드 아키텍처는 크게 도메인 패키지, 서비스 패키지, 웹 패키지로 구성되어있다.웹 패키지가 서비스 패키지에 의존하고, 서비스 패키지가 도메인 패키지에 의존하고 도메인 패키지는 영속성(JPA)에 의존하게 되는 구조이다. 여기서 레이어드 아키텍처의 문제점은, 영속성 레이어가 기반이 된다는 것이다. 이게 무슨 말이냐면 DB 구조나 세부사항이 도메인, 서비스, 웹 통틀어서 영향을 줄 수 있다는 것이다.레이어드 아키텍처의 JPA Entity 클래스를 보면 영속성 레이어의 세부사항이 많이 노출되어있다. 기본적으로, @Entity, @Column, @GeneratedValue 등 jakarta.persistence의 어노테이..

Architecture 2024.08.12

계층형 아키텍처(Layered Architecture)

아키텍처란?IEEE 국제 표준에서는 소프트웨어 아키텍처의 정의를 다음과 같이 설명한다.구성요소들간의 관계, 환경, 설계와 발전을 관리하는 원칙으로 이루어진 시스템의 근본적인 구조클래스, 파일, 컴포넌트, 모듈 등 코드들이 어떻게 연관되어있고, 상호작용하는지 설계하는 것이다.소프트웨어 아키텍처의 목표는 소프트웨어의 제작과 유지보수를 보다 쉽게 하는 것, 즉 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는 것이다.  아키텍처의 구성소프트웨어는 크게 도메인과 인프라스트럭처로 나누어져있다. 도메인이란 소프트웨어로 해결하고자 하는 문제 영역을 말하고(번역앱이라면 번역, 온라인 쇼핑몰이라면 판매 프로세스가 도메인) 도메인은 서비스의 본질로, 자주 바뀌지 않는다. 인프라스트럭처는 도메인을 소프트웨어..

Architecture 2024.08.05