정보처리기사 실기 Part 4

Justdo2t·2021년 7월 5일
4
post-thumbnail

📍 4장

📌 Sec 71 소프트웨어 아키텍처

모듈화 – 시스템 기능들을 모듈 단위로 나눈다.
추상화 – 개념을 설계한 후 구체화시켜 나간다.
단계적 분해 – 상위 -> 하위 개념을 구체화시키는 분할 기법이다.
정보 은닉 – 정보가 감춰져 다른 모듈이 접근, 변경 못한다.

상위 설계  vs   하위 설계

아키텍처, 전체적 구조    vs   모듈 설계, 내부 구조
구조 DB 인터페이스    vs   컴포넌트, 자료구조, 알고리즘

협약 (Contract)에 의한 설계

  • 컴포넌트 설계 시 클래스에 대한 여러 가정을 공유할 수 있게 명세.

📌 Sec 72 아키텍처 패턴

컴포넌트

  • 독립적인 단위 모듈이며, SW 재사용의 중요성을 위해 나온 기술이다.

레이어 패턴

  • 시스템을 계층으로 구분해 구성하는 패턴. 인접 두 계층끼리 상호작용한다.

클라이언트 – 서버 패턴

  • 하나의 서버 컴포넌트다수의 클라이언트 컴포넌트로 구성한다.

파이프 – 필터 패턴

  • 데이터 스트림 절차를 필터로 캡슐화파이프를 통해 전송한다.

모델 – 뷰 –컨트롤러 패턴 (MVC)

  • 서브시스템을 모델, 뷰 ,컨트롤러구조화. 대화형 애플리케이션에 적합하다.

마스터- 슬레이브 패턴

  • 슬레이브 컴포넌트에서 처리된 결과물을 돌려받는다.

브로커 패턴

  • 브로커 컴포넌트에 요청하면 컴포넌트가 매칭해준다. (브로커처럼)

피어-투-피어 패턴

  • 피어라 불리는 컴포넌트가 클라이언트, 서버 둘 다 될 수도 있다.

📌 Sec 73 객체지향

연관성

is member of – 연관화 : 상호 관련있는 객체 2개
in instance of – 분류화 : 동일한 특성의 객체들 모음
is part of – 집단화 : 묶여 상위 객체를 구성
is a –일반화 , 특수화 : 나머지


📌 Sec 74 객체지향 분석(OOA) 및 설계

객체지향 분석의 방법론

럼바우 방법 – 분석 활동을 객동기 모델로 나눠 수행한다.
부치 방법 – 미시적(Micro), 거시적(Macro) 두 프로세스 다 사용한다.
Jacobson – 유스케이스를 사용한다.
Coad와 Yourdon – ER 다이어그램을 사용한다.

럼바우 방법

  • 모든 SW 구성 요소를 그래픽 표기법을 이용해 모델링.

객체 모델링 – 시스템에서 요구되는 객체를 찾아 관계를 규정해 객체 다이어그램으로 표시한다.
동적 모델링 – 상태 다이어그램을 이용해 동적인 행위를 표현한다.
기능 모델링 – 자료 흐름도(DFD)를 사용해 자료 흐름을 중심으로 표현한다.

객체지향 설계 원칙

  • 변경 및 확장에 유연한 시스템을 설계하기 위해 지켜야할 원칙이다.

단일 책임 원칙
-객체는 단 하나의 책임만 가진다.
개방-폐쇄 원칙
-기존 코드 변경없이 기능을 추가할 수 있어야 한다.
리스코프 치환 원칙
-자식 클래스는 부모 클래스 기능 수행 가능해야한다.
인터페이스 분리 원칙
-사용하지 않는 인터페이스와 관계X, 영향 없어야 한다.
의존 역전 원칙
-의존 관계 시 추상성 높은 애부터 의존 관계를 형성한다.


📌 Sec 75 모듈

  • 모듈의 독립성은 결합도와 응집도에 의해 측정된다.

결합도

              내공강                                                       스자약
내용 결합도, 공통 결합도, 외부 결합도, 제어 결합도, 스탬프 결합도, 자료 결합도
<--- 강함                                                                               약함 --->

내용 결합도 – 한 모듈이 다른 모듈의 기능을 직접 참조한다.
공통 결합도 – 공통 데이터 영역을 사용할 때.
외부 결합도 – 외부 모듈에서 참조할 때.
제어 결합도 – 논리적 흐름 제어를 위해 제어 신호나 요소를 전달할 때.
스탬프 결합도 – 모듈 간 인터페이스, 배열자료구조가 전달한다.
자료 결합도 – 자료 요소로만 구성될 때.

응집도

              기순강                        논우약
기능적, 순차적, 교환적, 절차적, 시간적, 논리적, 우연적
<--- 강함                                              약함 --->

