아키텍처(Architecture)

귀찮Lee·2022년 6월 15일
1

Spring

목록 보기
4/30
post-custom-banner

◎ 아키텍처(Architecture)

  • 최적화를 목표로 두고 시스템 구성과 동작원리 그리고 시스템의 구성환경등을 설명 및 설계하는 청사진 또는 설계도
  • 너무 복잡하면 안되고, 심플함을 유지해야 한다.

◎ 시스템 아키텍쳐 (System Architecture)

  • 드웨어와 소프트웨어를 모두 포함하는 어떤 시스템의 전체적인 구성을 큰그림으로 표현한 것
  • 기본적으로 해당 시스템이 어떤 하드웨어로 구성되고, 어떤 소프트웨어를 사용하는지를 대략적으로 알 수 있다.
  • 상호작용이 어떻게 이루어지는지 등 시스템이 정상적으로 동작하기위한 동작 원리 등이 시스템 아키텍처 안에 표현이 되면 이해 당사자들이 해당 아키텍처를 이해하는데 도움이 된다.

◎ 시스템 아키텍쳐 사례

  • 전통적인 채팅 서버의 아키텍쳐 (단점이 많으므로 이를 보완하여 시스템 아키텍쳐를 만듦)
  • 시스템 아키텍쳐 예시

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

  • 소프트웨어의 구성을 큰 그림으로 표현한 것
  • 소프트웨어 아키텍처를 통해 어떤 기술들을 지원하고 어떤 기능들을 사용할 수 있는지 등을 큰 그림으로 접근할 수 있다.
  • 소프트웨어 아키텍쳐 유형
    • 우리가 주로 다룰 웹 어플리케이션 아키텍쳐는 계층형 애플리케이션 아키텍처이다.

◎ 소프트웨어 아키텍쳐의 예시

  • Java SE 아키텍쳐
  • 웹 어플리케이션 아키텍쳐
    • API 계층 (API Layer)
      • 클라이언트의 요청을 받아들이는 계층
      • 일반적으로 표현 계층(Presentation Layer) 라고 불리지만, REST API를 제종하는 경우, API 계층이라 불림
    • 서비스 계층 (Service Layer)
      • API 계층에서 전달 받은 요청을 업무 도메인의 요구 사항에 맞게 비즈니스적으로 처리하는 계층
      • 도메인 : 주로 비즈니스적인 어떤 업무 영역
    • 데이터 엑세스 계층 (Data Access Layer)
      • 비즈니스 계층에서 처리된 데이터를 데이터베이스 등의 데이터 저장소에 저장, 호출하기 위한 계층
  • Spring Framework
    • Spring에서 지원하는 모듈을 아키텍쳐로 표현
    • 모듈 : 지원되는 여러가지 기능들을 목적에 맞게 그룹화 하여 묶어 놓은 것
profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!
post-custom-banner

0개의 댓글