Hub
– 여러 대의 컴퓨터를 연결하여 네트워크로 보내거나 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비
블록 암호(Block Cipher)
– 블록의 길이가 정해져 있으므로 기호의 삽입, 삭제가 불가능
– 구현이 용이하며 혼돈과 확산 이론을 기반으로 설계
– 암호화 과정에서 오류는 여러 변환 과정의 영향을 미치므로 파급력이 크다
Companion(Second) Screen (Hardware)
– TV 방송 등의 내용을 공유하며 추가적인 기능을 수행할 수 있는 기기
DAC
– 접근 요청자의 신분과 접근 규칙에 기반을 두는 접근 통제 방식
세션 가로채기의 탐지방안
– 비동기화 탐지: 서버와 시퀀스 넘버를 주기적으로 체크, 비동기화 상태 시 탐지
– Ack Storm 탐지: 급격한 Ack 비율 증가시 탐지
– 예상치 못한 접속의 리셋 탐지: 세션에 대한 공격 시도 시 세션이 멈추거나 리셋되는 경우 탐지
TDM (다중화기)
– 전송 회선의 대역폭을 타입 슬롯으로 나누어 채널에 할당
– 복작한 기술로 비용이 많이 들고 타임 슬롯이 낭비
보안 운영 체제
– 신뢰성 운영체제(Trusted OS)
– 사용자에 대한 식별 및 인증, 강제적 접근 통제 등의 보안 기능 요소를 갖추어진 운영체제
– 보안계층을 운영체제의 커널 레벨로 낮춘 차세대 보안 솔루션
C클래스 (IPv4)
– 첫 24비트가 네트워크 ID, 나머지 8비트가 호스트 ID
공개키 방식
– 암호화 키는 공개, 복호화 키는 비밀 보관
– 비대칭키/공영키 방식, 전자 서명에 적합
– 암호화/복호화 키 다름
Hobgoblin (무결성 검사 도구)
– 파일과 시스템 무결성
MQTT (네크워크 기술)
– TCP/IP 프로토콜 위에서 동작하는 발행-구독 기반의 메시징 프로토콜
– 메시지 매개자(Broker)를 통해 송신자가 특정 메시지를 발행, 수신자가 메시지를 구동하는 방식 / IBM 개발
매크로 바이러스
– 실행 파일이 아닌 일반 문서 파일 등에 삽입되어 활동
– 오피스 문서 등에 삽입되어 스크립트 환경에서 장독
스트림 암호
– 데이터 흐름을 순차적으로 암호화하는 방식
ECC (양방향 암호화 알고리즘)
– RSA 대안 / 이산대수의 난해성에 기반한 공개키 암호화 알고리즘
DRM 기술요소
– 저작권 표현 / 인증 / 키관리
프로세스 상태
– 준비 / 실행 / 종료
– Ready / Block / Exit
Kiosk
– 터치 스크린 / 무인 종합 정보 시스템
전자우편 (응용 계층)
– POP3: 자신의 E-mail 서버에 도착한 메일을 컴퓨터로 가져오는 프로토콜
– SMTP: 작성된 메일을 다른 사람의 계정 E-mail 서버로 전송해 주는 프로토콜
– MIME: 텍스트, 이미지, 오디오 등의 멀티 미디어 메일을 주고받기 위한 프로토콜
S/MIME
– 송신 사실 부인방지
– 사용자 인증
– 무결성
사회 공학 공격
– 개인적인 친분이나 인간의 심리를 이용하는 비기술적은 수단 / 개인 정보를 수집하는 공격 기법
Rumbaugh 모델 종류(객체지향 분석 방법론)
– 객체 / 동적 / 기능
세그먼테이션 기법
– 기억장치의 사용자 관점을 보존하는 기억장치 관리 기법
– 세그먼트의 위치정보를 저장하는 세그먼트맵 테이블과 서로 영역을 침범하지 않게 하는 기억장비 보호키가 필요
– 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위(세그먼트)로 나눈 후 주기억장치에 적재하는 기법
메시지 (객체지향 기술)
– 객체들 사이를 상호작용하기 위한 인터페이스(메소드)를 뜻
– 객체들은 메시지를 통해 메소드 수행을 시작
Coad Yourdon (객체지향 분석 방법론)
– E-R 다이어그램을 사용하여 모델링 / 객체 식별, 구조 식별, 주체 정의, 속성과 인스턴스 연결 정의, 연산과 메시지 연결 정의 등의 과정으로 구성되는 방법
운영체제 성능 평가 기준
– 사용 가능도: 시스템을 사용할 필요가 있을때 즉시 사용 가능한 정도를 의미
– 처리 능력: 일정 시간 내에 시스템이 처리하는 작업의 양을 의미
– 신뢰도: 시스템이 주어진 문제를 정확하게 해결하는지를 나타내는 척도
MFQ(Multilevel Feedback Queue)
– 우선순위가 있는 각 큐(대기 리스트)가 있으며 큐마다 Time Slice가 존재
– 맨 마지막 단계의 큐는 RR 스케줄링 방식을 사용
– 낮은 큐일수록 Time Slice는 커지며, CPU 사용을 마친 프로세스는 낮은 큐로 이동
Bus Topology
– 하나의 메인 통신 회선에 다수의 단말기가 연결되어 있는 형태의 네트워크 토폴로지
overloading
– 같은 지역에 같은 이름의 메소드명을 사용하여 각각 다른 종류의 인수로 명령을 수행하는 것
— 메소드명이 클래스와 같으면 생성자 메소드
— 메소드명이 다른 클래스의 메소드명과 같으면 오버라이딩
— 메소드명이 같은 클래스의 메소드명과 같으면 오버로딩
객체지향 설계 원칙
– 의존성 뒤집기(Dependency Inversion)
– 인터페이스 분리(Interface Segregation)
– 리스코프 치환(Liskov Substitution)
객체지향 기술 특징
– 구현된 객체와 객체 간의 통신을 통해 객체 지향 프로그램 구현
– 현실 세계의 개체들을 속성과 메소드가 결합된 형태로 객체로 표현
– 현실 세계에 존재하는 속성을 데이터화한 것을 데이터베이스
SCR (페이지 교체 알고리즘)
– FIFO 기법의 단점을 보완하는 기법
– 오랫동안 주기억장치에 있던 페이지 중 자주 사용하는 페이지의 교체를 방지하기 위한 기법
유닉스 파일 시스템 (실린더 블록)
– 파일 데이터 블록
– i-node 블록
– 슈퍼 블록
데이터베이스 관리 시스템 (DBMS)
– 데이터 관리의 복잡성을 늘어나지만 관련된 대부분의 기능을 지원
– 데이터를 표준화하고 보안을 강화하며 무결성을 유지
– 특정 부분에 문제가 발생하면 전체 시스템에 영향을 미치는 경우가 많다
정규화 필요성
– 자료구조 안정화
– 저장 공간을 최소화
– 이상 현상을 방지
APM(Application Performance Manage-ment) (SQL 지원 도구)
– 운영 중인 시스템에 대한 가용성 확보, 다운 타임 최소화 등을 통한 안정적인 시스템 운영을 위한 모니터링 도구
– 시스템 부하량과 접속자 파악, 장애 진단 등을 진행
스키마 종류
– 개념 / 내부 / 외부
집단화(Aggregation) (확장 E-R 다이어그램)
– 각각의 관련있는 개체 타입을 통해 하나의 새로운 개체 타입을 만드는 것
– “part-whole” 관계 또는 “is-a-part-of” 관계를 표현
– 개체 타입들 간의 구조적인 집약 관계
Mulit-Valued Dependency
– 종속성 중 둘 이상의 속성(Multi-Valued)을 가진 결정자에 의해 정해지는 속성에 대한 의존성
Trigger
– 트랙잭션을 취소하는 이외의 조치를 명세할 필요가 있는 경우 메시지를 보내 어떤 값을 자동적으로 갱신하도록 프로시저를 기동시키는 방법
테이블 수직 분할
– 테이블의 속성 중 특정 속성들만 접근이 잦은 경우 사용
– 자주 조회되는 속성을 기준으로 분할
– 갱신 위주의 속성을 기준으로 분할
기수(Cardinality)
– RDBMS 릴레이션에서 생성된 튜플의 개수에 해당
제4정규형
– 정규화 과정에서 다치 종속을 제거한 상태에 해당
E-R 다이어그램
– 정상 설계된 E-R 다이어그램은 업무 수행 방식 변경에 영향을 거의 받지 않는다
– 업무 영역이 변경되는 경우엔 설계 변경이 발생할 수 있다
– 논리적인 그림이기 때문에 시스템에 아무런 영향을 받지 않는다
지연 갱신 (회복 기법)
– 갱신 결과를 로그에 기록해 두었다가 트랜잭션이 완료되면 한번에 데이터베이스에 반영(Redo)
Tree (비선형 구조)
– 데이터를 계층 구조로 표현하기에 적합한 자료 구조
– 하나 이상의 노드를 가지며 각 노드를 간선(Edge, Branch)으로 연결
– 방향성(Directed)이 있는 비순환(Acyclic) 그래프의 한 종류
상세 기능별 인터페이스 정의서(명세서)
– 호출 이후 결과를 확인하기 위한 반환값을 정의
– 사후 조건 및 인터페이스 데이터를 정의
– 세부 기능이 동작하기 전에 필요한 사전 조건을 정의
소스 코드 품질 개선
– 코드 인스펙션
– 리팩토링
– 증명
후위식(Postfix)
– 폴리쉬 표기법의 종류에서 연산자가 피연사자들의 뒤쪽에 위치하는 형식
패키징 도구 활용
– 여러 기종에 대한 콘텐츠 호환성 및 디지털 저작권 관리 기술(DRM) 연동을 고려
– 반드시 내부 콘텐츠에 대한 암호화 및 보안 기능을 고려
– 사용자 편의성을 고려해 최대한 단순하고 효율적으로 적용
자료구조 개념
– 데이터의 추가, 삭제, 탐색을 보다 효율적으로 연산하는 활동 포함
– 상황에 따라 다양한 형태의 자료구조를 선택하여 활용
– 프로그램에서 쉽게 활용될 수 있도록 논리적으로 설계된 데이터의 구조 및 관계를 의미
오류-부재의 궤변
– 아무리 많은 오류를 제거한다 해도 사용자의 요구사항을 만족하지 못하는 프로그램은 품질이 높다고 할수 없다
O(n)
– 빅 오(O) 표기법에서 데이터 처리에 필요한 연산 횟수가 데이터 수에 따라 일정하게 증가하는 형태
설계 기반 테스트
– 명세 기반 / 구조 기반 / 경험 기반
알파 테스트
– 개발자의 장소에서 사용자가 개발자 앞에서 행하는 기법
이분(이진) 탐색
– 검색 대상 데이터를 절반씩 나누어 검색하는 기법
루프 검사 (화이트 박스 제어구조 검사)
– 소스 코드의 반복 구조를 중점적으로 테스트
연계 시스템 구성
– 송신 / 중계 / 수신
장애(Failure) (결함 종류)
– 결함으로 인해 소프트웨어 및 서비스가 기대 결과를 나타내지 못하는 것
Resoure Usage (성능 측정 지표)
– 트랙잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량
형상 관리 도구 기능
– import / update / check-out
O(nlogn)
– 힙 정렬의 시간복잡도에서 최악의 경우에 해당
유지보수 비용 측정 방법
– Vessey & Webber / BL(belady와 lehman) / COCOMO
Pareto의 법칙
– 소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견된다는 법칙
자료 사전의 표기법
– (), =, +
디자인 패턴 개념
– 기능보다 구조, 가독성, 확장성에 비중
– 문제를 해결하기 위한 설계 패턴을 체계적으로 분류하여 소프트웨어 개발의 효율성과 재사용성을 높인 것
– 소프트웨어 아키텍처는 전체 시스템의 구조나 설계 모형을 재사용할 때 사용하지만 디자인 패턴은 구현 단계에서 해결 방안까지도 제공
CWE (보안 개발 방법론)
– 시간 및 상태: 동시 또는 거의 동시 수행을 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작되는 환경에서 시간 및 상태를 부적절하게 관리하여 발생할 수 이는 보안 취약점
– 보안 기능: 보안 기능(인증, 접근제어, 기밀성, 암호화, 권한 관리 등)을 부적절하게 구현 시 발생할 수 있는 보안 취약점
– API 오용: 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API를 사용하여 발생할 수 있는 보안 취약점
UML
– Rumbaugh, Booch, Jacobson 등의 객체 지향 방법론의 장점을 통합
– 객체 기술에 관한 국제표준화기구인 OMG(Object Management Group)에서 표준으로 지정
– 이해관계자 상호 간의 의사소동이 원할하게 이루어지도록 표준화하여 시각적으로 표현하는 대표적인 객체지향 모델링 언어
협약(Contract)에 의한 설계 조건
– 결과조건(postcondition) / 선행조건(precondition) / 불변조건(invariant)
Structural Things (UML 사물 다이어그램)
– 시스템의 개념적, 물리적 요소인 클래스, 컴포넌트, 노드 등을 표현
소프트웨어 비용 결정 (비용 산정 기법)
– 생산성 / 자원 / 프로젝트
소프트웨어 아키텍처 패턴
– 파이프-필터(Pipe-filter Pattern) / 계층화 패턴(Layered Pattern) / 마스터/슬레이브 패턴(Master/Slave Pattern)
순차적 응집도
– 가장 강한 응집도
XP(eXtreme Programming)
– 고객의 참여와 개발 과정(Release)의 반복을 극대화 하여 개발 생산성을 향상시키는 방법
– 비교적 소규모 인원의 개발 프로젝트에 효과
– XP의 가치에는 의사소통, 단순성, 용기, 존중, 피드백
나선형(Spiral) 모델
– 폭포수 모델과 프로토타입 모델의 장점에 위험 분석 기능을 더한 모델
– 나선을 돌듯이 여러 번의 지속적인 개발 과정을 통해 점진적으로 개발
– 개발 중 발생할 수 있는 위험을 최소화하는 것이 목적이며 유지보수가 필요 없다
요구사항 개발 절차
– 요구사항 명세화
– 요구사항 분석 및 추출
– 타당성 조사
디자인 패턴 (생성 패턴)
– Builder / Factory Method / Abstract Factory
요구사항 검증
– 일관성(Consistency): 개발 내용이 요구사항과 일치하는지 판단
CMMI 종류
– IPD-CMM / SE-CMM / SW-CMM
Open Source
– 사용 가능한 라이선스의 개수 및 인원수를 파악해야 한다
– 라이선스 종류별로 공개 범위에 차이가 있기 때문에 종류를 정확하게 파악해야 한다
– 기술의 지속 가능성을 고려하여 선택해야 한다
Scrum Model
– 스프린트 / 제품 백로그 / 스프린트 검토 회의
시스템 연계 기술
– AIP / DB Connection / Scoop
생성 중심 (소프트웨어 구성방식)
– 추상적인 명세를 구체화하여 소프트웨어를 재사용하는 구성방식
테일러링(Tailoring) 방법론 (내부요건)
– 요구사항: 프로젝트의 생명주기 활동에서 우선적으로 고려할 요구사항이 서로 다른 경우
– 보유 기술: 소프트웨어 개발 방법론, 산출물 등이 서로 다른 경우
– 목표 환경: 시스템의 개발 환경과 유형이 서로 다른 경우