본문 바로가기
정보처리기사

소프트웨어 아키텍처(Software Architecture) 란?

by mooyou 2021. 5. 28.
728x90
300x250

 

 

소프트웨어 아키텍처(Software Architecture) 란?

 

개념적 의미

여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중 외부에 드러나는 특성, 그리고 구성 요소 간의 관계를 표현하는 시스템 구조나 구조체

 

좀 더 자세히 설명하면

소프트웨어 아키텍처에서
아키텍처 = 구조

소프트웨어는 여러가지 기능들로 구성되어있습니다. 예를들어 포토샵만 봐도 도형그리기, 색칠하기, 저장하기, 글씨쓰기 등 다양한 기능들이 존재 합니다.
그래서 이렇게 수많은 기능 하나하나의 부품들을 어떻게 연결시켜 관계를 맺었는지 각각의 요소들간의 관계를 표현하는 것

각 부품의 기능들을 쭉 뽑아서 이해 관계자들이 모여서 이런이런 기능들을 어떻게 배치할지 얘기해서 결정합니다
하나의 의사소통 도구로 활용 되는 것입니다.

 

 

소프트웨어를 구성하고 있는 작은 기능 하나하나 단위를 모듈이라고 하고

이 모듈을 기능별로 묶어 놓은 집합을 컴포넌트라고 합니다.

그리고 이 전체를 라이브러리라고 합니다.

 

그래서 하나의 소프트웨어를 개발할때 이런 수많은 모듈들을 어떻게 분할하고 어떻게 배치할 것인가 

파일 메뉴에는 어떤 기능을 편집에는 어떤 기능을 배치할 것인가 이런 것들을 결정할 때 참고하는 것이 소프트웨어 아키텍처이고 건물로 따지면 설계도 평면도에 해당하는 것 입니다.

 

 

소프트웨어 아키텍처 설계의 기본 원리에는 모듈화, 추상화, 단계적 분해, 정보은닉이 있습니다.

  • 모듈화 : 소프트웨어 성능 향상 및 유지관리 등이 용이하도록 시스템의 기능을 모듈단위로 나누는 것
  • 추상화 : 전체적이고 포괄적인 개념을 설계한 후에 구체화시켜 나가는 것
  • 단계적 분해 : 상위 개념부터 하위 개념으로 구체화 시키는 분할 기법 하향식 설계 전략
  • 정보은닉 : 모듈 내부에 정보와 자료들을 숨겨서 다른 모듈이 접근하거나 수정 못하도록 하는 기법

 

 

728x90
반응형

댓글