728x90
아키텍처(Architecture)
- 건축 분야에서 유래된 용어로 요구사항을 만족하는 건축물을 짓는데 있어 청사진과 같은 역할을 한다.
소프트웨어 아키텍처(Software Architecture)
- 소프트웨어의 구성을 큰 그림으로 표현한 것이다.
애플리케이션(Application)
- 소프트웨어 종류의 하나로 좁게는 데스크탑이나 스마트폰에서 사용하는 응용 프로그램을 말하며, 넓게는 클라이언트의 요청을 처리하는 서버 애플리케이션을 뜻한다.
웹 개발을 위해 중점적으로 알고있어야 하는 아키텍처는 웹 상에서 동작하는 웹 애플리케이션을 위한 아키텍처이다.
계층형 웹 애플리케이션 아키텍처
API 계층(API Layer)
- 클라이언트의 요청을 받아들이는 계층으로 일반적으로 표현 계층(Presentation Layer)라고 불리지만 REST API를 제공하는 애플리케이션의 경우 API 계층이라고 표현한다.
서비스 계층(Service Layer)
- API 계층에서 전달 받은 요청을 업무 도메인의 요구사항에 맞게 비지니스적으로 처리하는 계층이다. 애플리케이션의 핵심 로직은 서비스 계층에 포함되어있다고 해도 과언이 아닐만큼 핵심이 되는 계층이다.
- 도메인 지식(Domain Knowledge)
- 배달 애플리케이션에서 주문을 받고 처리하는 과정 등을 도메인 지식이라고 하며, 이것을 비지니스 로직으로 잘 표현해야 하는 것이 중요하다.
데이터 엑세스 계층(Data Access Layer)
- 비지니스 계층에서 처리된 데이터를 데이터베이스 등의 데이터 저장소에 저장하기 위한 계층이다.
아키텍처로 보는 스프링 프레임워크 모듈(Spring Framework Module) 구성
모듈(Module)
- Java에서 일반적으로 지원되는 여러가지 기능들을 목적에 맞게 그룹화하여 묶어 놓은 것을 말한다. 이러한 모듈들은 Java의 패키지 단위로 묶여있으며, 이 패키지 안에는 관련 기능을 제공하기 위한 클래스들이 포함되어있다. 일반적으로는 재사용 가능하도록 라이브러리 형태로 제공되는 경우가 많다.
728x90
'[Spring] > Spring 기본' 카테고리의 다른 글
스프링의 엔트리 포인트 클래스 (0) | 2022.11.16 |
---|---|
스프링 부트(Spring Boot)란? (0) | 2022.10.12 |
PSA(Portable Service Abstraction) (0) | 2022.10.12 |
AOP(Aspect Oriented Programming) (0) | 2022.10.12 |
IoC(Inversion of Control) & DI(Dependency Injection) (0) | 2022.10.12 |