1. 객체 지향, 소프트웨어 아키텍쳐
- 주요 아키텍처 스타일
- 클라이언트-서버 패턴
- 클라이언트가 서버에 서비스를 요청하면 서버는 클라이언트에게 적절한 서비스를 제공
- 장점: 데이터 집중화, 보안
- 단점: 병목현상, 비용증가
- 계층형 패턴(Layered-server pattern)
- 소프트웨어의 기능을 수직으로 상호 작용하는 여러 층으로 분할
- 각 층 사이는 메시지를 교환
- 장점: 추상화, 캡슐화, 응집 높음, 재사용
- 단점: 이웃 층과의 커뮤니케이션이 제한적
- 모델-뷰-컨트롤러 패턴
- MVC 패턴: 사용자 인터페이스로부터 비즈니스 로직과 데이터를 분리
- 모델: 핵심 기능과 데이터 포함
- 뷰: 모델로부터 정보를 받아 사용자에게 정보를 표시
- 컨트롤러: 사용자로부터 입력을 처리, 모델에게 명령을 보내 모델의 상태를 변경
- 파이프-필터 패턴
- 필터 사이에 데이터를 이동시키며 단계적으로 처리
- 컴파일러, 어휘 분석, 파싱, 의미 분석
- 장점: 단순성, 재사용, 병렬성
- 단점: 자원의 낭비
- 클라이언트-서버 패턴
- 디자인 패턴
- 아키텍처 설계 수준보다 낮은 수준의 설계 문제에 재사용 가능한 솔루션을 제공
- 생성패턴
- 객체 생성에 관련된 패턴
- 간단한 블록 코드로 생성
- 추상팩토리
- 빌더
- 팩토리메서드
- 프로토타입
- 싱글톤
- 구조패턴
- 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
- 상속 기법 이용
- 어댑터
- 브리지
- 컴퍼지트
- 데커레이터
- 퍼사드
- 플라이웨이트
- 프록시
- 행위패턴
- 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
- 반복적으로 일어나는 객체들의 상호작용을 패턴화 해놓은 것
- 책임연쇄(Chain of Responsibility)
- 커맨드
- 인터프리터
- 이터레이터
- 미디에이터
- 메멘토
- 옵서버
- 스테이트
- 스트래티지
- 템플릿메서드
- 비지터
- 생성패턴
- 아키텍처 설계 수준보다 낮은 수준의 설계 문제에 재사용 가능한 솔루션을 제공
2. 개발 환경 구축(출제 적음, 도서로 학습)
3. 공통 모듈 구현
- 재사용(Reuse): 목표 시스템의 개발 시간 및 비용 절감을 위하여 검증된 기능을 파악하고 재구성하여 시스템에 응용하기 위한 최적화 작업이다.
- 함수와 객체 재사용: 클래스나 함수 단위로 구현한 소스코드를 재사용한다.
- 컴포넌트 재사용: 컴포넌트 단위로 재사용하며, 컴포넌트의 인터페이스를 통해 통신한다.
- 애플리케이션 재사용: 공통된 기능을 제공하도록 구현된 애플리케이션과의 통신으로 기능을 공유하여 재사용한다.
- 공통 기능에 대한 모듈화
- 모듈은 그 자체로 하나의 완전한 기능을 수행할 수 있는 실체
- 서브프로그램, 서흐루틴, 단위 프로그램, 작업단위
- 응집도
- 응집도는 모듈 내부에서 구성 요소 간에 밀접한 관계를 맺고 있는 정도로 평가됨
- 응집도가 높을수록 필요한 요소들로 구성 되어 있음
- 낮을수록 관련이 적은 요소들로 구성되어 있다.
- 응집도의 유형
- 기능적 응집도 (Funtional Cohesion)
- 모듈 내부의 모든 기능이 단일한 목적을 위해 수행
- 원넓이 계산
- 순차적 응집도 (Sequential Cohesion)
- 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
- 파일에서 데이터를 읽고, 데이터를 처리
- 통신적 응집도 (Communication Cohesion)
- 동일한 자료를 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우 처리 순서는 상관없다.
- 절차적 응집도 (Procedural Cohesion)
- 관련없는 기능요소가 배열된 순서로 수행됨
- 요소들이 서로 관련이 없다는 것만 빼면 순차적 응집도와 유사함
- 시간적 응집도 (Temporal Cohesion)
- 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우
- 초기화 하는 동안 사용 되는 코드들을 같이 모아 둔 경우, 예외사항 발생시
- 논리적 응집도 (Logical Cohesion)
- 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈들에서 처리
- 모든 마우스 및 키보드 입력 처리 루틴 그룹화
- 우연적 응집도 (coincidental Cohesion)
- 모듈 내부의 각 구성 요소들이 연관이 없을 경우
- 기능적 응집도 (Funtional Cohesion)
- 응집도와 품질: 품질은 기능적이 가장 높고 우연적이 가장 낮다.
- 우논시절통순기
- 결합도
- 모듈과 모듈 간에 어느 정도 관련성이 있는지를 나타내며
- 관련이 적을수록 모듈의 독립성이 높아 모듈간 영향이 적어지게 된다.
- 결합도의 유형
- 자료 결합도(Data Coupling)
- 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우
- 스탬프 결합도(Stamp Coupling)
- 모듈 간의 인터페이스로 배열이나 오브젝트, 스트럭처 등이 전달되는 경우
- 데이터 구조 결합도
- 제어 결합도(Control Coupling)
- 단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되어 다른 모듈의 흐름을 제어
- 외부 결합도(External Coupling)
- 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 디바이스 인터페이스를 공유할 때 발생
- 공통 결합도(Common Coupling)
- 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하며 상호 작용하는 경우
- 내용 결합도(Content Coupling)
- 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우
- 자료 결합도(Data Coupling)
- 결합도와 품질
- 자료 결합이 가장 높고, 내용 결합이 가장 낮다
- 내공외제스자
- Fan-In, Fan-Out
- Fan-In: 자신을 사용하는 모듈의 수
- Fan-Out: 자신이 호출하는 모듈의 수
- 시스템의 복잡도를 측정할 수 있다.
- 팬인은 높게, 팬아웃은 낮게 설계해야 재사용성이 우수하다.
4. 서버 프로그램 구현(최근 4년간 출제 없음)
5. 배치 프로그램 구현(최근 4년간 출제 없음)
'자격증 > 정보처리기사 인강 - 실기' 카테고리의 다른 글
6. 화면 설계 (0) | 2024.07.14 |
---|---|
5. 인터페이스 구현 (2) | 2024.07.14 |
3. 통합구현 (0) | 2024.07.07 |
2. 데이터 입출력 구현 (0) | 2024.06.26 |
1. 요구사항 확인 (0) | 2024.06.21 |