레이어드 아키텍처란?
●레이어드 아키텍처란?
레이어드 아키텍처(Layered Architecture) 란 소프트웨어를 관심사별로 여러 계층으로 나누어 수직적으로 배열한 것을 의미하며, 여기서 관심사란 유사한 책임들을 의미함 예를 들어, 데이터베이스 접근과 관련된 책임들을 하나의 관심사로 볼 수 있음
레이어드 아키텍처의 대표적인 구성에는 3가지 레이어가 존재하며 표현 계층, 도메인 계층, 데이터 소스 계층이 이에 해당하며 레이어의 종류와 수는 프로젝트 상황마다 달라질 수 있음
1.표현 계층(Presentation Layer) 은 사용자 입력을 처리하기 위해 존재
2.도메인 계층(Domain Layer) 은 비즈니스와 관련된 로직을 수행하기 위해 존재
3.데이터 소스 계층(Data Source Layer) 은 데이터베이스 접근 및 데이터 조작과 관련된 작업을 수행하기 위해 존재
●싱크홀 안티 패턴
@Service
public class OrderService {
private OrderDao orderDao;
// 아무 일도 수행하지 않음
public OrderResponse getOrder(Long orderId) {
return orderDao.getOrderById(orderId);
}
}