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

정보처리기사 실기(서버 프로그램 구현) 소프트웨어 아키텍처

by 열정적인 이찬형 2022. 3. 19.
※본 내용은 스스로 공부하며 중요하다고 생각하는 부분만 정리한 내용입니다. 

공부 서적(시나공 정보처리기사 필기책)

 

시나공 정보처리기사 실기

시나공 정보처리기사 실기는 NCS 학습 모듈을 가이드 삼아 자세한 설명과 충분한 예제를 더한 후 교재에 수록된 문제나 이론은 하나도 빼놓지 않고 이 분야에 전혀 기초가 없는 수험생의 눈높이

book.naver.com

출처: 시나공 정보처리기사 실기

저자: 김정준,강윤석,김용갑,김우경

출판사 : 길벗


소프트웨어 아키텍처


 
개발 환경 구축
  • 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체
  • 기본 원리 : 모듈화, 단계적 분해, 정보은닉, 추상화
모듈화
  • 시스템의 기능들을 모듈 단위로 나누는 것
추상화
  • 전체적이고 포괄적인 개념을 설계한 후 구체화시켜 나가는 것
  • 과정 추상화 : 전반적인 흐름만 파악하도록 설계
  • 데이터 추상화 : 데이터 구조를 대표할 수 있는 표현으로 설계
  • 제어 추상화 : 이벤트 발생을 대표할 수 있는 표현으로 설계

단계적 분해

  • 상위의 중요 개념으로부터 하위의 개념으로 구체화시키는 분할 기법
  • 하향식 설계 전략, 포괄적 기능부터 시작해서 점차적으로 구체화

정보 은닉

  • 모듈 내부에 포함된 절차와 자료들의 정보를 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법
  • 모듈을 독립적 수행, 수정/시험/유지보수 용이

상위 설계와 하위 설계

  • 상위 설계(아키텍처 설계, 예비 설계) : 시스템 전체적 구조, 구조, DB, 인터페이스
  • 하위 설계(모듈 설계, 상세 설계) : 시스템 내부 구조 및 행위, 컴포넌트, 자료 구조, 알고리즘

소프트웨어 아키텍처 품질 속성

  • 시스템 측면 : 성능, 보안, 가용성, 기능성, 사용성, 변경 용이성, 확장성 등
  • 비즈니스 측면 : 시장 적시성, 비용과 혜택, 예상 시스템 수명 등
  • 아키텍처 측면 : 개념적 무결성, 정확성, 완결성, 구축 가능성, 변경성, 시험성 등

아키텍처 설계 과정

  • 설계 목표 설정
  • 시스템 타입 결정
  • 아키텍처 패턴 적용
  • 서브 시스템 구체화
  • 검토

협약에 의한 설계

  • 컴포넌트를 설계할 때 클래스에 대한 여러 가정을 공유할 수 있도록 명세한 것
  • 선행 조건, 결과 조건, 불변 조건

댓글