[HTTP/네트워크] 기초 | 소프트웨어 아키텍처

Eunji Lee·2022년 12월 1일
0

[TIL] Front-end

목록 보기
8/36
post-thumbnail

의미

  • 시스템의 근본적인 체계를 의미함
  • 소프트웨어 아키텍처에는 다음 항목들이 포함됨
    • 시스템의 모든 구성 요소
    • 각각의 구성 요소가 상호 작용하는 방식
    • 구성 요소가 작동하는 환경 및 소프트웨어 설계에 사용되는 원칙

S.O.L.I.D

소프트웨어 아키텍처의 구조적인 오류를 방지하기 위해 반드시 지켜야하는 원칙

Single Responsibility

서비스는 각각의 목표가 있어야함

Open-Closed Principle

소프트웨어의 모듈은 서로 독립적이면서도 확장할 수 있어야 함

Liskov Substitution Principle

독립적인 서비스는 상호작용하며 각각의 서비스를 대체할 수 있어야 함

Interface Segregation Principle

소프트웨어는 마이크로 서비스로 분할될 수 있되, 중복성이 없어야 한다.

Dependency Inversion Principle

상위 모듈은 하위 모듈에 의존해서는 안 되며 상위 모듈의 변경이 하위 모듈에 영향을 미치지 않음

장단점

장점

  • 프로젝트를 위한 견고한 기반을 제공함
  • 성능 향상에 도움이 됨
  • 개발 비용을 절감함

단점

  • 때로는 좋은 도구와 표준화를 얻는 것이 소프트웨어 아키텍처의 문제가 되기도 함
  • 아키텍처를 기반으로 한 프로젝트의 성공을 초기에 예측하는 것이 항상 정확하지는 않음

더 알아보기

소프트웨어 아키텍처의 패턴
Types of Software Architecture Patterns




참고자료

What Is Software Architecture?
Fundamentals of Software Architecture

0개의 댓글