본문 바로가기
[Spring]/Spring 기본

아키텍처(Architecture)와 스프링 프레임워크 모듈(Spring Framework Module) 구성

by 팡펑퐁 2022. 10. 12.
728x90

아키텍처(Architecture)

  • 건축 분야에서 유래된 용어로 요구사항을 만족하는 건축물을 짓는데 있어 청사진과 같은 역할을 한다.

 

소프트웨어 아키텍처(Software Architecture)

  • 소프트웨어의 구성을 큰 그림으로 표현한 것이다.

 

애플리케이션(Application)

  • 소프트웨어 종류의 하나로 좁게는 데스크탑이나 스마트폰에서 사용하는 응용 프로그램을 말하며, 넓게는 클라이언트의 요청을 처리하는 서버 애플리케이션을 뜻한다.
웹 개발을 위해 중점적으로 알고있어야 하는 아키텍처는 웹 상에서 동작하는 웹 애플리케이션을 위한 아키텍처이다.

 

계층형 웹 애플리케이션 아키텍처

API 계층(API Layer)

  • 클라이언트의 요청을 받아들이는 계층으로 일반적으로 표현 계층(Presentation Layer)라고 불리지만 REST API를 제공하는 애플리케이션의 경우 API 계층이라고 표현한다.

 

서비스 계층(Service Layer)

  • API 계층에서 전달 받은 요청을 업무 도메인의 요구사항에 맞게 비지니스적으로 처리하는 계층이다. 애플리케이션의 핵심 로직은 서비스 계층에 포함되어있다고 해도 과언이 아닐만큼 핵심이 되는 계층이다.
  • 도메인 지식(Domain Knowledge)
    • 배달 애플리케이션에서 주문을 받고 처리하는 과정 등을 도메인 지식이라고 하며, 이것을 비지니스 로직으로 잘 표현해야 하는 것이 중요하다.

데이터 엑세스 계층(Data Access Layer)

  •  비지니스 계층에서 처리된 데이터를 데이터베이스 등의 데이터 저장소에 저장하기 위한 계층이다.

 

 

아키텍처로 보는 스프링 프레임워크 모듈(Spring Framework Module) 구성

<Spring Framwork 모듈 아키텍처, 출처 : 스프링 공식 사이트>

모듈(Module)

  •  Java에서 일반적으로 지원되는 여러가지 기능들을 목적에 맞게 그룹화하여 묶어 놓은 것을 말한다. 이러한 모듈들은 Java의 패키지 단위로 묶여있으며, 이 패키지 안에는 관련 기능을 제공하기 위한 클래스들이 포함되어있다. 일반적으로는 재사용 가능하도록 라이브러리 형태로 제공되는 경우가 많다.
728x90