정보처리기사
UML 다이어그램
구조적(정적) 다이어그램
- 객체: 객체 정보
- 클래스: 클래스의 속성, 함수, 변수 타입으로 구성
- 패키지: 클래스 다이어그램의 집합
- 컴포넌트: 컴포넌트끼리의 구조 관계를 표현
- 배치(Deployment): SW, HW 등을 포함한 시스템의 물리적 구조를 나타냄
행위적(동적) 다이어그램
- 유스케이스: 사용자 관점에서 바라본 시스템을 표현
- 관계 종류: 연관, 확장(선택), 포함(필수), 일반화
- 활동: 시스템 전체의 흐름
- 상태: 하나의 객체에서 발생하는 활동 변화
- 순차: 시간의 흐름에 따른 객체 사이의 상호 작용
- 커뮤니케이션
- 인터렉션 오버뷰
- 타이밍
미들웨어
: 클라이언트와 서버 간의 통신을 담당하는 소프트웨어
- DataBase: 데이터베이스와 연결하기 위한 미들웨어(ODBC, JDBC 등)
- Remote Procedure Call: 원격 프로시저를 로컬 프로시저처럼 호출(원격 데스크톱 등)
- Message Oriented Middleware: 비동기형 메시지를 전달, 즉각적인 응답보다는 쌓아두고 시간이 있을 때 처리하는 방식
- Transaction Processing Monitor: 항공기나 철도 예약 업무 등과 같은 온라인 트랜잭션을 처리 및 감시, 빠른 응답속도를 유지해야 할 경우 주로 사용
- Object Request Broker: 객체지향 미들웨어
- Web Application Server: 동적인 콘텐츠를 처리하기 위한 미들웨어로, 웹 환경을 구현하기 위해 사용
요구사항 분석
- 기능적 분석: 기능 관련
- 비기능적 분석: 기능의 성능, 보안, 품질 관련
애자일 방법론
: 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행
- eXtreme Programming: 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
- 핵심 가치: 의사소통, 피드백, 존중, 용기, 단순성
- Scrum: 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 개발 방법론
- LEAN: 낭비 요소를 제거하여 품질을 향상
구조적 방법론
: 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
- 종류: Data Flow Diagram, Data Dictionary
정보공학 방법론
: 계획, 분석, 설계, 구축에 정형화된 기법들을 통합 및 적용하는 자료 중심의 방법론
- Entity-Relationship-Diagram: DB 설계의 표현으로 사용하는 모델링 언어
객체지향 방법론
: 현실 세계의 개체(Entity)를 속성(Attribute)과 메소드(Method)가 결합된 형태의 객체(Object)로 표현
- UML 표기법: 사물, 관계, 다이어그램(사물과 사물 간의 관계를 용도에 맞게 표현)으로 구성
애자일 SW 개발선언
- 개인과 상호작용에 더 가치를 둔다.
- 실행되는 SW에 더 가치를 둔다.
- 고객과 협업에 더 가치를 둔다.
- 변화에 반응하는 것에 더 가치를 둔다.
UI
- 설계 지침: 유연성, 학습성, 유효성, 직관성
- User Experience: 경험기반 디자인 → UI 생성
- UI 종류
- Graphical User Interface: 그래픽 환경을 기반으로 한 마우스를 이용하는 사용자 인터페이스
- Command Line Interface: 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스
- Natural User Interface: 사용자의 움직임을 인식하여 서로 주고받는 정보를 제공하는 사용자 인터페이스
- Organic User Interface: 현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스
EAI ( Enterprise Application Integration )
: 기업에서 운영하는 서로 다른 플랫폼, App간의 정보 전달, 연계, 통합을 위한 솔루션
객체지향
- 클래스: 공통 속성을 공유하는 객체들의 집합
- 캡슐화: 서로 관련성이 많은 데이터들과 연산들을 묶음
객체지향 분석의 방법론
- Rumbaugh: 가장 일반적으로 사용되는 방법으로 분석 활동을 객체(▶ 객체 다이어그램 활용)/동적(▶ 상태 다이어그램)/기능(▶ DFD) 모델로 나누어 수행하는 방법
- Booch: 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용
- Jacobson: Use Case를 강조하여 사용
- Coad와 Yourdon: E-R다이어그램을 사용
- Wirfs-Brock: 분석과 설계간의 구분이 없음
모듈과 컴포넌트
- 모듈: 비슷하거나 연관성 있는 것들로 이루어진 메소드나 클래스의 집합
- 컴포넌트: 기능의 최소 단위
- Client-Server 시스템으로 예를 들자면 하나의 서버가 10개의 클라이언트에게 정보를 제공할 때, 모듈은 서버와 클라이언트 2개를 가지지만 컴포넌트는 11개
GoF(Gang of Four) 디자인 패턴
생성 패턴(Creational Patterns) 5 : 객체 생성에 대한 패턴
종류 | 설명 |
---|---|
Abstract Factory | 구체적인 클래스를 지정하지 않고 관련성을 갖는 객체들의 집합을 생성하거나 서로 독립적인 객체들의 집합을 생성할 수 있는 인터페이스를 제공 |
Builder | 생성 절차는 동일하지만 결과는 다르게 만듦 |
Factory Method | 객체를 생성할 때 필요한 인터페이스 생성 |
Propotype | 원본 객체를 복사하여 새 객체를 생성 |
SingleTon | 오직 하나의 객체만들 생성 |
구조 패턴(Structural Patterns) 5 : 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
종류 | 설명 |
---|---|
Adapter | 클래스의 재사용성을 높이기 위해 클래스간의 기능을 변환 제공하여 호환성을 확보 |
Bridge | 기능 클래스 계층과 구현 클래스 계층을 분리 |
Composite | 복잡한 객체구조를 표현하여 객체집합 속에 또 다른 객체집합을 갖음 |
Decorator | 새로운 기능이 추가될 때마다 새로운 객체를 만들고, 이전 객체의 기능은 새로운 객체내에서도 그대로 유지, 보장 |
Facade(퍼싸드) | 서브시스템이 복잡할 경우 간단한 인터페이스를 통해 서브시스템의 주요기능을 사용할 수 있도록 함 |
Fly weight | 인스턴스를 가능한 한 공유시켜 불필요한 생성을 하지않도록 함 |
Proxy | 객체접근을 제어 |
행위 패턴(Behavioral Patterns) 11 : 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
아키텍쳐 패턴의 유형
- Layers(계층화) Pattern: 시스템을 계층구조(Layer)로 쌓아둔 전형적 패턴
- 특정 레이어만 유지보수하여 시스템 개선 가능
- Client-Server 패턴:
- 서버(=1, 항시대기): 자원 제공
- 클라이언트(=다수): 자원 요청
- 각자의 기능이 독립적으로 동작
- 파이프-필터 패턴: 데이터의 흐름(스트림)의 각 단계를 파이프와 필터로 연결
- 파이프: 각 단계명
- 필터: 각 파이프를 통해 넘어온 데이터를 처리하고 캡슐화
- 재사용성, 확장성이 좋아 다양한 파이프라인 생성 가능
- 모델-뷰-컨트롤러 패턴(MVC)
- 마스터-슬레이브 패턴:
- 마스터 컴포넌트가 지시한 일을 여러 슬레이브 컴포넌트가 병렬처리하여 결과를 취합
- 몇 개의 슬레이브가 고장나도 업무 처리에는 문제가 없음
- 피어 투 피어 패턴(P2P): 서버와 클라이언트가 서로 역할을 바꿀 수 있는 형태(torrent)로 두 가지 일을 병렬로 수행하는 멀티스레딩(자원요청/제원제공)이 특징
- 이벤트-버스 패턴: 특정 이벤트를 발행하면 해당 채널(버스)를 구독하고 있는 리스너들이 이벤트를 받아서 처리하는 형식
- 블랙보드 패턴: 공유데이터를 관리하는 블랙보드에 접근하여 원하는 데이터를 찾는 형식
참고 자료
'Certificate > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 2022년 1회차 (1)소프트웨어 설계 (0) | 2023.07.08 |
---|---|
[정보처리기사] 2022년 2회차 (5)정보시스템 구축관리 (0) | 2023.07.07 |
[정보처리기사] 2022년 2회차 (4)프로그래밍 언어 활용 (0) | 2023.07.07 |
[정보처리기사] 2022년 2회차 (3)데이터베이스 설계 (0) | 2023.07.06 |
[정보처리기사] 2022년 2회차 (2)소프트웨어 개발 (0) | 2023.07.06 |