Spring MVC에 이어서 3 - Layer Architecture에 대해서 정리해보았다.
둘은 처음에 공부할 땐 비슷해 보이지만 차이가 있다!!
역할: 사용자가 입력한 데이터의 형식이나 간단한 유효성 검사를 수행합니다. 예를 들어, 입력 필드가 빈 값인지, 숫자 필드에 숫자가 들어왔는지, 이메일 형식이 올바른지 등을 검증합니다.
쉬운 설명
구성 요소:
@Controller
또는 @RestController
역할: 비즈니스 로직을 처리하는 핵심 레이어입니다. Presentation Layer와 Data Access Layer 사이에서 중간 역할을 합니다. Presentation Layer의 요청을 받아 필요한 데이터를 가공하거나 로직을 실행하여 결과를 반환합니다.
쉬운 설명 :
구성 요소:
@Service
어노테이션으로 표시된 클래스역할: 데이터베이스와 상호작용하며, 데이터를 저장, 검색, 업데이트, 삭제하는 역할을 합니다. 비즈니스 로직에서 데이터를 필요로 할 때 이 레이어를 통해 데이터를 처리합니다.
쉬운 설명 :
구성 요소:
@Repository
어노테이션으로 표시된 클래스들이 여기에 속하며, JPA, Hibernate, MyBatis 등과 같은 ORM(Object-Relational Mapping) 프레임워크를 사용해 데이터베이스와 상호작용합니다.데이터 전송 및 이동을 위해 생성되는 객체를 의미
Client에서 보내오는 데이터를 객체로 처리할 때 사용
또한 서버의 계층간의 이동에도 사용
그리고 DB와의 소통을 담당하는 Java 클래스를 그대로 Client에 반환하는 것이 아니라 DTO로 한번 변환한 후 반환할 때도 사용
실제, 독립체라는 뜻을 가지고 있는데 데이터베이스와 1:1로 매칭하기 위해 존재한다라고 생각할 수 있다.
데이터베이스 테이블이라고 생각하면 이해가 편하다.
계층별로 역할을 충실하게 할 경우 시스템의 유지보수성, 확장성을 향상시킬 수 있다.
Spring MVC, Spring 3 Layer는 비슷해 보이지만 서로 다른 개념이다.
MVC는 클라이언트와 서버간의 구조 관점에서 접근한 개념
- Spring MVC의 주요 목적은 클라이언트(사용자)와 서버 간의 상호작용을 관리하는 것
Spring 3 Layer 는 서버 개발 관점에서 각 계층 별로 역할을 분리하는 개념
- 애플리케이션을 세 개의 주요 계층으로 나누어 각 계층이 독립적으로 동작할 수 있도록 구조화하는 데 초점
https://m.blog.naver.com/sosow0212/223086185606