IPv4, IPv6의 차이점
IPv4 | IPv6 |
32비트(4바이트) 10진수 보안 - IPsec 프로토콜 별도 설치 A, B, C, D 등 클래스 단위의 비순차적 할당(비효율적) 브로드캐스트 |
128비트(16바이트) 16진수 규모 및 단말기 수에 따른 순차적 할당(효율적) 호스트 주소 자동 설정(네트워크에 접속하는 순간 주소 부여 받음) 패킷 크기 확장(IPv4는 64키로바이트였음) 효과적인 라우팅(확장헤더) 플로 레이블링(Flow Labeling) - 특정 트래픽은 별도의 특별한 처리(실시간 통신 등)를 통해 높은 품질의 서비스를 제공할 수 있다. 인증 및 보안 - 확장기능에서 기본으로 제공 이동성 - 물리적 위치에 제한받지 않음(RFC 3775와 RFC 3776) 유니캐스트(unicast), 멀티캐스트(multicast), 애니캐스트(anycast) |
HTTP의 특징
- 하이퍼텍스트 전송 프로토콜(HyperText Transfer Protocol)
- 월드 와이드 웹(WWW)에 내재된 프로토콜
- 인터넷에서 데이터를 주고 받을 수 있는 프로토콜
- 웹 페이지를 방문할 때마다 컴퓨터는 HTTP(Hypertext Transfer Protocol)를 사용하여 인터넷 어딘가에 있는 다른 컴퓨터에서 해당 페이지를 다운로드한다
- 클라이언트 서버 구조
- 무상태 프로토콜(Stateless)-서버가 클라이언트의 상태를 보존하지 않는다.
- 비 연결성(Connectionless)
- HTTP 메세지
- 단순함, 확장 가능
PCM(Pulse Code Modulation) 특징
- 최초로 실용화된 '음성의 디지털 부호화' 및 '다중화 전송' 방식
- 이론 제창 및 설계: 1937년 프랑스의 A.H.Reeves
- 아날로그에서 디지털로 변환
- 음성 부호화(사상 처음으로 널리 쓰이기 시작한 국제 표준 음성 부호화기)
- 시분할다중화의 최초 구현
- PCM의 디지털화 과정: 표본화 -> 양자화 -> 부호화
상향식/하향식 통합 테스트
상향식 통합 테스트 | 하향식 통합 테스트 |
하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 방법 중요한 모듈들이 마지막에 테스트될 가능성이 있다. 가장 하위 단계의 모듈부터 통합 및 테스트가 수행되므로 스텁은 필요하지 않음. 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 크러스티는 필요함. 절차: 1.하위모듈을 클러스터로 결합 2.상위 모듈에에서 데이터의 입출력을 학인하기 위해, 모듈인 드라이버 작성 3. 통합된 클러스터 단위로 테스터 4. 테스트가 완료되면 클러스터는 프로그램 구조의 상위로 이동하여 결합하고 드레이버는 실제 모듈로 대체 |
깊이 우선 통합법. 넓이 우선 통합법 사용 테스트 초기부터 사용자에게 시스템 구조 보여줄 수 있음 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법 레벨이 낮은 데이터 구조의 세부사항은 설계초기 단계에서 필요 절차: 1. 주요 제어 모듈은 작성된 프로그램을 사용하고, 주요 제어 모듈의 종속 모듈들은 스텁으로 대체 2. 깊이 우선 or 넓이 우선 등의 통합 방식에 따라, 하위 모듈인 스텁들이 한 번에 하나씩 실제 모듈로 교체됨. 3. 모듈이 통합도리 때마다 테스트 실시 4. 새로운 오류가 발생하지 않음을 보증하기 위해 회귀 테스트 실시 |
클래스 설계 원칙
- 단일 책임원칙: 하나의 객체는 하나의 동작만의 책임을 가짐
- 개방-폐쇄의 원칙: 클래스는 확장에 대해 열려 있어야하며 변경에 대해 닫혀 있어야 한다
- 리스코프 교체의 원칙: 특정 메소드가 상위 타입을 인자로 사용할 때, 그 타입의 하위 타입도 문제 없이 작동해야 함
- 의존관계 역전의 원칙: 상위 계층이 하위 계층에 의존하는 전통적인 의존관계를 반전(역전)시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있음
GoF(Gangs of Four) 디자인 패턴
생성패턴 | 구조패턴 | 행위패턴 |
추상팩토리(Abstract Factory) 빌더(Builder) 팩터리메서드(Factory Method) 프로토타입(Prototype) 싱글톤(Sington) |
어댑터(Adapter) 브리지(Bridge) 컴포지트(Composite) 데코레이터(Decorator) 파사드(Facade) 플라이웨이트(Flyweight) 프록시(Proxy) |
책임 연쇄(Chain of Reponsibility)( 커맨드(Command) 인터프리터(InterPreter) 이터레이터(Iterator) 중재자(Mediator) 메멘토(Memento) 옵서버(Observer) 상태(State) 전략(Strategy) 방문자(Visitor) 템플릿메서드(Template Method) |
- factory method pattern: 상위클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위클래스에서 인스턴스를 생성하도록 하는 방식(Virtual-Constructor)
- prototype pattern: prototype을 먼저 생성하고 인스턴스를 복제하여 사용하는 구조
- bridge pattern: 구현부에서 추상층을 분리하여 각자 독립적으로 확장이 가능하게 하는 패턴
- mediator pattern: 객체간의 통제와 지시의 역할을 하는 중재자를 두어 객체지향의 목표를 달성
FEP(Front-End Processor) :
입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 프로세서가 차지하는 시간을 줄여주는 프로그램이나 하드웨어
객체 지향 개념
- 메서드(Method): 객체에 소속된 함수. 클래스로부터 생성된 객체를 사용하는 방법. 객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산
- 메시지(Message): 객체 간 상호작용을 하기 위한 수단. 객체에게 어떤 행위를 하도록 지시하는 방법
- 클래스(Class): 특정 객체 내에 있는 변수와 메서드를 정의하는 일종의 틀. 객체 지향 프로그래밍에서 데이터를 추상화하는 단위
- 인스턴스(Instance): 같은 클래스에 속한 각각의 객체
응집도는 높게, 결합도는 낮게
블루투스 공격
- 블루버그: 블루투스 장비 사이의 취약한 연결 관리를 악용한 공격
- 블루스나프(블루스나핑): 블루투스의 취약점을 활용하여 장비의 파일에 접근하는 공격. OPP를 사용하여 정보를 열람
- 블루재킹: 블루투스를 이용해 스팸처럼 명함을 익명으로 퍼뜨리는 것
- 블루프린팅: 블루투스 공격 장치의 검색 활동을 의미
입력 데이터 보안 약점
- SQL 삽입: 사용자의 입력 값 등 외부 입력 값이 SQL 쿼리에 삽입되어 공격
- 크로스사이트 스크립트: 검증되지 않은 외부 입력 값에 의해 브라우저에서 악의적인 코드가 실행
- 운영체제 명령어 삽입: 운영체제 명령어 파라미터 입력 값이 적절한 사전 검증을 거치지 않고 사용되어 공격자가 운영체제 명령어를 조작
- 자원 삽입: 자원을 조작할 수 있는 문자열을 삽입하여 시스템이 보호하는 자원에 임의로 접근할 수 있는 취약점
관계형 데이터 베이스
1. 튜플(Tuple): 릴레이션을 구성하는 각 행(레코드), 속성의 모임, 튜플들은 모두 다르다.
- 튜플의 수: 카디널리티(Cardinality) 또는 기수
2. 속성(Attribute): DB를 구성하는 가장 작은 논리적 단위(필드), 개체의 특성
- 속성의 수: 디그리(Degree) 또는 차수
정규화 과정
후보키 = 제5정규형
이행함수 = 제3정규형
부분함수(완전함수) = 제2정규형
결정자 함수 종속 제거=BCNF
화이트박스 테스트, 블랙박스 테스트의 차이점
화이트박스 테스트 | 블랙박스 테스트 |
개발자 관점의 단위 테스트 응용 프로그램과 내부 구조 로직을 검사하는 테스트 방식 내부 소스코드를 테스트하는 방식 소프트웨어, 모듈 등의 소스코드를 오픈 시킨 상태에서 논리적인 모든 경로를 테스트 구조를 분석하는 테스트. 테스트 초기 단계에 적용 소스코드의 모든 문장을 한 번 이상 실행함 Condition Testing, Loop Testing, Data Flow Testing |
사용자 관점의 테스트 내부 설계 구조나 작동 원리를 모르는 상태에서 동작을 검사하는 테스트 방식 올바른 값과 올바르지 않은 값을 입력 값으로 주어 도출된 결과를 확인하는 방식 기능 테스트 사용자의 요구사항 명세를 보면서 테스트 하는 것. 주로 구현된 기능을 테스트함 테스트 과정 후반부에 적용됨 Equivalence Partitioning Testing, Boundary Value Testing, Cause-Effect Graphing Testing, Error Guessing, Comparison Testing |
DoS 공격
- Ping of Death: 대량의 Ping을 전송해 네트워크를 마비시킴
- SYN Flooding: 접속을 요청하는 SYN Packet을 대량으로 전송해 네트워크를 마비시킴
- Land: Packet의 보내는 사람과 받는 사람을 모두 Server로 설정함
- Smurf: Broadcast를 이용해 Ping Packet을 보냄. 수많은 Ping Packet이 Server로 반사로 반사됨
UML관계
- 연관 관계(Association Relationship): 두 사물간의 구조적 관계로, 어느 한 사물 객체가 다른 사물 객체와 연결되어 있음
- 의존 관계(Dependency Relationship):한 사물의 명세서가 바뀌면 그것을 사용하는 다른 사물에게 영향을 끼치는 것(Cascade)
- 실체화 관계(Realization Relationship): 한 객체가 다른 객체에 의해 오퍼레이션을 수행하도록 지정
- 일반화 관계(Generalization Relationship): 일반화된 사물과 좀 더 특수화된 사물 사이의 관계
UML 다이어그램
- 액티비티 다이어그램(Activity diagram)
- 클래스 다이어그램(Class diagram)
- 시퀀스 다이어그램(Sequence diagram)
UML에서 시퀀스 다이어그램의 구성 항목
- 라이프라인
- 메세지
- 실행
- 액터
럼바우(Rumbaugh) 객체지향 분석 기법
객, 동, 기 / 객, 상, 자
객체 모델링 = 객체 다이어그램
동적 모델링 = 상태 다이어그램
기능 모델링 = 자료흐름도
테스트 드라이버(Test Driver)
- 상향식 테스트에 사용됨
- 테스트 대상 하위 모듈을 호출
- 파라미터 전달
- 모듈 테스트 수행 후의 결과 도출
관계 대수 연산
- Select(σ) : 릴레이션에서 주어진 조건을 만족하는 튜플을 선택
- Project(π) : 릴레이션의 일부 속성만 추출하여 중복되는 튜플은 제거
- Join(▷◁) : 두 개의 릴레이션을 공통의 속성으로 조인
- Division(÷)
Key
- 슈퍼키: 유일성 만족
- 후보키: 유일성, 최소성 만족
- 대체키: 기본키로 선택되지 못한 후보키
- 외래키: 다른 릴레이션의 기본키를 참조
- 기본키: 중복된 값을 가질 수 없으며 NULL값을 가질 수 없음
IP 주소 클래스
- A 클래스: 0.0.0.0~127.255.255.255
- B 클래스: 128.0.0.0~191.255.255.255
- C 클래스: 192.0.0.0~223.255.255.255
- D 클래스: 224.0.0.0~239.255.255.255
- E 클래스: 240.0.0.0~255.255.255.255
Cocomo Model
- Organic: 5만 라인 이하의 프로젝트에 적합. 소규모 팀이 개발에 사용
- Semi-detached: 30만 라인 이하의 프로젝트에 적합. 트랜잭션 처리시스템 등
- Embeded: 30만 라인 이상의 프로젝트에 적합. 하드웨어가 포함된 실시간 시스템 등
LOC기법
: S/W 각 기능의 원시 코드 라인수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
델파이 기법
: 한 명의 조정자와 여러 전문가의 의견을 종합하여 산정하는 기법
Effort Per Task 기법
: 각 기능을 구현하는데 필요한 노력을 생명 주기의 각 단계별로 산정(LOC기법 보완)
전문가 감정 기법
: 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법. 개인적, 주관적
유스케이스
사용자 액터: 기능을 요구하는 대상이나 시스템의 수행결과를 통보받는 사용자. 시스템이 제공해야하는 기능인 유스케이스의 권한을 가지는 대상
시스템 액터: 사용자 액터가 사용한 유스케이스를 처리해주는 외부 시스템. 시스템의 기능 수행을 위해서 연동이 되는 또 다른 시스템 액터
소프트웨어 아키텍쳐의 시스템 품질 속성
- 가용성(Availability)
- 변경 용이성 (Modifiability)
- 사용성(Usability)
- 성능
- 보안성
- 시험용의성
CASE(Computer-Aided Software Engineering)의 원천 기술
- 구조적 기법
- 프로토타이핑 기술
- 정보 저장소 기술
아키텍쳐 스타일
- 파이프 필터 구조: 서브시스템이 입력 데이터를 받아 처리하고 결과를 다른 시스템에 보내는 작업이 반복
- 클라이언트 서버 구조 : 컴포넌트가 다른 컴포넌트에게 서비스를 요청. 데이터가 여러 컴포넌트를 거치며 처리.
- 계층구조 : 모듈들로 응집된 계층 단위로 SW를 구성. 계층간에 사용 가능의 관계로 표현
- MVC 구조 : 모델-뷰-컨트롤러, 기능을 분리한 아키텍처
애자일 개방 방법론
- 익스트림 프로그래밍(XP , Extreme Programming)
- 스크럼(Scrum)
- 기능 주도 개발(FDD, Feature Driven Development)
INTERSELECT
:교집합
데이터 베이스 설계
개념적 설계 | 논리적 설계 | 물리적 설계 |
사용자의 요구사항 분석 후, 데이터베이스에 대한 추상적인 형태를 설계 개념적 스키마 생성 |
논리적 스키마 생성 데이터베이스 스키마를 설계, 테이블 구조도, 개념적 설계 단계에서 생성된 ERD를 바탕으로 생성되는 테이블들의 집합 논리적 데이터베이스 구조로 매핑(mapping) |
DBMS가 제공하는 물리적 구조에 따라 테이블 저장 구조 설계 필드의 데이터 타입, 인덱스, 테이블 저장 방법 등을 정의 레코드 집중의 분석 및 설계 |
차수는 +, 카디널리티는 *
은행원 알고리즘 = Avoidance
페이징 기법
페이징 기법 : 컴퓨터가 메인 메모리에서 사용하기 위해 데이터를 저장하고 검색하는 메모리 관리 기법
*페이지 크기가 작은경우
더 많은 페이징 사상테이블 필요
내부 단편화 감소
페이지의 집합을 효율적으로 운영가능
기억장치의 효율이 좋음
총 입출력 시간 증가
*페이지크기가 큼
주기억 장치 공간 절약
참조되는 정보와 무관한 양의 정보가 주기억 장치에 남게 됨
테이블이 복잡하지 않아 관리 용이
응집도 순서
우연적(Coincidental)응집도 < 논리적(Logical) 응집도 < 시간적 응집도(Temporal) < 절차적(Procedural) 응집도 < 교환적(Communication) 응집도 < 순차적(Sequential) 응집도 < 기능적(Functional) 응집도
OSI 7 계층
- 물리계층(Physical Layer)
- 하드웨어 전송 기술
- 대표적인 장비는 통신 케이블, 허브, 리피터
- 실제 접속 및 절단/기계,전기,기능,절차적 특성 규칙 정의
- 데이터 링크 계층(Data Link Layer)
- Point to Point
- 한 노드에서 다른 노드로 프레임을 전송
- 동기화/오류제어/순서제어
- 대표적인 장비는 스위치, 브릿지
- 물리적 주소인 MAC주소가 여기에 해당됨
- 전송 단위: Frame
- 전송 데이터에 대한 CRC 오류 제어가 필요
- 네트워크 계층(Network Layer)
- IP주소를 제공하는 계층
- 노드를 거칠 때마다 라우팅을 해줌
- 대표적인 장비는 라우터, L3 스위치, IP 공유기
- 전송 단위: Packet
- 전송 계층(Transport Layer)
- TCP/UDP
- TCP: 신뢰성 있는 통신을 보장. 데이터가 전달되는 과정에서 라우터, 스위치 등을 거치면서 데이터가 잘못되거나 전달이 안되는 경우 오류제어, 흐름제어를 통해 신뢰성 있는 데이터가 전달될 수 있게 한다. 연결 시 3-way hanshaking 방식으로 목적지와 상호 패킷을 교환하여 연결한다. 연결을 종료할 때는 4-way hanshaking 방식을 사용한다. 신뢰성 연결과 전달을 보장하는 만큼 중간의 확인 과정을 거치고 연결을 계속 유지해야되기 때문에 그만큼의 리소스가 들어간다. 데이터의 경계를 구분하지 않는다. 데이터의 전송 순서를 보장한다. 기본헤더: 최소 20byte 최대 60byte
- UDP: 비연결형 프로토콜. 데이터를 빠르게 전달하는데에 초점을 둔다. 따라서 목적지에 데이터가 제대로 전달되었는지 확인조차 하지 않는다. TCP에 비해 오버헤드가 적다. 신뢰성 있는 데이터를 전송할 때보다 스트리밍 같이 연속적인 특성을 가진 서비스에 사용한다. 데이터의 경계를 구분한다. 전송단위:Segment
- 세션 계층(Session Layer)
- 표현 계층(Presentation Layer)
- 데이터 변환/데이터 암호화/정보형식변환
- 응용 계층(Application Layer)
- 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다. 한마디로 우리가 사용하는 사용자 인터페이스를 제공하는 프로그램이다.
- 대표적으로 HTTP, FTP가 해당
- 전자사서함/파일전송
소프트웨어 비용 추정 모델
- COCOMO: 보헴이 제안. 시스템의 비용을 산정하기 위해 시스템을 구성하고 있는 모듈과 서브 시스템의 비용 합계를 계산하는 방식
- Putnam: Rayleigh-Norden 곡선의 노력 분포도를 이용. 소프트웨어 개발 주기의 간 단계별로 요구할 인력의 분포를 가정하는 모형
- Funtion-Point(FP): 요구 기능을 증가시키는 인자별로 가중치를 부여하여 기능의 점수를 계산하여 비용을 산정하는 방식
SPICE 모델
- 0단계 불안정
- 1단계 수행
- 2단계 관리
- 3단계 확립
- 4단계 예측
- 5단계 최적화
대칭키/비대칭키
대칭키(암호화키=복호화키) | 비대칭키(암호화키!=복호화키) |
DES AES IDEA |
RSA EIGAMAI ECC |
시스템 연계 기술
- DB링크: 데이터베이스에서 제공하는 DB 링크 객체를 이용한다. 수신측에서 DB 링크를 생성하고 송신측에서 해당 DB링크를 직접 참조하는 방식이다.
- 소켓 기술: 통신을 위한 Socket을 생성하여 Port를 할당한다. 클라이언트의 통신 요청 시 클라이언트와 연결하고 통신하는 네트워크 기술이다.
객체지향 분석 방법론
- Coad-Yourdon: E-R 다이어그램을 사용하여 객체의 행위를 모델링
- Booch(부치): 미시적, 거시적 개발 프로세스를 모두 사용하는 분석방법.
- Jacobson(제이콥슨): Use Case를 사용하여 분석(사용자, 외부 시스템, 다른 요소들이 시스템과 상호 작용 하는 방법을 기술)
테스트 케이스의 구성요소
- 테스트 조건
- 테스트 데이터
- 예상 결과
퀵 정렬
해싱함수의 종류
- 제곱법(mid-square)
- 숫자 분석법(digit analysis)
- 제산법(division)
제어프로그램
- 감시 프로그램
- 작업 제어 프로그램
- 데이터 관리 프로그램
결합도 높은 순서
(내): 내용 결합도
(공): 공통 결합도
(부): 외부 결합도인
(제): 제어 결합도
(스): 스탬프 결합도
(자): 자료 결합도
"내공"은 "외제"를 "쓰자"
정보보안을 위한 접근통제 정책 종류
- 임의적 접근통제정책(DAC ; Discretionary Access Control)
- 강제적 접근통제정책(MAC ; Mandatory Access Control)
- 역할기반 접근통제정책(RBAC ; Role-based Access Control)
MPEG-2
:1994년 ISO 13818로 규격화한 영상압축기술이다. 디지털 TV, 대화형 TV, DVD 등은 높은 화질과 음질을 필요로 하는 분야로 높은 전송속도 처리가 필요한데, 영상 및 음향을 압축하기 위해 MPEG1을 개선한 것이다. 현재 DVD 등의 컴퓨터 멀티미디어 서비스, 직접위성방송·유선방송·고화질 TV 등의 방송서비스, 영화나 광고편집 등에서 널리 쓰인다.
인터럽트
- 인터럽트의 개념: 중앙 처리 장치와 주변 장치의 차이에 따른 효율적인 시스템 자원 활용, 중단된 위치로 북귀되어 이상 없이 계속해서 프로그램이 진행되도록 하는데 있다.
- 인터럽트의 원인: 정전, 외부 프로세스 요청, 0으로 나누기, 페이지 폴트, 입출력 장치의 CPU 기능 요청 , SVC 인터럽트, Overflow, Underflow 등
일반화 관계
자료 흐름도 구성요소
- Process
- Data Flow
- Data Store
- Terminator
Edge - Node + 2
6-4+2=4
- IPSec: 네트워크 계층에서 IP 패킷 단위의 데이터 변조 방지 및 은닉 기능 제공
- SSL : TCP/IP 계층과 애플리케이션 계층 사이에서 인증, 암호화, 무결성을 보장하는 프로토콜
- S-HTTP : 클라이언트와 서버 간 전송되는 모든 메시지를 암호화하는 프로토콜
- SMTP(Simple Mail Transfer Protocol): 전자 우편을 교환하는 서비스를 제공하는 프로토콜
파티션 유형
- 범위 분할(Range Partitioning) : 지정한 열의 값을 기준으로 분할
- 해시 분할(Hash Partitioning) : 해시 함수를 적용한 결과 값에 따라 데이터 분할
- 조합 분할(Composite Partitioning) : 범위 분할 후 해시 함수를 적용하여 다시 분할
트리의 차수 : 전체 트리 중에서 가장 많은 차수
단말 노드 : 자식이 없는 노드
=>2번
Commit, Rollback => 원자성(Atomicity)
로킹 단위가 크면 나머지 다 작아짐 / 로킹 단위가 작으면 나머지 다 커짐
버퍼 오버플로
: 메모리를 다루는 데 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점
<문제 해설> HRN 방식의 우선순위 산정 공식 (대기시간+서비스시간)/서비스 시간 (값이 클 수록 우선순위가 높다.) 따라서 A의 우선순위 (5+20)/20 = 1.25 B의 우선순위 (40+20)/20 = 3 C의 우선순위 (15+45)/45 = 1.333333 D의 우선순위 (20+2)/2 = 11 순서는 D B C A |
Data Mining:빅데이터 분석 기술 중 대량의 데이터를 분석하여 데이터 속에 내재되어 있는 변수 사이의 상호관례를 규명하여 일정한 패턴을 찾아내는 기법
Data Twin: 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상의 모델로 실제 물리적인 자산 대신 소프트웨어로 가상화함으로써 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있고, 자산 최적화, 돌발사고 최소화, 생산성 증가 등 설계부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있는 모델
CPM : 노드와 간선으로 이루어진 네트워크
임계 경로 : 작업의 시작 및 종료 구간이 동시에 이루어질 때 가장 오래 걸리는 경로를 임계 경로라고 한다.
RIP(Routing Information Protocol)
- 최대 홉 카운트 15
- 거리 벡터 라우팅 프로토콜
- 소규모 네트워크 환경에 적합
- 최단경로탐색에는 Bellman-Ford 알고리즘을 사용
합성 중심(Composition-Based) : 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법으로, 블록 구성 방법이라고도 한다.
ARP: 논리주소를 물리주소로 변환
RARP: 물리주소를 논리주소로 변환
프로토콜(Protocol): 데이터 교환 방식에 대한 규약 혹은 체계
외계인 코드(Alien Code)
아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램
요구사항 검토 방법
- 동료검토: 작성자가 명세서 내용 설명 동료들이 결함 발견하는 형태
- 워크 스루 : 검토 회의 전 명세서를 미리 배포하여 사전 검토 후 짧은 검토 회의를 통해 오류 조기 검출
1. 연상 코드: 항목의 명칭이나 약호와 관계 있는 숫자, 문자, 기호를 이용하여 코드를 부여하는 방법
2. 블록 코드: 대상 항목에서 공통적인 것을 블록으로 구분하고 블록 내에 일련 번호를 부여하는 방법
3. 순차 코드: 일정 기준에 따라 최초의 자료부터 일련번호를 부여하는 방법
4. 표의 숫자 코드: 길이 넓이 부피 등 항목의 성질의 물리적인 수치를 그대로 코드에 적용시키는 방법
TP monitor
트랜잭션이 올바르게 처리되고 있는지 데이터를 감시하고 제어하는 미들웨어
XP(eXtreme Programming)의 5가지 가치
- 용기(Courage) : 고객의 요구사항 변화에 능동적인 대처
- 단순성(Simplicity) : 부가적 기능, 사용되지 않는 구조와 알고리즘 배제
- 커뮤니케이션(Communication) : 개발자, 관리자, 고객 간의 원활한 의사소통
- 피드백(Feedback) : 지속적인 테스트와 반복적 결함 수정, 빠른 피드백
- 존중(Respect) : 모든 프로젝트 관리자는 팀원의 기여를 존중
UML 구조 다이어그램의 종류
- Class
- Object(객체)
- Component(컴포넌트)
- Package(패키지)
- Composite Structure(복합체 구조)
- Deployment(배치)
is part of = 집단화, is a = 일반화
소프트웨어 품질측정 개발자 관점
- 정확성, 신뢰성, 효율성, 무결성, 유연성, 이식성, 사용성, 상호운용성
디지털 저작권 관리 (DRM)의 기술 요소
- 암호화
- 키 관리
- 정책 관리
- 식별
- 크랙방지
- 인증
알고리즘 시간복잡도 O(1)이 의미하는 것? =>알고리즘 수행시간이 입력 데이터 수와 관계없이 일정
정적 분석 도구
- pmd
- cppcheck
- checkstyle
- SonarQube
동치 분할 검사 : 입력 자료에 초점을 맞춰 케이스를 만들고 검사하는 방법 - 블랙박스 테스트 종류
알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법 - 인수 테스트 종류
베타 테스트 : 선정된 최종 사용자가 여러명의 사용자 앞에서 행하는 테스트 기법 - 인수 테스트 종류
상향식 : Driver
하향식 : Stub
교착상태 필요 충분 조건
- 상호 배제(mutual exclusion)
- 비선점
- 점유와 대기(hold and wait)
- 환형 대기(circular wait)
스택가드
메모리상에서 프로그램의 복귀 주소와 변수사이에 특정 값을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술
백도어 탐지 방법
- 무결성 검사
- 열린 포트 검사
- 로그 분석
- SetUID 파일 검사
크래커 = Tripwire
병행 제어 기법의 종류
- 로킹
- 타임스탬프
- 최적 병행 수행
팩(PACK) 10진법 형식
양수: C
음수: D
부소없음: F
-456 = 456D
바이오스(BIOS) = ROM에 탑재
INTERRUPT 스테이트
메이저 스테이트 중 하드웨어로 실현되는 서브루틴의 호출
SRAM | DRAM |
빠르다 용량이 작다 비싸다 |
느리다 용량이 크다 (상대적으로)저렴하다 주기억 장치 구성에 사용 |
오류 검출 코드
- Biquinary 코드
- 2-out-of-5 코드
- 3-out-of-5 코드
- 패리트 비트 코드
- 해밍 코드
메모리 인터리빙(Memory Interleaving)
- 인터리빙이란 여러 개의 독립된 모듈로 이루어진 복수 모듈 메모리와 CPU 간의 주소 버스가 한 개로만 구성되어 있으면 같은 시각에 CPU로부터 여러 모듈들로 동시에 주소를 전달할 수 없기 때문에, CPU가 각 모듈로 전송할 주소를 교대로 배치한 후 차례대로 전송하여 여러 모듈을 병행 접근하는 기법이다.
- CPU가 버스를 통해 주소를 전달하는 속도는 빠르지만 메모리 모듈의 처리 속도가 느리기 때문에 병행 접근이 가능하다.
- 메모리 인터리빙 기법을 사용하면 기억장치에 대한 접근 시간을 효율적으로 높일 수 있으므로 캐시 기억장치, 고속 DMA 전송 등에서 많이 사용된다.
전가산기
반가산기 2개, OR게이트 1개
입출력 제어 방법
- Channel에 의한 I/O: 특별한 명령어 I/O프로세서에게 수행토록하여 CPU 관여없이 I/O를 수행하는 방법
- DMA에 의한 I/O
- Interrept I/O
Q.1014워드(word)로 구성되어 있고, 각 워드는 16비트(bit)로 구성되어 있다고 가정할 때, PC, MAR, MBR의 비트수를 옳게 나타낸 것은?
PC: 10, MAR: 10, MBR: 16
0-주소 인스트럭션에 반드시 필요한 것
스택
누산기(Accumulator)
연산 결과를 일시적으로 기억하는 장치
절대 로더
- 연결-프로그래머
- 적재-로더
- 재비치-어셈블러
UNIX 운영체제
- 트리 구조이다
- 이식성, 호환성이 높다
- 하나 이상의 작업을 백그라운드에서 수행 가능하다
FIFO: First-In-First-Out
LRU: Least Recently Used. 가장 오랫동안 사용되지 않은 페이지부터 교체
LFU: Least Frequently Used. 사용 횟수가 가장 적은 페이지부터 교체
교착 상태 해결 기법
- 교착상태의 예방 - 자원의 낭비가 가장 심함
- 교착상태의 회피
- 교착 상태 복구
매핑(mapping)
가상주소와 물리주소의 대응 관계로 가상주로부터 물리주소를 찾아내는 것
다중처리 = CPU 여러개
떨어진 포인터(Dangling Pointer) - 비순환 그래프 디렉토리 시스템
쉘Shell
윈도의 command.com(시작-실행-cmd)이 하는 역할처럼 login 이후부터 사용자가 입력하는 명령어를 기계어로 변역하여
커널에 전달하는 역할을 하는 명령어 해석기.
사용자와 운영체제 사이를 Interface시키는 하나의 유틸리티프로그램
자료사전 기호
= : 정의(is composed of)
+ : 연결(and)
{} : 반복(iteration of)
[] : 선택(choose only one of)
() : 생략(optional)
** : 주석(comment)
'잡화 > 취업' 카테고리의 다른 글
[정보처리기사] 프로그래밍 언어 기출 정리 (0) | 2022.04.07 |
---|---|
[정보처리기사] 관계형 데이터 베이스, 제약조건(키) (0) | 2022.04.07 |
[정보처리기사] 데이터베이스 구축 기출 개념 정리 (0) | 2022.04.07 |
[정보처리기사] 소프트웨어 개발 기출 개념 정리 (0) | 2022.04.07 |
[정보처리기사] 소프트웨어 설계 기출 개념 정리 (0) | 2022.04.07 |
댓글