TIL

효준·2024년 11월 5일
0

11월 5일 화요일
AM 알고리즘 풀이
PM 6주차 강의 수강, 과제 수행

💡 Today Issue

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

🕐회고

과제 잘 마치고 보강하도록

profile
사진은 캣타워가 생겨 포효하는 고양이입니다.

0개의 댓글

관련 채용 정보