정보처리기사
GoF(Gang of Four) 디자인 패턴(시험 직전에 확인)
: 객체지향언어에서 자주 발생하는 문제에 대해 일반적인 소스코드 형식을 미리 만들어둔 해결 방법
생성 패턴(Creational Patterns) 5 : 객체 생성에 대한 패턴
종류 | 설명 |
---|---|
Abstract Factory | 특정 그룹에 속하는 여러 객체들을 하나의 팩토리로 묶어서 생성할 수 있는 패턴 |
Builder | 복잡한 객체들을 단계별로 생성할 수 있도록 하는 생성 디자인 패턴 |
Factory Method(Virtual Constructor) | 객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될 것인지는 서브클래스가 결정하도록 함 |
Prototype | 원본 객체를 복사하여 새 객체를 생성 |
SingleTon | 오직 하나의 객체만을 생성 |
구조 패턴(Structural Patterns) 7 : 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
종류 | 설명 |
---|---|
Adapter | 호환되지 않는 인터페이스를 가진 객체들간의 기능을 변환 제공하여 호환성을 확보 |
Bridge | 추상화 클래스 계층과 구현 클래스 계층을 분리 |
Composite | 복잡한 객체구조를 표현하여 객체 집합 속에 또 다른 객체 집합을 갖음 |
Decorator | 새로운 기능이 추가될 때마다 새로운 객체를 만들고, 이전 객체의 기능은 새로운 객체내에서도 그대로 유지, 보장 |
Facade(퍼싸드) | 서브시스템이 복잡할 경우 간단한 인터페이스를 통해 서브시스템의 주요기능을 사용할 수 있도록 함 |
Fly weight | 인스턴스의 공유를 통해 불필요한 객체 생성을 하지않도록 함 |
Proxy | 원래 객체에 대한 접근을 제어하므로, 요청이 원래 객체에 전달되기 전 또는 후에 무언가를 수행할 수 있도록 함 |
행위 패턴(Behavioral Patterns) 11 : 반복적으로 사용되는 객체들의 상호작용을 패턴화
요구사항 분석 기법
구조적 분석
: 하향식 접근 방식(폭포수 모형)
- DFD: 프로세스와 프로세스 간에 존재하는 상호작용 표현
- DD: 데이터 흐름도(Data Flow Diagram)에 기술된 자료들에 대해 정의
- = 정의 - + 연결 - () 생략 - {} 반복 - [] 선택 - ** 주석
- Mini spec.: 자료 흐름도를 보완 설명
- ERD: 시스템에서 처리되는 개체와 속성 그리고 관계를 표현하여 개체를 모델화하는 도구
- STD(State Transition Diagram): 시스템의 상태와 변화를 모델링
객체지향적 분석
: 상향식 접근 방식
- Rumbaugh: 가장 일반적으로 사용되는 방법으로 분석 활동을 객체, 동적, 기능 모델로 나누어 순서대로 수행
- 객체 모델링(Object Modeling): 클래스 다이어그램을 이용하여 시스템에서 요구되는 객체을 표현한 것
- 동적 모델링(Dynamic Modeling): 상태 다이어그램을 이용하여 시간의 흐름에 따른 객체들 사이의 동적인 행위를 표현한 것
- 기능 모델링(Functional Modeling): 자료 흐름도(DFD)를 이용하여 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 것
- Booch: 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용
- Jacobson: UseCase를 강조하여 사용
- Coad와 Yourdon: E-R다이어그램을 사용
- Wirfs-Brock: 분석과 설계간의 구분이 없음
미들웨어
: 클라이언트와 서버 간의 통신을 담당하는 소프트웨어
- Remote Procedure Call: 원격 프로시저를 로컬 프로시저처럼 호출(원격 데스크톱 등)
- Message Oriented Middleware: 비동기형 메시지를 전달, 즉각적인 응답보다는 쌓아두고 시간이 있을 때 처리하는 방식
- Transaction Processing Monitor: 항공기나 철도 예약 업무 등과 같은 온라인 트랜잭션을 처리 및 감시, 빠른 응답속도를 유지해야 할 경우 주로 사용
- Web Application Server: 동적인 콘텐츠를 처리하기 위한 미들웨어로, 웹 환경을 구현하기 위해 사용
- Object Request Broker: 객체들 간의 클라이언트/서버 관계를 맺어주는 미들웨어
- DataBase: 데이터베이스와 연결하기 위한 미들웨어(ODBC, JDBC 등)
UI 설계 원칙
- 직관성: 누구나 쉽게 이해하고 사용할 수 있어야 함
- 유효성
- 학습성
- 유연성: 사용자의 요구사항을 최대한 수용해야 함
코드 종류
- 순차 코드(Sequence Code)
- 일정 기준에 따라 차례로 일련번호를 부여
- 순서 코드, 일련번호 코드
- 블록 코드(Block Code)
- 공통성이 있는 것끼리 블록으로 구분하고, 각 블록 내에서 일련번호를 부여
- 구분 코드
- 예: 1001
1100 : 총무부, 11011200 : 영업부
- 10진 코드(Demical Code)
- 코드화 대상 항목을 0~9까지 10진 분할하고, 다시 그 각각에 대해 10진 분할 하는 방법을 필요한 만큼 반복
- 도서 분류식 코드
- 예: 1000: 공학, 1100: 소프트웨어 공학, 1110: 소프트웨어 설계
- 그룹 분류 코드(Group Classification Code)
- 코드화 대상 항목을 일정 기준에 따라 대, 중, 소 분류 등으로 구분하고, 각 그룹 안에서 일련번호를 부여
- 예: 1-01-001 : 본사-총무부-인사계, 2-01-001 : 지사-총무부-인사계
- 연상 코드(Mnemonic Code)
- 명칭이나 약호와 관계있는 숫자나 문자, 기호를 이용하여 코드를 부여
예: TV-40 : 40인치 TV, L-15-220 : 15W 220V의 램프
- 명칭이나 약호와 관계있는 숫자나 문자, 기호를 이용하여 코드를 부여
- 표의 숫자 코드(Significant Digit Code)
- 코드화 대상 항목의 성질, 즉 길이, 넓이, 부피, 지름, 높이 등의 물리적 수치를 그대로 코드에 적용
- 유효 숫자 코드
- 예: 120-720-1500 : 두께 x 폭 x 길이가 120 x 720 x 1500인 강판
- 합성 코드(Combined Code)
- 필요한 기능을 하나의 코드로 수행하기 어려운 경우 2개 이상의 코드를 조합하여 만드는 방법
- 예: 연상 코드 + 순차 코드, KE-711 : 대한항공 711기
협약에 따른 컴포넌트 설계에 따를 경우 포함되어야하는 명세
- 컴포넌트 오퍼레이션 사용 전 참이되어야 하는 선행조건
- 사용 후 만족되어야 할 결과 조건
- 오퍼레이션이 실행되는 동안 항상 만족되어야 할 불변조건
UML(Unified Modeling Language) (시험 직전에 확인)
: 표준화된 모델링(개발하기 위한 그림을 그려주는) 언어
- 종류
- 구조적(정적) 다이어그램
- 객체: 객체 정보
- 클래스: 클래스의 속성, 함수, 변수 타입으로 구성
- 패키지: 클래스 다이어그램의 집합
- 컴포넌트: 컴포넌트끼리의 구조 관계를 표현
- 컴포지트: 복합구조
- 배치(Deployment): SW, HW 등을 포함한 시스템의 물리적 구조를 나타냄
- 행위적(동적) 다이어그램
- 유스케이스: 사용자 관점에서 바라본 시스템을 표현
- 구성요소(Component): System, Actor, UseCase, Relation
- System: 만들고자 하는 프로그램
- Actor: 시스템의 외부에 있고 시스템과 상호작용을 하는 사람(시스템의 기능을 사용하는 사람), 시스템(시스템에 정보를 제공하는 또 다른 시스템)
- UseCase: 사용자 입장에서 바라본 시스템의 기능
- Relation: 액터와 유스케이스 사이의 의미있는 관계
- 연관: 유스케이스와 액터간의 상호작용이 있음
- 확장: "글을 등록한다" 기능을 수행 할 때 "파일을 첨부한다" 기능을 선택적으로 수행 할 수 있다는 것
- 포함: "글을 등록한다" 기능을 동작하기 위해서 "로그인 한다" 기능이 반드시 동작되어야 한다는 것
- 일반화: 그룹을 만들어 이해도를 높이기 위한 관계, "글을 검색한다"를 "글쓴이로 검색한다"와 "날짜로 검색한다"로 좀더 구체화 한 것
- 활동: 활동의 흐름 - 상태: 객체의 상태 변화
- 순차: 시간의 흐름에 따른 객체 사이의 상호 작용
- 커뮤니케이션 - 인터렉션 오버뷰: 활동 + 순차
- 타이밍: 시간 흐름에 따른 상태 변화
- 구조적(정적) 다이어그램
소스코드 품질 분석 → Refactoring
- Peer Review: 요구 사항 명세서 작성자가 요구 사항 명서를 설명하고 이해관계자들이 설명을 들으며 결함을 발견
- WalkThrough: 검토 자료를 회의 전에 배포하여 사전 건토 후 짧은 시간동안 검토 회의를 진행하며 결함을 발견
- Inspection
- 계획 → 사전교육 → 준비 → 회의 → 수정(재작업) → 후속조치
- 정적 테스트
- CASE 도구: 자동화된 요구 사항 관리도구를 이용하여 요구 사항 추적성과 일관성을 검토
참고 자료
'Certificate > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 2020년 3회차 (3)데이터베이스 설계 (0) | 2023.07.18 |
---|---|
[정보처리기사] 2020년 3회차 (2)소프트웨어 개발 (0) | 2023.07.17 |
[정보처리기사] 2020년 4회차 (5)정보시스템 구축관리 (0) | 2023.07.17 |
[정보처리기사] 2020년 4회차 (4)프로그래밍 언어 활용 (1) | 2023.07.17 |
[정보처리기사] 2020년 4회차 (3)데이터베이스 설계 (0) | 2023.07.17 |