Published on

스프링 프레임워크 첫걸음 - 9장 : 애플리케이션 만들기

Authors
  • avatar
    Name
    손예지(Liv)

9장에서는 그동안 학습한 내용을 토대로 웹 애플리케이션을 만들어보는 과정을 안내하고 있습니다. 그 중에서 애플리케이션을 생성할때 계층을 분리하는 부분에 대해서 살펴보겠습니다.

1. 애플리케이션에서 레이어(계층)

애플리케이션을 생성할때는 레이어를 분리해서 생성하는 것을 권장합니다. > 레이어를 나누는 목적은 모델 안에서 역할 분담을 명확하게 하고 애플리케이션의 레이어 구성을 적용하고 비대해지는 모델을 분할하는데 있습니다. (p.223) 이 구조는 도메인 중심 설계(DDD)에 기반합니다.

레이어는 크게 아래와 같이 세개로 나눌 수 있습니다. 설명하는 사람마다 사용하는 용어는 달라질 수 있지만, 큰 개념은 거의 동일합니다. 저자가 정의한 각각의 계층의 특징은 아래와 같습니다.

  • 애플리케이션 레이어
    • 클라이언트에서 받은 요청 제어하고 도메인 레이어를 사용해 애플리케이션 제어
  • 도메인 레이어
    • 도메인 객체에 대해 애플리케이션의 서비스 처리 실행
  • 인프라스트럭처 레이어
    • 도메인 객체에 대해 CRUD 조작을 해 데이터의 영속화를 담당

이렇게 계층을 나누는 것에 대한 가장 큰 특징은, 도메인 레이어가 다른 계층에 의존하지 않고 독립성을 유지한다는 것입니다. 전통적인 3 계층 아키텍처는 각각 역할과 책임이 있습니다.

정리

애플리케이션을 생성할때 계층을 나누는 방식에 대해서 살펴봤습니다. 계층을 나누어 생성해야 한다는 것은 알고 있었는데, 분리하는 것에 어떤 의미가 있는지 알게되었습니다.

참고자료:
스프링프레임워크 첫걸음
스프링부트 3 벡엔드 개발자 되기
https://openmaker.tistory.com/133
https://www.ibm.com/kr-ko/topics/three-tier-architecture