오늘은 정보처리기사 실기 내용 중 서버 프로그램 구현에 대해 공부했다.
소프트웨어를 구성하는 요소들간의 관계를 표현하는 시스템의 구조 또는 구조체
모듈화
- A
시스템의 기능들을 모듈 단위로 나누어 유지관리, 재사용이 용이하게 하는 것.
모듈 간 결합도의 최소화
와 모듈 내 응집도의 최대화
가 목표이다.
추상화
전체적이고 포괄적인 개념을 설계한 후 세분화해 구체화 시켜 나가는 것.
단계적 분해
상위의 중요 개념으로부터 하위의 개념으로 구체화시키는 분할 기법. 하향식 설계 전략
정보은닉
한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법.
모듈의 독립적 수행이 가능하다. 하나의 모듈이 변경되어도 다른 모듈에 영향을 주지 않는다.
컴포넌트를 설계할 때 클래스에 대한 여러 가정을 공유할 수 있도록 명세한 것
아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제
SW 시스템 구조를 구성하기위한 기본적인 윤곽을 제시.
서브시스템들과 그 역할이 정의되어 있다.
시스템을 계층으로 구분해 구성하는 고전적인 방법의 패턴
하위계층은 상위계층에 대한 서비스 제공자가 되고, 상위계층은 하위계층의 클라이언트가 된다.
마주보는 두 계층사이에서만 상호작용이 이루어진다.
하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴
데이터 스트림 절차의 각 단계를 필터로 캡슐화해 파이프로 전송하는 패턴
서브시스템이 입력 데이터를 받아 처리하고 결과를 다음 서브 시스템으로 넘겨주는 과정을 반복
서브 시스템을 모델,뷰,컨트롤러로 구조화하는 패턴
컨트롤러가 사용자의 요청을 받으면 핵심기능과 데이터를 보관하는 모델을 이용해 뷰에 정보를 출력하는 구조.
마스터-슬레이브 패턴 : 슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행한다. 막대한 연산이 필요한 작업을 수행하기 위해 여러대의 컴퓨터를 병렬로 연결하고자 하는 상황에 적합하다. 병렬 컴퓨팅 시스템
인터프리터 패턴 : 프로그램 코드의 각 라인을 수행하는 방법을 지정하고 기호마다 클래스를 갖도록 구성된 패턴. 번역이나 프로그래밍 언어 개발에 적합. 번역기, 컴파일러, 인터프리터
소프트웨어의 각 요소를 객체(Object)로 만든 후 객체들을 조립해 SW를 개발하는 기법
객체
데이터(객체가 가지고있는 속성, 상태)와 함수(객체가 수행하는 기능)으로 구성
클래스 - B
공통된 속성과 연산을 갖는 객체의 집합.
하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현하며 데이터를 추상화 하는 단위로 사용된다.
메시지 - B
객체들 간의 상호작용에 사용되는 수단. 객체의 동작이나 연산을 일으키는 외부의 요구사항.
객체에게 어떤 행위를 하도록 지시하는 명령
캡슐화 - B
외부에서의 접근을 제한하기 위해 인터페이스를 제외한 세부내용을 은닉하는 것.
인터페이스가 단순화되고, 재사용성이 높아지고, 변경 발생시 파급효과가 적고, 정보은닉과 관련있다.
상속
상위클래스의 모든 속성과 연산을 하위클래스가 물려받는 것
다형성
하나의 메시지를 각각의 객체가 고유한 방법으로 응답하는 것.
상속받은 여러 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질
연관성
두 개 이상의 객체들이 상호 참조하는 관계
소프트웨어를 개발하기 위한 비즈니스를 객체와 속성, 클래스와 멤버, 전체와 부분 등으로 나누어서 분석하는 기법
Coad와 Yourdon
방법 : E-R 다이어그램을 사용해 객체의 행위를 모델링. Rumbaugh. 모든 소프트웨어 구성요소를 그래픽 표기법을 이용해 모델링하는 기법.
객체 모델링 기법(OMT)라고도 한다.
분석활동은 객체모델링 -> 동적모델링 -> 기능모델링 순으로 이루어진다.
= 정보 모델링. 시스템에서 요구되는 객체를 찾아내 속성과 연산 식별 및 객체들간의 관계를 규정해 표시하는 모델링. ex) ER 다이어그램(ERD)
상태 다이어그램을 이용해 시간의 흐름에 따른 객체들 간의 제어흐름, 상호작용, 동작 순서 등 동적인 행위를 표현하는 모델링 ex) 상태변화도(STD), 사건추적도
다수의 프로세스들 간의 자료흐름을 중심으로 처리 과정을 표현한 모델링
ex) 자료흐름도(DFD)