AngelPlayer`s Diary


해당 포스트는 제가 정보처리기사를 준비하면서 공부한 내용을 요약한 문서입니다.

요약한 내용은 대체적으로 이전 기출문제를 풀기 위해서 알아야 할 중요한 개념 중심으로 정리하였습니다.

일부 임의로 요약한 내용이나 암기를 쉽게 하기 위해서 개념이 조금 틀리지만 수정한 내용이 있을 수 있습니다.

각 개인마다 공부 방식이 다르니 해당 포스트의 내용을 무조건 맹신하기보다는 참고하시는 방법을 권장 드립니다. 

오늘도 공부하시느라 애쓰시는 모든 분들에게 좋은 결과가 있으시길 바랍니다.


(해당 포스트는 시나공, 수제비 정보처리기사 실기 책을 참고하여 작성하였습니다.)

(포스트 내용을 개인 공부를 위해서 로컬 저장소에 저장하는 것은 가능하나,

내용을 그대로 복사하여 다른 곳에 재업로드하는 것은 자제해주시면 감사하겠습니다.)

 

 

 

자료 흐름도 (DFD) : Data Flow, E-R, UML

구성 요소 : data store, terminator, process, data flow

버블 차트라고도 부름

자료의 흐름 및 변환 과정을 보여줌 (시간의 흐름은 파악하기 어려움)

 

 

UML : 의사소통을 위해 만들어진 언어, 다이어그램 표현

구성 요소 : Thing, Relationship, Diagram

 

UML 관계

Association : 연관, 사물이 서로 연관

Aggregation : 집합, 하나가 다른 하나에 포함

Dependency : 의존, 서로에게 영향을 줌

Composition : 포함, 포함하는 사물에 영향

Realization : 오퍼레이션 수행(실행)

 

UML 다이어그램 종류

구조적 다이어그램 : 클래스, 객체, 컴포넌트, 배치, 복합체, 패키지

행위 다이어그램 : 유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 상호작용, 타이밍

 

 

유스케이스

액터 : 시스템과 상호작용하는 모든 외부 요소

주엑터 : 이익을 얻는 대상(사람)

부엑터 : 시스템과 데이터를 주고 받는 외부 시스템(기업, 조직)

 

 

추상화 : 전체적이고 포괄적인 개념 설계, 차례로 세분화하여 구체화 (제과자)

과정 추상화(전체적인 흐름), 자료 추상화(데이터 구조 표현), 제어 추상화(이벤트 표현)

 

 

XP : 일부 기능 완성마다 고객에게 보여줌

 

 

기능 요구사항 : 입출력, 연산, 시스템 수행 기능, 시스템 제공 기능

비기능 요구사항 : 장비, 성능, 인터페이스, 데이터, 테스트, 보안, 품질, 관리, 지원

 

 

마스터-슬레이브 아키텍처 : 슬레이브는 연산, 통신, 제어 기능을 제외하면 마스터와 동일한 기능을 수행

 

 

객체지향 분석 방법론

럼바우 : 객동기

C-Y : E-R

Jacobson : 유스케이스

부치 : 미시적, 거시적

 

 

럼바우(Rumbaugh) : 객동기

객체 : 객체 간의 관계를 규정 (객체 다이어그램 사용)

동적 : 시간의 흐름에 따른 상호작용 (상태 다이어그램 사용)

기능 : 자료 흐름도(DFD) 이용

 

 

미들웨어

다양한 서비스의 연결을 제공하는 소프트웨어

위치 투명성 제공

재사용 가능한 서비스 구현

DB, RPC, MOM, TP-Moniter, ORB, WAS

RPC : 원격 프로시저를 로컬 프로시저처럼 호출하는 미들웨어

TP-Moniter : 트랜잭션 처리

 

 

시퀀스 다이어그램 구성요소 : 액터, 객체, 생명선, 실행 상자, 메시지

 

 

CASE : 소프트웨어 개발 과정 전체 또는 일부를 소프트웨어로 자동화

생명 주기 전체를 연결, 개발 모형 지원, 그래픽 지원

원천 기술 : 구조적, 프로토타이핑, 응용 프로그래밍, 정보 저장소, 분산처리

상위 케이스 : 분석, 설계

하위 케이스 : 구현(전체 코드 구현은 불가능), 테스트

 

 

시스템 구성 요소 : 입출력, 제어, 피드백

 

 

요구사항 분석 프로세스 : 도출 - 분석 - 명세 - 확인 (도분명확)

 

 

 

GoF : 디자인 패턴, 생구행으로 나눌 수 있음

- 생성 : 추상 팩토리, 빌더, 프로토타입, 싱글톤

팩토리 메소드는 Virtual-Constructor

 

- 구조

어댑터 : 다른 클래스가 이용하도록 변환

브릿지 : 별도의 클래스로 나누어 구현

컴포지트 : 객체를 구분없이 사용

데코레이터 : 상속없이 동적으로 기능 할당

Facade : 상위로 덮어씌움

플라이 웨이트 : 메모리 절약

프록시 : 다른 객체와 연결하는 인터페이스

 

- 행위

Mediator : 중재자, 상호작용을 캡슐화

Strategy : 전략, 원하는 알고리즘을 선택하여 사용

 

생성 종류 : 팩토리, 빌더, 프로토타입, 싱글톤

구조 종류 : 어댑터, 브릿지, 컴포지트, 데코레이터, 퍼싸드, 플라이웨이트, 프록시

 

 

직관성 : 쉽게 이해하고 사용

유효성 : 목적 달성

유연성 : 요구사항 수용

학습성 : 쉽게 학습

 

 

- 버스 관계 (일반화/구체화) 관계, 실선 화살표

 

자료 사전

= 정의

+ 연결

() 생략

[] 선택

{} 반복

** 설명

객체지향 설계 원칙

Single : 객체는 단 하나의 책임만 가짐

Open : 기존 코드 변경 없이 기능 추가가 가능해야 함 (캡슐화)

Liskov : 상속

Interface : 인터페이스 분리

Dependency : 의존 관계

 

 

요구 사항 검토

동료검토 : 명세서 작성자가 명세서 내용을 직접 설명

워크스루 : 미리 배포하여 사전 검토

인스팩션 : 작성자를 제외한 다른 전문가가 명세서를 확인

 

 

소프트웨어 상위 설계(전체) : 구조, DB, 인터페이스, 아키텍처

소프트웨어 하위 설계(기능) : 컴포넌트, 자료구조, 알고리즘, 모듈

 

 

개발 비용은 유지보수 단계에서 가장 많이 소요됨

 

 

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band