2020 1회 실기 ~ 2021 2회 실기에 출제된 문제들은 글자에 회색 배경을 칠하였습니다
시나공 교재로 공부하였으며 수기로 작성하여 오타가 있을 수 있습니다.
제목 옆 [A] 는 출제 빈도가 높다고 생각하는 용어들
[B]는 A보다 출제빈도가 낮다고 생각하는 용어들로 정리하였습니다.
약술형 대비치고는 많아서.. 이중에서 A 몇개 뽑아서 외우는것을 권장드립니다.
Chapter 8, 10 은 언어, SQL쿼리문 관련 단원이고,
약술형으로 다루기에 방대하여 본 포스팅에서 제외하였습니다
Chapter1. 요구사항 확인
소프트웨어 생명주기 [A]
소프트웨어 생명주기(Software Life Cycle): 소프트웨어를 개발하기 위한 과정을 각 단계별로 나눈 것
폭포수 모형(Waterfall Model): 각 단계를 확실히 매듭짓고 결과를 검토하여 승인과정을 거친 후 다음 단계를 진행하는 개발 방법론
프로토타입 모형(Prototype Model, 원형 모형): 실제 개발될 소프트웨어 견본품을 만들어 최종 결과물을 예측하는 모형
나선형 모형(Spiral Model, 점진적 모형): 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 개발하는 모형
애자일 모형(Agile Model): 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발하는 모형
스크럼(Scrum) 기법 [B]
스크럼(Scrum): 팀이 중심이 되어 개발의 효율성을 높이는 기법
XP(eXtreme Programming) 기법 [A]
XP(eXtreme Programming): 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
개발 기술 환경 파악 [B]
운영체제: 컴퓨터 시스템의 자원을 효율적으로 관리하며, 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어
데이터베이스 관리 시스템(DBMS): 사용자와 데이터베이스 사이에서 정보를 생성해 주고, 데이터베이스를 관리해주는 소프트웨어
웹 애플리케이션 서버(WAS): 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어
오픈소스: 제한 없이 사용할 수 있도록 소스 코드를 공개한 소프트웨어
요구사항 정의 [B] [N]
요구사항: 소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 운영되는데 필요한 제약조건
기능 요구사항: 기능이나 수행과 관련된 요구사항
비기능 요구사항: 품질이나 제약사항과 관련된 요구사항
사용자 요구사항: 사용자 관점에서 본 시스템이 제공해야 할 요구사항
시스템 요구사항: 개발자 관점에서 본 시스템 전체가 제공해야 할 요구사항
요구사항 개발 프로세스 [B]
요구사항 개발 프로세스: 요구사항을 도출하고 분석한 후 명세서에 정리한 다음 확인 및 검증하는 활동
(도출,분석,명세,확인)
요구사항 도출: 시스템 개발에 관련된 사람들이 서로 의견을 교환하여 요구사항을 식별하고 이해하는 과정
요구사항 분석: 요구사항 중 이해되지 않는 부분을 걸러내기 위한 과정
요구사항 명세: 분석된 요구사항을 바탕으로 모델을 작성하고 문서화하는 것
요구사항 확인: 요구사항 명세서가 정확하고 완전하게 작성되었는지를 검토하는 활동
요구 공학: 요구사항을 정의하고, 분석 및 관리하는 프로세스를 연구하는 학문
요구사항 분석 [A]
요구사항 분석: 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화하는 활동
구조적 분석 기법: 자료의 흐름과 처리를 중심으로 하는 요구사항 분석 방법
자료흐름도(DFD): 자료의 흐름 및 변환 과정과 기능을 도형중심으로 기술하는 방법
자료사전(DD): 자료 흐름도에 있는 자료를 정의하고 기록한 것
요구사항 분석CASE와 HIPO [A]
요구사항 분석용 CASE(자동화 도구): 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 도구
HIPO: 시스템 실행 과정인 입력, 처리, 출력의 기능을 표현한 것
UML의 개요 [A]
UML: 시스템 개발 과정에서 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어
사물(Things): 다이어그램 안에서 관계가 형성될 수 있는 대상들
UML - 관계 [B]
관계: 사물과 사물 사이의 연관성을 표현하는 것
연관 관계: 2개 이상의 사물이 서로 관련되어 있는 관계
집합 관계: 하나의 사물이 다른 사물에 포함되어 있는 관계
포함 관계: 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계
일반화 관계: 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계
의존 관계: 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
실체화 관계: 할 수 있거나 해야 하는 기능으로, 서로를 그룹화 할 수 있는 관계
UML - 다이어그램 [B]
다이어그램: 사물과 관계를 도형으로 표현한 것
스테레오 타입: UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현
소프트웨어 개발 방법론 [B]
소프트웨어 개발 방법론: 소프트웨어 개발, 유지보수 등에 필요한 수행 방법과 각종 기법 및 도구를 체계적으로 정리하여 표준화한 것
구조적 방법론: 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
정보공학 방법론: 계획, 분석, 설계, 구축에 정형화된 기법들을 통합 및 적용하는 자료 중심의 방법론
객체지향 방법론: 객체들을 조립해서 소프트웨어를 구현하는 방법론
컴포넌트 기반 방법론: 컴포넌트를 조합하여 새로운 애플리케이션을 만드는 방법론
제품 계열 방법론: 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
S/W공학의 발전적 추세 [B]
소프트웨어 재사용: 이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용하는 것
소프트웨어 재공학: 기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것
CASE: 소프트웨어 개발 과정에서 사용되는 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
비용 산정 기법 - 하향식 [B] [N]
하향식 비용 산정 기법: 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 방법
전문가 감정 기법: 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
델파이 기법: 전문가 감정 기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법
비용 산정 기법 - 상향식 [B]
상향식 비용 산정 기법: 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
LOC 기법: 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
개발 단계별 인원수 기법(Effort Per Task): 기능을 구현시키는데 필요한 노력을 생명 주기의 각 단계별로 산정
수학적 산정 기법 [A]
수학적 산정기법: 상향식 비용 산정 기법으로, 경험적 추정모형, 실험적 추정 모형
COCOMO모형: LOC에 의한 비용산정기법
Putnam 모형: 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상하는 모형
기능 점수(FP, Function Point) 모형: 소프트웨어의 기능을 증대시키는 요인별로 기능점수를 구한 후 비용을 산정하는 기법
프로젝트 일정 계획 [A]
PERT: 전체 작업의 상호 관계를 표시하는 네트워크
CPM(임계 경로 기법): 작업을 나열하고 작업에 필요한 소요 기간을 예측하는데 사용하는 기법
간트 차트: 프로젝트 작업 일정 막대 도표를 이용하여 표시하는 프로젝트 일정
소프트웨어 개발 표준 [A]
소프트웨어 개발 표준: 소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준
ISO/IEC: 12207: ISO에서 만든 표준 소프트웨어 생명 주기 프로세스
CMMI: 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
CMMI의 프로세스 성숙도: 초기, 관리, 정의, 정량적 관리, 최적화
SPICE(ISO/IEC 15504): 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
소프트웨어 개발 프레임워크 [A]
소프트웨어 개발 프레임워크: 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 제공해 주는 반제품 형태의 소프트웨어 시스템
스프링 프레임워크(Spring Framework): 자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임 워크
전자정부 프레임워크: 대한민국의 공공부문 정보화 사업 시 정보 시스템의 구축을 지원 기능 및 아키텍처를 제공하는 프레임워크
닷넷 프레임워크: Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크
Chapter2. 데이터 입, 출력 구현
데이터베이스 개요 [A]
데이터베이스(Database): 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영 데이터
DBMS(DataBase Management System; 데이터베이스 관리 시스템): 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어이다.
스키마(Schema): 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
스키마의 종류: 외부스키마, 개념스키마, 내부스키마
데이터베이스 설계 [A]
데이터베이스 설계 시 고려사항: 무결성, 일관성, 회복, 보안, 효율성, 데이터베이스 확장
데이터베이스 설계순서: 요구조건분석 à 개념적 설계 à 논리적 설계 à 물리적 설계 à 구현
요구조건분석: 데이터베이스를 필요한 용도를 파악하는 것
개념적 설계 (정보모델링, 개념화): 현실세계에 대한 인식을 추상적 개념으로 표현하는 과정
논리적 설계 (데이터 모델링): 현실 세계에서 발생하는 자료를 특정 DBMS가 지원하는 논리적 자료 구조로 변환(mapping) 시키는 과정
물리적 설계 (데이터 구조화): 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
데이터베이스 구현: 논리적 설계와 물리적 설계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정
데이터 모델의 개념 [A]
데이터모델: 현실 세계의 정보들을 체계적으로 표현한 개념적 모형
개념적 데이터 모델: 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다.
논리적 데이터 모델: 개념적 구조를 컴퓨터 세계의 환경에 맞도록 변환하는 과정이다.
데이터 모델에 표시할 요소
구조: 논리적으로 표현된 객체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
연산: 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 데이터베이스를 조작하는 기본 도구
제약 조건: 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
데이터 모델의 개념 [A]
E-R모델: 개체와 개체 간의 관계를 기본 요소로 이용하여 현실 세계의 무질서한 데이터를 개념적인 논리 데이터로 표현하기 위한 방법
관계형 데이터베이스의 구조/관계형 데이터 모델 [A]
관계형 데이터베이스: 2차원적인 표를 이용해서 데이터 상호 관계를 정의하는 데이터베이스
튜플(카디널리티): 릴레이션을 구성하는 각각의 행(가로로나눔)
속성(디그리): 데이터베이스를 구성하는 가장 작은 논리적 단위(세로로나눔)
도메인(Domain): 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집함(성별 애트리뷰트=남,여)
관계형 데이터 모델: 2차원적인 표를 이용해서 데이터 상호 관계를 정의하는 DB구조
관계형 데이터베이스의 제약 조건 – 키(Key) [A]
후보키: 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
기본키: 후보키 중에서 특별히 선정된 주키
대체키: 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
슈퍼키: 속성들의 집합으로 구성된 키
외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
관계형 데이터베이스의 제약 조건 – 무결성(Integrity) [A]
무결성: 데이터베이스에 저장된 데이터 값과 현실 세계의 실제값이 일치하는 정확성
관계대수 및 관계해석 [A]
관계대수: 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어
순수관계 연산자: Select, Project, Join, Division
관계해석: 관계 데이터의 연산을 표현하는 방법
이상/함수적 종속 [B]
이상(Anomaly): 데이터의 중복이 발생하고, 이 중복으로 문제가 발생하는 현상
정규화 [A]
정규화(Normalization): 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정이다.
정규화과정: 도부이결다조(1 2 3 BC 4 5 NF)
도메인이 원자값, 부분적 함수 종속 제거, 이행적 함수 종속 제거, 결정자이면서 후보키가 아닌 것 제거, 다치 종속 제거, 조인 종속성 이용
반정규화 [A]
반정규화: 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
트랜잭션 분석/CRUD 분석 [A]
트랜잭션(Transaction): 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산
트랜잭션의 특성
Atomicity(원자성): 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 함
Consistency(일관성): 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
Isolation(독립성): 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음
Durability(지속성): 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장 나더라도 영구적으로 반영되어야 함
CRUD 분석: 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것
인덱스 [B] [N]
인덱스(Index): 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
클러스터드 인덱스: 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
넌 클러스터드 인덱스: 인덱스의 키 값만 정렬되어 있고 실제 데이터는 정렬되지 않는 방식
뷰/클러스터 [A]
뷰(View): 하나 이상의 기본 테이블로부터 유도된 가상 테이블
클러스터(Cluster): 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
파티션 [B]
파티션(Partition): 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
파티션 종류: 범위 분할, 해시 분할, 조합 분할 (범해조)
분산 데이터베이스 설계 [A]
분산 데이터베이스 설계: 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 사이트에 분산된 데이터베이스
데이터베이스 이중화/서버 클러스터링[B]
데이터베이스 이중화: 동일한 데이터베이스를 복제하여 관리하는 것
클러스터링: 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술
RTO(목표복구시간): 비상사태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요 시간을 의미함
PRO(목표복구시점): 비상사태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기준점을 의미함
스토리지 [B]
스토리지: 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술
DAS: 서버와 저장장치를 전용 케이블로 직접 연결하는 방식
NAS: 서버와 저장장치를 네트워크를 통해 연결하는 방식
SAN: 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식
자료구조 [B]
배열(Array): 크기와 형이 동일한 자료들이 순서대로 나열된 자료의 집합
연속 리스트(Contiguous List): 연속되는 기억장소에 저장되는 자료 구조
연결 리스트(Linked List): 자료들을 임의의 기억공간에 기억시키되 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조
스택(Stack): 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조
큐(Queue): 리스트의 한족에서는 삽입 작업, 다른 한쪽에서는 삭제 작업이 이루어지는 자료 구조
그래프(Graph): 정점과 간선의 두 집합으로 이루어지는 자료 구조
트리 [A]
트리: 정점(노드)과 선분(가지)을 이용하여 사이클을 이루지 않도록 구성한 그래프의 특수한 형태
이진 트리 [A]
이진 트리: 차수(Degree)가 2이하인 노드들로 구성된 트리 (자식이 둘 이하는 노드들로만 구성된 트리)
Chapter3. 통합구현
XML [A]
XML: 특수한 목적을 갖는 마크업 언어를 만드는데 사용되는 다목적 마크업 언어
SOAP: 네트워크 상에서 HTTP/HTTPS, SMTP 등을 이용하여 XML을 교환하기 위한 통신 규약
WSDL: 웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어
RESTful프로토콜: HTTP와 REST의 원칙을 사용하여 구현되는 웹 서비스, HTTP로 자원을 관리하는데 사용되는 웹 서비스 API의 집합.
UDDI: 인터넷에서 전 세계의 비즈니스 업체 목록에 자신의 정보를 등록하기 위한 확장성 생성 언어 기반의 규격
Chapter4. 서버 프로그램 구현
소프트웨어 아키텍처 [B]
소프트웨어 아키텍쳐: 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체
모듈화(Modularity): 시스템의 기능들을 모듈 단위로 나누는 것
추상화(Abstraction): 전체적이고 포괄적인 개념을 설계한 후 구체화시켜 나가는 것
단계적 분해: 사우이의 중요 개념으로부터 하위의 개념으로 구체화시키는 분할 기법
정보 은닉: 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법
협약에 의한 설계: 컴포넌트를 설계할 때 클래스에 대한 여러 가정을 공유할 수 있도록 명세한 것
객체지향 [A]
객체지향: 요소들을 객체로 만든 후, 객체들을 조립해서 소프트웨어를 개발하는 기법
객체지향의 구성요소
객체(Object): 데이터와 이를 처리하기 위한 함수를 묶어 놓은 소프트웨어 모듈
클래스(Class): 공통된 속성과 연산을 갖는 개체의 집합
메시지(Message): 객체들 간의 상호작용에 사용되는 수단으로, 객체의 동작이나 연산을 일으키는 외부의 요구 사항
객체지향의 특성
캡슐화(Encapsulation): 외부에서의 접근을 제한하기 위해 인터페이스를 제외한 세부 내용을 은닉하는 것
상속(Inheritance): 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
다형성(Polymorphism): 하나의 메시지에 대해 각각의 객체가 고유한 방법으로 응답할 수 있는 능력
연관성(Relationship): 두 개 이상의 객체들이 상호 참조하는 관계
연관성의 종류: 연관화, 분류화, 집단화, 일반화, 상세화
객체지향 분석 및 설계 [A]
객체지향 분석(OOA): 사용자의 요구사항과 관련된 객체, 속성, 연산, 관계 등을 정의하여 모델링 하는 작업
럼바우의 분석기법: 모든 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 기법
객체지향 설계 원칙: 변경이나 확장에 유연한 시스템을 설계하기 위해 지켜져야 할 원칙, SOLID원칙
SOLID = 단일책임원칙(SRP), 개방-폐쇠원칙(OCP), 리스코프 치환원칙(LSP), 인터페이스 분리 원칙(ISP), 의존 역전 원칙(DIP)
모듈 [A]
모듈: 모듈화를 통해 분리된 시스템의 각 기능
결합도: 모듈간에 상호 의존하는 정도 (자스제 외공내)
응집도: 모듈의 내부 요소들이 서로 관련되어 있는 정도 (우논시절 교순기)
팬인(Fan-In): 어떤 모듈을 제어하는 모듈의 수
팬 아웃(Fan-Out): 어떤 모듈에 의해 제어되는 모듈의 수
N-S 차트: 논리의 기술에 중점을 두고 도형을 이용해 표현하는 방법
공통 모듈 [A]
공통 모듈: 여러 프로그램에서 공통으로 사용할 수 있는 모듈
재사용(Reuse): 이미 개발된 기능들을 새로운 시스템이나 기능 개발에 사용하기 적합하도록 최적화하는 작업
재사용 규모에 따른 분류
디자인 패턴 [A] (중요)
디자인 패턴: 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결방식 또는 예제
생성패턴: 클래스나 객체의 생성과 참조 과정을 정의하는 패턴
구조패턴: 클래스나 객체들을 조합하여 더 큰 구조로 만드는 패턴
행위패턴: 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
배치 프로그램 [A]
배치 프로그램(Batch Program): 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하도록 만든 프로그램
배치 스케쥴러: 일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해 주는 도구
Chapter5. 인터페이스 구현
미들웨어 솔루션 [A]
미들웨어: 운영체제와 응용 프로그램, 사이에서 서비스를 제공하는 소프트웨어
DB: 클라이언트에서 원격의 데이터베이스와 연결하는 미들웨어
RPC(원격 프로시저 호출): 원격 프로시저를 로컬프로시저처럼 호출하는 미들웨어
MON(메시지 지향 미들웨어): 비동기형 메시지를 전달하는 미들웨어
TP-Monitor(트랜잭션 처리 모니터): 트랜잭션을 처리 및 감시하는 미들웨어
ORB(객체 요청 브로커): 코바 표준 스펙을 구현한 객체 지향 미들웨어
WAS(웹 애플리케이션 서버): 동적인 콘텐츠를 처리하기 위한 미들웨어
모듈 연계를 위한 인터페이스 기능 식별 [A]
대표적인 모듈 연계 방법 à EAI, ESB, 웹 서비스
EAI: 기업 내 각종 애플리케이션 및 플랫폼 간의 상호 연동이 가능하게 해주는 솔루션
EAI 구축유형
Point-to-Point, Hub & Spoke, Message Bus, Hybrid
ESB: 애플리케이션 간 표준 기반의 인터페이스를 제공하는 솔루션
웹 서비스(Web Service): 네트워크의 정보를 표준화된 서비스 형태로 만들어 공유하는 기술
웹 서비스의 구성: SOAP, UDDI, WSDL
인터페이스 구현 [B] (다시 출제될 확률 적음)
인터페이스 구현: 송수신 시스템 간의 데이터 교환 및 처리를 실현해 주는 작업
JSON: 데이터 객체를 속성 값의 쌍 형태로 표현하는 개방형 표준 포맷
AJAX: 클라이언트와 서버 간에 XML데이터를 주고받는 비동기 통신 기술
인터페이스 보안 [B]
인터페이스 보안: 인터페이스 보안 취약점을 분석한 후 적절한 보안 기능을 적용하는 것
IPsec: 네트워크 계층에서 IP 패킷단위의 데이터 변조 방지 및 은닉 기능을 제공하는 프로토콜
SSL: TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성을 보장하는 프로토콜
S-HTTP: 클라이언트와 서버간에 전송되는 모든 메시지를 암호화하는 프로토콜
데이터 무결성 검사도구: 인터페이스 보안 취약점을 분석하는데 사용되는 도구, 데이터 무결성 검사 도구는 시스템 파일의 변경 유무를 확인하고, 파일이 변경되었을 경우 이를 관리자에게 알려준다
인터페이스 구현 검증 [A]
APM: 애플리케이션의 성능관리를 위해 다양한 모니터링 기능을 제공하는 기능
Chapter6. 화면설계
사용자 인터페이스 [B]
사용자 인터페이스(UI): 사용자와 시스템 간의 상호작용이 이뤄지도록 도와주는 장치나 소프트웨어
UI 설계도구 [B]
와이어프레임(Wireframe): 페이지에 대한 개략적인 레이아웃이나 뼈대를 설계하는 도구
목업(Mockup): 실제화면과 유사하게 만든 정적인 형태의 모형
스토리보드: 와이어프레임에 콘텐츠에 대한 설명, 페이지 간 이동 흐름 등을 추가한 문서
프로토타입: 실제 구현된 것처럼 테스트가 가능한 동적인 형태의 모형
유스케이스: 사용자의 요구사항을 기능 단위로 표현하는 것
Chapter7. 애플리케이션 테스트 관리
테스트 기법에 따른 애플리케이션 테스트 [A]
화이트박스 테스트: 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법
블랙박스 테스트: 각 기능이 완전히 작동되는 것을 입증하는 테스트
개발 단계에 따른 애플리케이션 테스트 [A]
단위테스트: 모듈이나 컴포넌트에 초점을 맞춰 테스트
통합테스트: 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트
시스템 테스트: 개발된 소프트웨어가 완벽하게 수행되는가를 점검하는 테스트
인수테스트: 사용자의 요구사항을 충족하는지에 중점을 두고 테스트
통합 테스트 [A]
통합테스트: 단위테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트
하향식 통합 테스트: 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트
상향식 통합 테스트: 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트
혼합식 통합 테스트: 하위 수준에서는 상향식 통합, 상위 수준에서는 하향식 통합을 사용하여 최적의 테스트를 지원하는 방식
회귀 테스팅: 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인하는 테스트
테스트케이스/테스트시나리오/테스트오라클 [A]
테스트 케이스: 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 테스트 항목에 대한 명세서
테스트 시나리오: 테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스를 묶은 집합
테스트 오라클: 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법
복잡도 [A]
시간 복잡도: 알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화 한 것
순환 복잡도: 논리적인 복잡도를 측정하기 위한 소프트웨어의 척도
애플리케이션 성능 개선 [A]
소스 코드 최적화: 나쁜 코드를 배제하고, 클린 코드로 작성하는 것
Chapter9. 소프트웨어 개발 보안 구축
Secure SDLC [A]
Secure SDLC: SDLC에 보안 강화를 위한 프로세스를 포함한 것
시큐어 코딩(Secore Coding): 보안 요소들을 고려하며 코딩하는 것
암호 알고리즘 [B]
암호 알고리즘: 중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법
개인키 암호화 기법: 동일한 키로 데이터를 암호화하고 복호화하는 암호화 기법
공개키 암호화 기법: 암호화할 때 사용하는 공개키는 공개하고, 비밀키는 관리자가 비밀리에 관리하는 암호화 기법
해시: 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
서비스 공격 유형 [A]
서비스 거부(DOS) 공격: 대량의 데이터를 한 곳의 서버에 집중적으로 전송함으로써 서버의 정상적인 기능을 방해하는 것
Ping of Death(죽음의 핑): 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 네트워크를 마비시키는 서비스 거부 공격 방법
SMURFING(스머핑): IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법
SYN Flooding: 3-way handshake 과정을 의도적으로 중단시킴으로써 서버가 대기 상태에 놓여 정상적인 서비스를 수해하지 못하게 하는 공격 방법
TearDrop: Offset값을 변경시켜 수신 측에 과부하를 발생시킴으로써 시스템이 다운되도록 하는 공격 방법
LAND Attack: 패킷을 전송할 때 송신 IP주소와 수신 IP주소를 모두 공격대상의 IP주소로 하여 자신에 대해 무한히 응답하게 하는 공격
DDoS(분산 서비스 거부)공격: 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행하는 것
보안 솔루션 [A]
보안솔루션: 외부로부터 불법적인 침입을 막는 기술 및 시스템
방화벽(Firewall): 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 기능을 가진 침입 차단 시스템
침입 탐지 시스템(IDS): 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템
침입 방지 시스템(IPS): 비정상적인 트래픽을 능동적으로 차단하고 격리하는 보안 솔루션
데이터 유출 방지(DLP): 내부 정보의 외부 유출을 방지하는 보안 솔루션
웹 방화벽(Web Firewall): 웹 기반 공격을 방어할 목적으로 만들어진 웹 서버에 특화된 방화벽
VPN(가상 사설 통신망): 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
NAC(Network Access Control): 네트워크에 접속하는 내부 PC의 일관된 보안 관리 기능을 제공하는 보안 솔루션
ESM: 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션
Chapter11. 응용 SW 기초 기술 활용
운영체제의 개념 [A]
운영체제: 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
운영체제의 종류 [A]
Windows: 1990년대 마이크로소프트 사가 개발한 운영체제
UNIX: AT&T 벨 연구소, MIT, General Electric이 공동 개발한 운영체제
LINUX: 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
MacOS: 애플 사가 UNIX를 기반으로 개발한 운영체제
Android: 구글 사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
iOS: 애플 사에서 개발한 모바일 운영체제
기억장치 관리 [A]
반입(Fetch) 전략: 프로그램 데이터를 언제 주기억장치로 적재할 것인지를 결정
배치(Placement) 전략: 프로그램이나 데이터를 주기적장치의 어디에 위치시킬 것인지를 결정
교체(Replacement) 전략: 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정
페이지 교체 알고리즘 [A]
페이지 교체 알고리즘: 페이지 부재가 발생하면 어떤 페이지 프레임을 선택하여 교체할 것인가를 결정
OPT(OPTical replacement, 최적교체): 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체
FIFO: 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체
LRU(Lease Recently Used): 최근에 가장 오랫동안 사용하지 않은 페이지를 교체
LFU(Least Frequently Used): 사용 빈도가 가장 적은 페이지를 교체
NUR(Not Used Recently): 최근에 사용하지 않은 페이지를 교체
SCR(Second Chance Replacement): 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지
프로세스의 개요 [A]
프로세스: 실행중인 프로그램을 의미
PCB(Process Control Block, 프로세스 제어 블록): 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
프로세스 상태 전이: 제출, 접수, 준비, 실행, 대기(블록), 종료
스레드: 시스템의 여러 자원을 할당 받아 실행하는 프로그램의 단위
주요 스케줄링 알고리즘 [A]
FCFS(=FIFO): 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법
SJF(단기 작업 우선): 준비상태 큐에서 실행시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
HRN: 대기 시간과 서비스(실행) 시간을 이용하는 기법
인터넷[A]
인터넷: 전 세계 수많은 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망
IP 주소: 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소
서브네팅: 네트워크 주소를 여러 개의 작은 네트워크로 나누어 사용하는 것
IPv6: IPv4의 주소 부족 문제를 해결하기 위해 개발됨, 128비트의 긴 주소를 사용하여 주소 부족 문제를 해결할 수 있다.
도메인 네임: 숫자로 된 IP주소를 문자 형태로 표현
OSI 참조 모델 [A]
OSI 참조 모델: ISO에서 제안한 통신 규약
물리계층(Physical Layer): 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다.
데이터 링크 계층(Data Link Layer): 두개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료를 담당한다.
네트워크 계층(Network Layer): 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 한다.
전송계층(Transport Layer): 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템 간에 투명한 데이터 전송을 가능하게 한다.
세션 계층(Session Layer): 송수신 측 간의 관련성을 유지하고 대화 제어를 담당한다
표현 계층(Presentation Layer): 응용계층으로부터 받은 데이터를 세션계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 한다.
응용 계층(Application Layer): 사용자가 OSI환경에 접근할 수 있도록 서비스를 제공한다.
TCP/IP [A]
프로토콜(Protocol): 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜 놓은 통신 규약
프로토콜의 기본 요소: 구문, 의미, 시간
TCP/IP: 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜
네트워크 구축 [A]
네트워크: 두 대 이상의 컴퓨터를 연결하여 자원을 공유하는 것
성형(Star, 중앙 집중형): 중앙에 중앙 컴퓨터가 있고, 이를 중심으로 단말장치들이 연결되는 중앙 집중식의 네트워크 구성형태
링형(Ring, 루프형): 컴퓨터와 단말장치들을 서로 이웃하는 것끼리 연결시킨 포인트 두 포인트 방식의 구성 형태
버스형(Bus): 한 개의 통신 회선에 여러 대의 단말장치가 연결되어 있는 형태
계층형(Tree, 분산형): 중앙 컴퓨터와 일정 지역의 단말장치까지는 하나의 통신 회선으로 연결시키고, 이웃하는 단말장치는 일정 지역 내에 설치된 중간 단말 장치로부터 다시 연결시키는 형태
망형(Mesh): 모든 지점의 컴퓨터와 단말장치를 서로 연결한 형태
경로제어/트래픽 제어 [A]
경로제어: 전송 경로 중에서 최적 패킷 교환 경로를 결정하는 기능
트래픽 제어: 전송되는 패킷의 흐름 또는 그 양을 조절하는 기능
흐름제어(Flow Control): 송수신 측 사이에 전송되는 패킷의 양이나 속도를 규제하는 기능
폭주제어(Congestion Control): 네트워크 내의 패킷 수를 조절하여 네트워크의 오버플로를 방지하는 기능
Secure OS [B]
Secure OS: 보안 기능을 갖춘 커널을 이식하여 외부의 침입으로부터 시스템 자원을 보호하는 운영체제
참조모니터: 보호 대상 객체에 대한 접근통제를 수행하는 추상 머신
회복/병행제어 [A]
회복: 데이터베이스가 손상되었을 때 손상되기 이전의 정상 상태로 복구하는 작업
병행제어(Concurrency Control): 동시에 실행되는 트랜잭션 간의 상호 작용을 제어하는 것
로킹 단위: 한꺼번에 로킹할 수 있는 객체의 크기
교착상태 [A]
교착상태: 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
Chapter12. 제품 소프트웨어 패키징
소프트웨어 패키징 [A]
디지털 저작권 관리(DRM): 저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 콘텐츠 관리 및 보호 기술
소프트웨어 버전 등록 [A]
소프트웨어 패키징의 형상관리: 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동
빌드 자동화 도구 [B]
빌드 자동화 도구: 빌드를 포함하여 테스트 및 배포를 자동화하는 도구
Jenkins: JAVA 기반의 오픈소스 형태로, 서블릿 컨테이너에서 실행되는 서버 기반 도구
Gradle: Groovy를 기반으로 한 오픈소스 형태의 자동화 도구
'정보처리기사(2020개정)' 카테고리의 다른 글
정보처리기사 합격 후기, 공부 방법 (필기, 실기) (0) | 2021.11.26 |
---|---|
정보처리기사 단답요약 (2021년 3회차 대비) (0) | 2021.10.14 |
[정보처리기사] 네트워크, SW, HW, DB 관련 신기술 (5-2. IT프로젝트 정보시스템 구축관리) (0) | 2021.05.10 |