본문 바로가기
Spring

[Spring] 아키텍쳐(Architecture)란? / Spring Framework 모듈 구성 보기

by jungha_k 2022. 10. 12.

아키텍쳐(Architecture)란?

 

요구사항을 만족하는 건축물을 짓는데 있어 청사진 같은 역할

ex) 아파트, 빌딩 등의 조감도

 

아키텍처 - 건물, 구조물의 컨셉부터 잡을 것 

복잡하지 않고, 최대한 심플함을 유지할 것!


 아키텍처 유형 in 컴퓨터 시스템

  • 시스템 아키텍처
  • 소프트웨어 아키텍처 / 애플리케이션 아키텍처 

시스템 아키텍처

: 시스템의 건체적인 구성을 큰 그림으로 표현

 

채팅 서버 시스템 아키텍처 예시

 

➡ 해당 시스템의 하드웨어 구성, 소프트웨어 알 수 있음

 

시스템 구성 요소들 간의 상호작용 방법,

시스템 정상 동작 원리 등이 표현 될 수 있음.

 


소프트웨어 아키텍처 / 애플리케이션 아키텍처 

 

소프트웨어 아키텍처

https://docs.oracle.com/javase/1.5.0/docs/index.html

소프트웨어의 구성을 큰 그림으로 표현

어떤 기술을 지원하는지, 어떤 기능을 사용할 수 있는지 O

 

 

웹 애플리케이션을 위한 아키텍처 

애플리케이션 : (넓은 의미) 클라이언트의 요청을 처리하는 서버 애플리케이션

 

 

애플리케이션의 아키텍처 유형 中 계층형 아키텍처 (N-티어)

 

 

 

API 계층 (API Layer)

= 표현 계층 (Presentation Layer)

 

: 클라이언트의 요청을 받아들이는 계층

REST API 제공하는 애플리케이션의 경우 API Layer

 

 

 

서비스 계층(Service Layer)

 

: API 계층에서 전달받은 요청을 

도메인의 요구 사항에 맞게 비즈니스적으로 처리

애플리케이션의 핵심 계층

 

* 도메인 = 분야, 범위, 영역...

도메인 지식 =  특정한 전문화된 학문이나 분야의 지식

ex) 배달 어플 개발시 도메인 지식 = 음식 주문, 주문 처리, 배달 과정 ...

 

 

 

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

: 비즈니스 계층에서 처리된 데이터를 db에 저장하기 위한 계층

 


아키텍처로 보는 Spring Framework 모듈(Module) 구성

 

https://docs.spring.io/spring-framework/docs/5.0.0.M5/spring-framework-reference/html/overview.html

* 모듈이란? : Framework 에서 지원되는 여러가지 기능들을 목적에 맞게 그룹화해서 묶어 놓은 것

재사용 가능, 라이브러리 형태로 제공됨

 

 

각 모듈을 구성하는 라이브러리 예시

 

Core Container : spring-corespring-beansspring-contextspring-context-support, and spring-expression 

AOP & Instrumentation spring-aop, spring-aspects, sprint-instrument, spring-instrument-tomcat

Messaging :  Message, MessageChannel, MessageHandler

Data Access/Integration : spring-jdbc, spring-tx, sprint-orm, spring-oxm, spring-jms

Web : spring-web, spring-webmvc and spring-websocket

Test : spring-test, ApplicationContexts

 

댓글