기능적 응집도 – 모든 기능요소들이 단일 문제와 연관.
순차적 응집도 – 출력 데이터를 그 다음 활동의 입력 데이터로 사용
교환적 응집도 – 패스
절차적 응집도 – 순차적으로 수행할 경우. 절차 -> 순차!!
시간적 응집도 – 특정 시간에 처리되는 기능을 모은다.
논리적 응집도 – 유사한 성격의 요소들로 모듈이 형성.
우연적 응집도 – 관련이 없음

팬 인

  • 모듈을 제어하는 모듈의 수.

팬 아웃

  • 제어되는 모듈의 수.

N-S 차트

  • 논리의 기술이 중점, 도형을 이용해 표현하는 방법이다.

  • 박스 다이어그램을 사용.


📌 Sec 77 공통 모듈

공통 모듈 명세 기법

정확성 – 해당 기능이 필요하나는 것을 명시한다.
명확성 – 중의적으로 해석되지 않게 명확하게.
완전성 – 구현을 위해 필요한 모든 것을 기술한다.
일관성 – 기능 간 상호충돌 되지 않게한다
추적성 – 요구사항의 출처, 관계등 파악할 수 있게한다.

재사용 (Reuse)

  • 이미 개발된 기능들을 타 개발에 사용하기 적합하게 최적화하는 작업.

재사용 규모 분류

함수와 객체 – 클래스나 메서드 단위소스 코드를 재사용.
컴포넌트 – 컴포넌트 수정 없이 인터페이스를 통해 통신.
애플리케이션 – 공통 기능을 공유하는 방식으로 재사용.


📌 Sec 78 코드

코드의 종류

순차 코드

  • 최초의 자료부터 차례로 일련번호를 부여. ex ) 1, 2 ,3 4

블록 코드

  • 공통성이 있는 것들을 블록으로 구분, 블록 내의 일련번호 부여
    ex ) 1001 ~ 1100 : 총무부 1101 ~ 1200: 영업부

10진 코드

  • 도서 분류식 코드라고 불리며, 계속 10진 분할
    ex ) 1000: 공학, 1100 :소프트웨어 공학

그룹 분류 코드

  • 대분류, 중분류, 소분류
    ex ) 1-01-001 : 본사

연상 코드

  • 항목의 명칭 or 약호등을 사용
    ex ) TV-40 : 40인치 TV

표의 숫자 코드

  • 대상의 물리적 수치를 코드에 적용
    ex ) 120-750-1500 : 두께 길이

📌 Sec 79 디자인 패턴 (생성 패턴 , 구조 패턴, 행위 패턴)

  • 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 해결 방식 or 예제

생성 패턴

  • 추상 팩토리(abstract Fac) : 객체들의 그룹으로 생성 -> 추상적으로 표현
  • 빌더 : 인스턴스를 건축 하듯이 조합해 객체를 생성
  • 팩토리 메소드(Fac method) : 상위 클래스는 인터페이스만 실제 생성은 서브 클래스가 (분
    할작업) -프로토타입 : 원본 객체를 복제하는 방법으로 객체를 생성
  • 싱글톤(Singleton) : 객체를 생성하면 어디서든 참조가능, But 동시는 안됨

구조 패턴

  • 어댑터 : 인터페이스를 변환시켜줌
  • 브리지 : 구현부에서 추상층 분리. 독립적 확장 가능
  • 컴포지트 : 구분없이 다룸
  • 데코레이터 : 능동적 기능 확장 가능

행위 패턴

  • 책임 연쇄 : 연쇄작용
  • 커맨드 : 요청에 필요한 정보를 저장 or 로그에 남기는 패턴
  • 메멘토(Memento) : 특정 시점에서의 객체 내부 상태를 객체화
  • 옵서버(Observer) : 변화된 상태를 전달
  • 상태(State) : 객체의 상태에 따라 동작을 다르게 처리해야 할 때 사용(상태에 따라 치료방
    법이 다름)
  • 방문자(Visitor) : 데이터 구조에서 처리 기능을 분리 후 별도의 클래스에 구성.
  • 반복자(Iterator) : 반복이 잦음
  • 중재자(Mediator) : 상호작용을 캡슐화
  • 인터프리터(Interpreter) : 문법표현 정의 패턴

📌 Sec 83 배치 프로그램

  • 작업들을 미리 정해진 순서에 따라 일괄처리 하게 만든 프로그램

대용량 데이터 – 대량의 데이터를 가져올 때
자동화 – 사용자의 개입 없이 수행
견고성 – 중복, 오류 등에 중단되면 안됨
안정성/신뢰성 – 오류 발생 시 추적 가능 해야함
성능 – 지정된 시간 내 처리가 완료되어야 함

배치 스케줄러

  • 일괄 처리 작업이 설정된 주기에 맞춰 자동 수행되게 한다.
    스프링배치, Quartz(Spring 오프 소스 라이브러리), Cron
profile
나긋한 나긋나긋

1개의 댓글