11월 5일 화요일
AM 알고리즘 풀이
PM 6주차 강의 수강, 과제 수행
Layered Architecture
Layered Architecture(레이어드 아키텍쳐)
소프트웨어를 여러 개의 계층으로 분리하고 각 계층이 독립적으로 구성되며 계층 간의 간섭이 없이 설계가 가능하다.
레이어드 아키텍쳐의 구성
위 구성 중 첫번째가 이번 강의 중 실습간에 사용했던 구성이라고 생각된다.
이와 같이 구성이 명확히 정해지지 않고 애플리케이션의 크기, 복잡도, 요구사항 등에 의해 여러 형태로 구성이 변경 될 수 있다. 레이어드 아키텍처는 각 계층 사이의 의존성을 줄이고 외부 변화로부터 비즈니스 로직의 변화를 막고, 애플리케이션의 유지보수와 확장성을 높이려는 목적으로 만들어진 설계의 한 방법이기에 상황에 맞는 최적화된 구성을 사용하는 것이 올바르다고 생각된다.
일반적인 구조
Presentation Layer :
- 사용자와 가장 가까운 계층, 사용자와 상호작용을 한다.
- Spring MVC 객체를 말하며, 프론트 컨트롤러, 컨트롤러, 뷰, 모델이 포함된다.
- JSON field의 parameter을 JAVA Object 변환한다.
Business Layer(Service Layer) :
- 비즈니스 로직을 수행하는 컴포넌트로 트랜잭션 및 기능을 수행한다.
- 보통 하나의 비즈니스 로직은 하나의 트랜잭션으로 동작
- Service로 구성되어 있으며, 확인과 권한부여 담당한다.
Persistence Layer :
- 모든 Database Storeage logic을 포함하여 Object를 Database Row로 변경한다.
- Database에 연동되어 데이터의 저장과 조회를 담당하는데 DB에 값을 저장하거나 가져오기 위해 JDBC, JPA, Mybatis 등을 사용해 구현한 DAO라고 볼 수 있다.
DTO(Data Transfer Object :
이름 그대로 데이터 전달, 데이터를 담고, 다른 계층(Layer) 또는 다른 컴포넌트들로 데이터를 넘겨주기 위핸 자료 구조)
Entity :
핵심 비즈니스 로직을 담는 비즈니스 도메인 영역의 일부
Reference
https://rypro.tistory.com/216
https://engineerinsight.tistory.com/63
과제 잘 마치고 보강하도록