728x90
이 아키텍처의 목적은 관심사의 분리 (Separation of concern) = 높은 유지 보수성과 쉬운 테스트
Presentation Layer
간단하게 생각하면 MVC 아키텍처 패턴 부분 전체
Business Layer
Spring 프레임워크는 개발자에게 비지니스 구현에만 신경쓰도록 한다.
위 이미지에서 @Service 부분
Data Access Layer
비지니스 구현을 위한 데이터 조회와 같이 CRUD 제공 - @Repository
- @Repository ~= DAO: 이 두 개념은 다르나, Spring에서 혼용해서 쓰기도 한다.
DAO와 @Repository 차이
DAO
- DB에 직결된 CRUD 함수(구현체는 EntityManager 통해 수행)
@Repository
- Encapsulating DAO (DAO 의 조합) = 필요한 함수만 쓰기
- 아래코드는 CRUD 중 R만 쓸 수 있도록 Encapsulating
public interface UserRepository {
User get(Long id); // 원하는거만 구현해도된다. 내부에선 Dao 를 조합
// void add(User user);
// void update(User user);
// void remove(User user);
}
DTO
Java 기본 문법 및 JVM 구성(9) - DTO, VO
객체 종류: DTO와 VO - 객체 목적에 따른 명칭DTO(Data Transfer Object)가변 객체 = 객체 내 데이터를 Getter로 조회 가능, 객체 내 데이터를 Setter로 쓰기 가능순수하게 데이터를 담아 계층간 전달하는 객체
mystudylog.tistory.com
DTO(Dat Transfer Object)
데이터 담은 객체(가변성)
그냥 데이터를 갖고 있는 객체(다양한 메서드를 가졌다기보다, Getter,Setter 메소드만 갖는다)
728x90
'ASAC 웹 풀스택 > Spring Boot' 카테고리의 다른 글
Spring Best Practices(2) - Exception (0) | 2024.10.11 |
---|---|
Spring Best Practices(1) - JSON 관련 어노테이션 (0) | 2024.10.11 |
Spring 구조(1) - MVC 아키텍처 패턴, Front Controller (1) | 2024.10.08 |
Spring Boot 특장점 및 동작(1) - Spring과 Spring Boot의 차이점 (0) | 2024.10.08 |
Spring Bean 원리(1) - 싱글톤, IoC, Bean 등록/사용 (3) | 2024.10.08 |