[개발 기초] Layered Architecture

개발할래·2023년 8월 9일
0

개발

목록 보기
1/19

개발에서 가장 기초가 되는 애플리케이션 인터페이스 흐름에 대해 알아보려합니다.

Layered Architecture는 소프트웨어 개발에 가장 기본이 되는 아키텍쳐 중 하나이다. 구성 계층에 따라 N 계층이라고 부른다.

4-Tier Layered Architecture

일반적으로 4계층으로 레이어로 많이 얘기를 한다.

  1. Presentation Layer
    사용자가 데이터를 전달하기 위해 화면에 정보를 표시하는 것을 주 관심사로 둔다. Presentation Layer 는 비즈니스 로직이 어떻게 수행되는지 알 필요가 없다. 대표적인 구성요소는 View와 Controller가 있다.

  2. Business Layer
    비즈니스 로직을 수행하는 것을 주 관심사로 둔다. 마찬가지로 화면에 데이터를 출력하는 방법이나 혹은 데이터를 어디서, 어떻게 가져오는지에 대한 내용은 알고있지 않다. 그저 Persistence Layer에서 데이터를 가져와 비즈니스 로직을 수행하고 그 결과를 Presentation Layer 로 전달하면 된다. 대표적인 구성요소는 Service와 Domain Model 등이 있다.

경우에 따라 아래처럼 Service와 Domain Model을 별개의 계층으로 나누거나, 아예 Domain Model을 Layered Architecture 와 별개의 것으로 분리하는 경우도 더러 있는 것 같다

  1. Persistence Layer
    어플리케이션의 영속성을 구현하기 위해, 데이터 출처와 그 데이터를 가져오고 다루는 것을 주 관심사로 둔다. 대표적인 구성요소는 Repository, DAO 등이 있다.

  2. Database Layer
    MySQL, MariaDB, PostgreSQL, MongoDB 등 데이터베이스가 위치한 계층을 의미한다.

정리

참고로 필자는 JAVA를 공부하고 있는데 MVC 모델과 연관지어 생각하면 좋은듯 하다.

참고

https://www.baeldung.com/cs/layered-architecture
https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch01.html
https://hudi.blog/layered-architecture/

profile
내 인생부터 개발

0개의 댓글