728x90
4-0
- 개발 환경 구축 : 개발 프로젝트를 이해하고, 소프트웨어 및 하드웨어 장비를 구축하는 것
- 소프트웨어 아키텍처 : 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체
- 모듈화 : 시스템의 기능들을 모듈 단위로 나누는 것
- 추상화 : 전체적이고 포괄적인 개념을 설계한 후, 구체화 시켜 나가는 것
- 단계적 분해 : 상위의 중요 개념으로부터 하위의 개념으로 구체화 시키는 분할 기법
- 정보은닉 : 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법
- 소프트웨어 아키텍처 품질속성
- 시스템 측면 : 성능, 보안, 가용성, 기능성, 사용성, 변경 용이성, 확장성 등
- 비즈니스 측면 : 시장적시성, 비용과 혜택, 예상 시스템 수명, 목표시장, 공개일정 등
- 아키텍처 측면 : 개념적 무결성, 정확성, 완결성, 구축 가능성, 변경성, 시험성 등
- 협약에 의한 설계 : 컴포넌트를 설계할 때 클래스에 대한 여러가정을 공유할 수 있도록 명세한 것(선행,결과,불변)
- 아키텍처 패턴 : 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제
- 레이어 패턴 : 시스템을 계층으로 구분하여 구성하는 패턴
- 클라이언트-서버 패턴 : 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴
- 파이프-필터 패턴 : 데이터 스트림의 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴
- 모델-뷰-컨트롤러 패턴 : 서브 시스템을 모델, 뷰, 컨트롤러로 구조화하는 패턴
- 마스터-슬레이브 패턴 : 슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행하는 패턴
- 브로커 패턴 : 사용자가 원하는 서비스와 특성을 브로커 컴포넌트에 요청하면 브로커 컴포넌트가 요청에 맞는 컴포넌트와 사용자를 연결해주는 패턴
- 피어-투-피어 패턴 : 피어라고 불리는 하나의 컴포넌트가 클라이언트가 될수도, 서버가 될 수도 있는 패턴
- 이벤트-버스 패턴 : 소스가 특정 채널에 이벤트 메시지를 발행하면, 해당 채널을 구독한 리스너들이 메시지를 받아 이벤트를 처리하는 패턴
- 블랙보드 패턴 : 모든 컴포넌트들이 공유 데이터 저장소와 블랙보드 컴포넌트에 접근이 가능한 패턴
- 인터프리터 패턴 : 프로그램 코드의 각 라인을 수행하는 방법을 지정하고, 기호마다 클래스를 갖도록 구성된 패턴
4-1
- 객체지향
- 객체 : 데이터와 데이터를 처리하는 함수를 묶어놓은 하나의 소프트웨어 모듈
- 클래스 : 공통된 속성과 연산을 갖는 객체의 집합
- 캡슐화 : 데이터와 데이터를 처리하는 함수를 하나로 묶는 것
- 상속 : 이미 정의된 상위 클래스의 모든 속성과 연산을 하위클래스가 물려받는 것
- 다형성 : 메시지에 의해 객체가 연산을 수행하게 될 때, 하나의 메시지에 대해 객체가 가지고 있는 방법으로 응답할 수 있는 능력
- 객체지향 분석 및 설계
- 객체지향 분석 : 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스, 그들 간의 관계 등을 정의하여 모델링
- 객체지향 분석의 방법론
- RUMBAUGH : 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행.
- Booch : 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의
- Jacobson : Usecase를 강조하여, 사용하는 분석 방법
- code 와 Yourdon : E-R다이어그램을 사용. 객체 행위를 모델링
- wirfs-Brock : 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행
- 럼바우 특징
- 객체모델링 -> 동적모델링 -> 기능모델링 (객동기)
- 객체모델링 : 속성과 연산 식별 및 객체들 간의 관계를 규정하여 객체 다이어그램으로 표시
- 동적모델링 : 상태 다이어그램을 이용하여 시간의 흐름에 따른 객체들간의 제어흐름 등 동적인 행위를 표현
- 기능모델링 : 자료흐름도를 이용하여, 다수의 프로세스들 간의 자료흐름을 중심으로 처리과정을 표현
- 객체지향 설계 원칙(SOLID 원칙)
- 단일책임원칙(SRP) : 객체는 단 하나의 책임만 가져야함
- 개방폐쇄원칙(OCP) : 기존의 코드를 변경하지 않고 기능을 추가
- 리스코프 치환 원칙(LSP) : 자식 클래스는 최소한 부모클래스 기능은 수행
- 인터페이스 분리 원칙(ISP) : 자신이 사용하지 않는 인터페이스와 의존관계 X
- 의존역전원칙(DIP) : 의존 관계 성립시 추상성이 높은 클래스와 의존관계를 맺어야 한다는 원칙
4-2
- 모듈 : 모듈화를 통해 분리된 시스템의 각 기능들
- 독립성이 강할수록 품질이 좋다.
- 결합도 (자스제외공내) : 모듈간에 상호 의존하는 정도
- 자료 결합도 : 모듈간의 인터페이스가 자료요소로만 구성될 때의 결합도 (결합도 낮음)
- 스탬프 결합도 : 모듈간의 인터페이스로 배열이나 레코드 등의 자료구조가 전달될 때의 결합도
- 제어 결합도 : 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어신호나 제어 요소를 전달하는 결합도
- 외부 결합도 : 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의 결합도
- 공통 결합도 : 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도
- 내용 결합도 : 한 모듈이 다른 모듈의 내부 기능 및 그 내부자료를 직접 참조하거나, 수정할 때의 결합도 (결합도 강함)
- 응집도 (기순교절시논우) : 모듈 내부 요소들이 서로 관련되어 있는 정도
- 기능적 응집도 : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도 (응집도 높음)
- 순차적 응집도 : 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
- 교환적 응집도 : 동일한 입력과 출력을 사용하여, 서로 다른 기능을 수행하는 구성요소들이 모였을 경우의 응집도
- 절차적 응집도 : 모듈이 다수의 관련 기능을 가질 때, 모듈안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
- 시간적 응집도 : 특정 시간에 처리되는 몇개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도
- 논리적 응집도 : 유사한 성격을 갖거나, 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우 응집도
- 우연적 응집도 : 모듈 내부의 각 요소들이 서로 관련 없는 요소로만 구성 (응집도 낮음)
- 팬 인-팬 아웃
- 팬 인 : 해당 모듈로 들어오는 제어 신호 (A:0, B:1, C:1, D:1, E: 1, F:2, G:1, H:2, I:1, J:1)
- 팬 아웃 : 해당 모듈에서 나가는 제어 신호 (A:3, B:2, C:2, D:1, E:1, F:1, G:1, H:0, I:0, J:0)
- 공통 모듈 : 여러 프로그램에서 공통적으로 사용할 수 있는 모듈
- 재사용 : 새로운 시스템 또는 기능 개발에 사용하기 적합하도록 최적화 시키는 작업
- 효과적인 설계 방안 : 결합도는 낮고, 응집도는 높아야 한다.
4-3
- 코드 : 일정한 규칙에 따라 만들어진 기호
- 순차 코드 : 숫자가 차례대로 입력되어 있는 일련번호
- 블록 코드 : 구역을 구분한 뒤에 순차코드를 붙이는 것, 구분코드라고도 함.
- 10진 코드 : 코드화 대상항목을 0~9까지 10진 분할하고, 다시 그 각각에 대하여 10진 분할하는 방식
- 그룹 분류 코드 : 항목별로 일련번호를 부여
- 연상 코드 : 명칭이나 관계있는 숫자와 문자, 기호를 이용하여 부여
- 표의 숫자 코드: 제품의 수치등을 코드에 사용, 유효 숫자코드 라고도 함.
- 디자인패턴 : 각 모듈의 세분화된 역할이나, 모듈들 간의 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 해결방식 또는 예제 (생성 5개, 구조 7개, 행위 11개)
- 생성 패턴 (추빌팩프싱)
- 추상팩토리 : 객체 생성코드가 상위 클래스에 존재, 하위 클래스가 받아씀.
- 팩토리메소드 : 객체 생성코드를 하위 클래스에서 구체화
- 빌더 : 분리된 인스턴스를 조합하여 객체를 생성
- 프로토타입 : 원본 복제, 비용 저렴
- 싱글톤 : 클래스 내 인스턴스 하나뿐임을 보장, 동시 참조 불가능
- 구조 패턴 (퍼플데프컴어브)
- 어댑터 : 일치하지 않는 인터페이스 변환
- 브릿지 : 추상층과 구현층을 분리하여 독립적 확장
- 컴포지트 : 트리구조 구성, 단일과 복합 개체 구분없이 다룸
- 데코레이터 : 기능 추가위해 다른 객체를 덧붙임
- 퍼싸드 : 서브 클래스들의 통합 인터페이스를 제공하는 상위클래스 구성
- 플라이웨이트 : 다수의 유사 객체 생성이 필요할 때 최대한 공유해서 사용
- 프록시 : 접근이 어려운 객체에 접근할 수 있도록 인터페이스 역할 수행
- 행위 패턴
- 책임연쇄 : 둘 이상의 객체가 연결되어 책임이 차례로 넘어감
- 커맨드 : 명령어 캡슐화, 로그에 기록
- 인터프리터 : 문법 표현 정의, 맞춤법 검사
- 반복자 : 접근이 잦은 객체는 동일한 인터페이스 사용하도록 순차접근
- 중재자 : 복잡한 상호작용 캡슐화
- 메멘토 : 특정 시점의 상태 객체화, 되돌리기 기능(Control+z)
- 옵서버 : 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴
- 상태 : 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴
- 전략 : 동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호 교환 할 수 있게 정의하는 패턴
- 템플릿 메소드 : 상위 클래스에서 골격을 정의하고, 하위 클래스에서 세부처리를 구체화하는 패턴
- 방문자 : 각 클래스들의 데이터 구조에서 처리기능을 분리하여 별도의 클래스로 구성하는 패턴
4-4
- 서버개발 : 웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 웹 애플리켕션 서버에 탑재하는 것
- 서버개발 프레임워크 : 다양한 네트워크 설정, 요청 및 응답처리, 아키텍처 모델 구현 등을 손쉽게 처리할 수 있도록 클래스나 인터페이스를 제공하는 s/w
- API : 라이브러리를 이용할 수 있도록 규칙등을 정의해 놓은 인터페이스
- 배치 프로그램 : 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하도록 만든 프로그램
- 배치 스케줄러 : 일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구
- 스프링 배치 : Spring Source 사와 Accenture 사가 2007년 공동 개발한 오픈소스 프레임워크
- Quartz : 스프링 프레임워크로 개발되는 응용프로그램들의 일괄처리를 위한 다양한 기능 제공 라이브러리
- cron : 리눅스의 기본 스케줄러 도구
728x90
'정보처리기사 실기' 카테고리의 다른 글
정보처리기사 실기 : 6장 화면 설계(통합모음 : 중요 키워드 정리) (0) | 2022.08.12 |
---|---|
정보처리기사 실기 : 5장 인터페이스 구현(통합모음 : 중요 키워드 정리) (0) | 2022.08.12 |
정보처리기사 실기 : 3장 통합구현(통합모음 : 중요 키워드 정리) (0) | 2022.08.12 |
정보처리기사 실기 : 2장 데이터 입,출력 구현(통합모음 : 중요 키워드 정리) (0) | 2022.08.12 |
정보처리기사 실기 : 1장 요구사항 확인(통합모음 : 중요 키워드 정리) (0) | 2022.08.11 |