본문 바로가기

2021 정보처리기사/1과목: 소프트웨어 설계

[2021 정보처리기사 필기] 소프트웨어 아키텍처 설계의 기본 원리

728x90
반응형

 

 

목차

 

 

[정보처리기사 1과목 필기 예상 키워드] 목록으로 돌아가기
과목: 1. 소프트웨어 설계
챕터: 3장 어플리케이션 설계
키워드: 소프트웨어 아키텍처
#소프트웨어 아키텍처
#모듈화(정보은닉)

 

 

 

소프트웨어 아키텍처 설계의 기본 원리

소프트웨어 아키텍처란?
소프트웨어의 골격이 되는 기본 구조이자, 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조/구조체

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

모듈화란?
소프트웨어의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리 등이 용이하도록 시스템의 기능들을 모듈단위로 나누는 것을 의미한다. 모듈의 개수가 많아지면 모듈 하나의 개발 비용이 줄어들고, 모듈의 크기가 커지면 모듈 간의 통합 비용이 적어지는 대신 모듈 하나의 개발 비용이 커지게 된다.

모듈화
추상화 (공통적인 부분을 포괄) 구체화 (세부적 부분을 포함)
인증기능
- 로그인 기능
- 회원가입 기능
- 아이디 찾기 기능
- 비밀번호 찾기 기능

추상화의 유형: 과정(흐름), 구조(데이터), 제어(이벤트)

 


 

 

모듈화 - 추상화, 단계적 분해

* 추상화는 "포괄"을 목적으로 하기 위함이 아니라, 구체화를 위한 사전 단계라고 할 수 있다. 예를 들어 옷 정리를 할 때 우선 여름옷, 겨울옷 같이 큰 분류를 나눈 뒤에 세부적 분류를 하는 것과 같은 방식이라고 할 수 있다.

추상화를 통해 단계적 분해를 진행할 수 있다. 추상화를 반복할 수록 조금 더 구체적인 분해가 가능하다. 이것을 하향식 구체화라고 이야기 한다. (ex. 로그인 기능 제작> 알고리즘 구체화> 자료구조 구체화) 기능에서부터 시작하여 점차적으로 구체화되고, 알고리즘과 자료구조 등 상세한 내역은 가능한 한 뒤로 미루어 진행하게 된다.

 


 

 

모듈화 - 정보 은닉

정보 은닉이란  한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법이다. 추상화> 단계적 분해까지 모듈화가 진행되었다면 마지막으로 정보은닉이 진행된다. 각각의 모듈이 서로 접근할 수 없도록 차단한다. 대신 별도의 인터페이스를 사용해서만 접근을 허락하게 된다. 이렇게 하면 각각의 모듈의 유지보수에 굉장한 이점이 있다.

캡슐로 된 감기약을 예로 들면, 정보 은닉은 감기약 캡슐에 어떤 재료가 들어 있는지는 몰라도 감기 걸렸을 때 먹는 약이라는 것만 알고 복욕하는 것과 같은 의미이다.


더 자세하게 알아보기

 

[소프트웨어 설계] 객체 지향 개발의 특성: (1)캡슐화

[소프트웨어 설계] 객체 지향 개발(Object Oriented Programming)의 특성 객체지향개발(Object Oriented Programming)의 특성: (1) 캡슐화 객체지향개발의 특성은 크게 네 가지가 있고, 이중에서 캡슐화(Encapsula..

y-oni.tistory.com



 

 


 

아키텍처 품질 속성

더 자세하게 알아보기

 

[소프트웨어 설계] 소프트웨어 아키텍처(Architecture)

[소프트웨어 설계]  소프트웨어 아키텍처(Architecture) 소프트웨어 아키텍처(Architecture) [마틴 파울러] 소프트웨어 아키텍처의 중요성 (한글자막) 소프트웨어 아키텍처의 정의 아키텍처란 소프트웨

y-oni.tistory.com


시스템 측면
- 성능, 보안, 가용성, 기능성, 사용성

비즈니스 측면
- 시장 적시성, 비용과 혜택, 시스템 수명

아키텍처 측면
- 무결성, 정확성, 완결성, 구축 가능성

 

 

 

아키텍처 설계과정

목표 설정 *시스템 타입  아키텍처 패턴  시스템 구체화 검토



* 시스템 타입 / 협약에 의한 설계
1. 시스템 타입
- 시스템 타입은 일반적으로 네 가지 타입으로 나눌 수 있다.

1) 대화형 시스템(온라인 쇼핑몰, 대부분의 웹 어플리케이션)
2) 이벤트 중심 시스템(외부 상태 변화에 따라 동작하는 시스템으로 비상벨, 전화 등 내장 소프트웨어)
3) 변환형 시스템(데이터가 입력되면 정해진 작업을 수행하여 출력하는 시스템, 컴파일러, 네트워크 프로토콜 등)
4) 객체 영속형 시스템(DB를 사용하여 파일을 효과적으로 저장, 검색, 갱신 할 수 있음, 서버 관리 소프트웨어 등)

2. 협약
- 협약에 의한 설계 시 명세에 포함될 조건에는 선행 조건, 결과 조건, 불변 조건이 있다.

1) 선행조건: 오퍼레이션이 호출되기 전에 참이 되어야 할 조건
2) 결과조건: 오퍼레이션이 수행된 후 만족되어야 할 조건
3) 불변조건: 오퍼레이션이 실행되는 동안 항상 만족되어야 할 조건


 


 

소프트웨어 아키텍처 설계 정리

소프트웨어 아키텍처
뜻: 기본 구조, 개발 기반
역할: 품질유지, 원칙, 지침
모듈: 부품

기본원리
모듈화: 유지관리에 좋음(많으면 통합비용, 적으면 개발비용)
추상화: 포괄적 개념, 구체화를 위해 필요, 가성비, 구조파악 용이
단계적 분해: 하향식, 추상화의 반복으로 더 많은 단계의 분해 가능
정보은닉: 접근 금지, 별도의 인터페이스 사용, 유지보수에 용이

품질속성
시스템(성능. 보안) / 비즈니스(비용, 자원)/ 아키텍처(결함)

설계과정
목표 설정  시스템 타입(&협약)  아키텍처 패턴  시스템 구체화  검토



 

 

 

 

 

 

 

[2021 정보처리기사 키워드 정리] 1. 소프트웨어 설계 (상시업데이트)

[2021 정보처리기사 키워드 정리] 1. 소프트웨어 설계 2021년 정보처리기사 공부를 위해 각 과목/챕터 별 Best 키워드를 정리해 놓은 글입니다. 시나공 문제집의 기출빈도와 중요도를 기준으로 정리

y-oni.tistory.com

참고: 시나공 정보처리기사 필기 (저자: 강윤석, 김용갑, 김우경, 김정준 | 출판사: 길벗), 유튜브 주간컴공TV

 

 

728x90