** 자기 공부용 및 암기용으로 포스팅하는 글 입니다.
** 정확한 정보는 보장 할 수 없으니, 참고용으로만 봐주시면 감사하겠습니다.
** 제 개인적인 생각 및 자기 암시목적으로 작성되기에 이점 양해 부탁드립니다.
들어가기에 앞서..
소프트웨어 개발 시 자주 듣는 단어인 아키텍처에 관하여 어떤 것을 의미하는지 알아보는 시간을 가져보자.
이번 포스팅을 통해 Spring Framework 아키텍처를 확인해 보고, Spring Framework에 지원하는 기능들을 Spirng 모듈에 관하여 알아보자.
★ 알아볼 내용
1. 아키텍처 정의
2. 시스템 아키텍처 설계 및 표현
3. 소프트웨어 아키텍처 Java
4. 웹 애플리케이션 아키텍처
내용 설명
1. 아키텍처 정의
우선 아키텍쳐(Architecture)는 건축물을 짓는 데 있어서 청사진 같은 역할을 한다.
건축은 업체에서 원하는 의도나 요구 사항에 맞는 구조물을 만들기 위해 컨셉트를 먼저 정한 후, 이를 기반으로 구조물을 만드는 방식으로 진행한다.
우리가 프로그래밍하는 방식도 이와 비슷한 구조이다.
컴퓨터 시스템에서의 아키텍처 또한 어떠한 시스템을 구축하는 데 있어서 해당 시스템의 비즈니스적 요구 사항을 만족하는 전체 시스템 구조를 정의하는 것이다.
이해 당사자들이 전체 시스템 구조를 이해하는데 무리가 없도록 일반적으로 도식화를 통해 많이 나타낸다.
즉 이해도가 높은 도식화가 필요하기에 너무 복잡하지 않게 설계해야 한다는 것이다.
2. 시스템 아키텍처 설계 및 표현
시스템 아키텍처란
하드웨어와 소프트웨어를 모두 포함하는 시스템의 전체적인 구성을 큰 그림으로 표현하는 것이다.
이를 통하여 기본적으로 해당 시스템이 어떤 하드웨어로 구성되고, 어떤 소프트웨어를 사용하는지 대략적으로 알 수 있다.
또한 해당 시스템 구성 요소들 간의 상호작용이 어떻게 이루어지는지 등 시스템이 정상적으로 동작하기 위한 동작 원리 등이 시스템 아키텍처 안에 표현이 되면 이해 당사자들이 해당 아키텍처를 이해하는데 도움이 된다.
시스템 아키텍처 설계 도식화는 아래와 같다.
3. 소프트웨어 아키텍처 Java
소프트웨어 아키텍처란
하드웨어를 제외한 컴퓨터 내의 모든 프로그램을 포괄하는 의미를 지니고 있으며, 이를 그림으로 표현한 것이다.
소프트웨어 아키텍터 사례의 대표적인 것이 바로 java 플랫폼 아키텍처이다.
4. 웹 애플리케이션 아키텍처
애플리케이션의 아키텍처 유형에는 다양한 유형이 있지만, 웹 애플리케이션과 연관이 있는 계층성 아키텍처(N-티어)를 살펴 보도록 하자.
웹 애플리케이션을 계층형으로 표현한 아키텍처는 아래와 같다.
우리는 여기서 API 계층과 서비스 계층 그리고 데이터 액세스 계층의 정의를 확인해 보자.
- API 계층( API Layer )
클라이언트의 요청을 받아들이는 계층이다.
REST API 요청을 처리하는 애플리케이션이 된다.
- 서비스 계층( Service Layer )
서비스 계층은 API 계층에서 전달 받은 요청을 업무 도메인의 요구 사항에 맞게 비즈니스적으로 처리하는 계층이다.
- 데이터 액세스 계층
비즈니스 계층에서 처리된 데이터를 데이터베이스 등의 데이터 저장소에 저장하기 위한 계층이다.
'Spring 지식 및 공부' 카테고리의 다른 글
[Spring] Spring MVC (0) | 2024.07.08 |
---|---|
[Spring] 자주 사용하는 어노테이션(Annotation) 정리 (0) | 2024.07.06 |
[Spring] AOP & PSA (0) | 2024.07.03 |
[Spring] IoC/DI (1) | 2024.06.30 |
[Spring] POJO (Plain Old Java Object) (0) | 2024.06.29 |