1과목 : 소프트웨어 설계
1.
순차 다이어그램 : UML 다이어그램의 종류
*행위 다이어그램 -> 동적
*수직 방향의 시간흐름을 나타냄
*회귀 메세지, 제어 블록으로 구성
2.
MOM :메세지 지향 미들웨어
*비동기형 메세지를 전달하는 미들웨어
*즉각적인 응답보다는 느리고 안정적인 응답을 필요
*온라인 업무보다는 이기종 분산 시스템의 동기를 위해 사용
*메세지 큐를 사용
3.
익스트림 프로그래밍 : 애자일 방법론 중 하나
*구동 원리 : 상식적인 원리 + 경험 최대로 끌어올리기
*구체적인 실천 방법을 정의, 개발 문서보다는 소스코드에 중점
4.
유스케이스
액터 : 시스템과 상호작용하는 외부요소
*유스케이스 : 시스템이 수행하는 작업이나 기능
*구성요소 간의 관계
-연관
-확장
-포함
-일반화
5.
요구사항 문석
기능적 vs 비기능적
기능적 : 시스템이 실제로 어떻게 동작하는지에 관점
비기능적 : 성능, 보안, 품질, 안전성 등으로 실제 수행에 보조적인 요구사항
6.
정보공학 방법론
Entity-RelationShip Diagram
UML 다이어그램 종류
-Package Diagram
-Deployment Diagram
-State Trasition Diagram
7.
미들 웨어
*클라이언트와 서버간의 통신을 담당하는 시스템 소프트웨어
*시스템 간의 표준화된 연결을 도와주는 소프트웨어
*표준화된 인터페이스를 이용해 시스템간의 데이터 교환에 있어 일괄성을 제공
*운영체제와 애플리케이션 사이에서 중간 매개 역할을 하는 다목적 소프트웨어
8.
UI 설계 지침
-사용자 중심
-일관성 : 버튼이나 조작방법을 사용자가 기억하기 쉽게 설계
-단순성
-결과 예측 가능
-가시성 : 주요기능을 메인 화면에 노출하여 쉬운 조작이 가능해야함
-표준화 : 디자인을 표준화하여 기능 구조와 선행학습 이후 쉽게 사용 가능해야함
-접근성 : 다양한 계층 수용
-명확성 : 사용자가 개념적으로 쉽게 인지
-오류 발생 해결 : 사용자가 오류에 대한 상황을 정확하게 인지할 수 있어야 함.
9.
다형성
오버로딩 : 같은 이름의 메소드를 중복 정의
오버라이딩 : 상속관계에서 발생, 슈퍼클래스의 메서드를 서브 클래스에서도 동일한 메서드를 재정의
10. 인터페이스
* 소프트웨어에 의해 간접적으로 제어되는 장치와 소프트웨어를 실행하는 하드웨어
* 기존의 소프트웨어와 새로운 소프트웨어를 연결하는 소프트웨어
* 순서적 연산에 의해 소프트웨어를 실행하는 장치
11. 객체
* 상태, 동작, 고유 식별자를 가진 모든 것
* 필요한 자료구조와 이에 수행되는 함수들을 가진 하나의 독립된 존재
* 객체의 상태는 속성값에 의해 정의
12.
Encapsulation(캡슐화) : 서로 관련성이 많은 데이터들과 연산들을 묶는다.
Class(클래스) : 하나 이상의 유사한 객체들을 묶는다.
Association(연관) : 2개 이상의 사물이 서로 관련
13.
에자일 프로세스
:개발 프로젝트 기간을 짧은 주기로 나눠 반복적인 개발을 하는 것이 특징
고객 관점의 효율적이고 민첩한 변화 대응을 중시
*애자일 선언문* -> 기억할 것
14.
컴포넌트
: 프로그래밍에 있어 재사용이 가능한 각각의 독립된 모듈
*특정 기능 수행을 위해 독립적으로 분
15.
GOF 디자인 패턴
-생성, 구조, 행동 패턴으로 구분
*구조 패턴 : 구조를 통해 확장성을 꾀하는 패
-어댑터, 브릿지, 컴포지트, 데코레이터, 퍼싸트, 플라이웨이트, 프록세 ( 다 암기해야함 )
*생성 패턴 : 객체를 생성하는 것에 대한 패턴
-추상 팩토리, 비럳, 팩토리 메소드, 프로토타입, 싱글톤
*행위 패턴 : 행위의 변경, 수정 등을 위한 패턴
-역할 사슬, 커맨드, 인터프리터, 이터레이터, 미디에어터, 메멘토, 옵저버, 상태, 전략, 템플릿 메소드, 비지터
16.
피드백
시스템의 상태와 사용자의 지시에 대한 효과를 보여주어 사용자가 명령에 대한 진행 상황과 표시된 내용을 해석할 수 있도록 도와주는 개념
17.
UI의 종류
CLI : 텍스트 형태 인터페이스
GUI : 마우스로 선택하여 작업하는 그래픽 환경 인터페이스
NUI : 사용자의 말이나 행동으로 기기 조작하는 인터페이스
OUI : 모든 사물과 사용자 간의 상호작용을 위한 인터페이스
18.
소프트웨어 모델링
* 모델링 작업의 결과물은 다른 모델링 작업에 영향을 줌.
* 구조적 방법론에서는 DFD, DD 등을 사용하여 요구 사항의 결과를 표현한다.
* 객체지향 방법론에서는 UML 표기법을 사용한다.
* 소프트웨어 모델을 사용할 경우 개발될 소프트웨어 대한 이해도 및 이해 당사자 간의 의사소통 향상에 도움이 된다.
19.
유스케이스 다이어그램
* 액터 : 시스템과 상호작용하는 모든 것 <중요>
20.
MVC : 소프트웨어 아키텍처 모델의 종류
* 사용자 인터페이스를 담당하는 계층의 응집도를 높일 수 있고, 여러 개의 다른 ui를 만들어 그 사이에 결합도를 낮출 수 있다.
* 한 개의 모델에 대해 여러 개의 뷰를 만들 수 있다. (서브 시스템의 핵심 기능과 데이터를 보관(
* 대화형 어플리케이션에 적합함.
* 제어는 모델에 명령을 보냄으로써(전달자) 모델의 상태를 변경할 수 있다.
2과목 : 소프트웨어 개발
21. 통합 테스트
*상향식 통합 테스트
: 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합, 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터가 필요.
*하향식 통합 테스트
: 상위 모듈에서 하위 모듈 방향으로 통합, 깊이 우선 통합법, 넓이 우선 통합법 사용
초기부터 사용자에게 시스템 구조를 보여줘야함
22. 이진 검색 방법
이진 검색 방법은 알고리즘 때 하도 많이 해서 패스~