1. 프로그래밍 언어 - 출력값 (O)
2. 용어 - 보안위협 (X)
IP 스푸핑
- IP 자체의 보안 취약성을 악용한 것으로 자신의 IP주소를 속여서 접속하는 공격
- IP 스푸핑을 통해 서비스 거부 공격(DoS)도 수행사능하며 공격 대상 컴퓨터와 서버 사이의 연결된 세션을 끊을 수도 있음
- 종단 인증 같은 방법으로 해결
DNS 스푸핑
- 공격대상에게 전달되는 DNS IP주소를 조작해 의도치 않는 주소로 접속하는 공격
- 공격대상은 정상적인 URL을 통해서 접속하지만, 실제로 가짜 사이트로 접속됨
ARP(Address Resolution Protocol)
- IP → MAC
- IP 주소를 호스트와 연결된 네트워크 접속장치의 물리적 주소(MAC Address)로 변화하는 기능을 수행하는 프로토콜
- MAC을 변조하여 다른 PC에게 도달해야 하는 데이터 패킷을 가로채거나 방해
RARP(Reverse Address Resolution Protocol)
- MAC → IP
- ARP와 반대로 물리적 주소(MAC)를 IP 주소로 변환하는 기능을 수행하는 프로토콜
3. DB - 설명 (O)
- GRANT
4. 용어 - AAA (O)
- Authentication : 접근하는 사용자의 신원을 검증
- Authorization : 신원이 검증된 사용자에게 특정된 권한과 서비스를 허용하는 기능
- Accounting : 사용자가 어떤 종류의 서비스를 이용했고, 얼마만큼의 자원을 사용했는지 기록 및 보관하는 기능
5. 용어 - 디자인패턴 (O)
모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결방식 또는 예제
생성패턴 (Creational Pattern) - 클래스나 객체의 생성과 참조 과정 정의
추상 팩토리(Abstract Factory)
- 구체적인 클래스에 의존하지 않음
- 인터페이스를 통해 서로 연관 · 의존하는 객체들의 그룹으로 생성하여 추상적으로 표현
- 연관된 서브 클래스를 묶어 한 번에 교체하는 것이 가능
빌더(Builder)
- 작게 분리된 인스턴스를 조합하여 객체 생성
- 객체의 생성과정과 표현방법을 분리해 동일한 객체 생성에서도 서로 다른 결과를 만듧
팩토리 메소드(Factory Method)
- 가상 생성자 패턴(Virtual Constructor Pattern)
- 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴
- 상위 클래스에서 인터페이스만 정의, 실제 생성을 서브 클래스가 담당
프로토타입(Prototype)
- 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴
- 일반적인 방법
- 비용이 큰 경우 이용
싱글톤(Singleton)
- 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시 참조 불가
- 클래스 내에서 인스턴스가 하나뿐임을 보장
- 불필요한 메모리 낭비 최소화
구조패턴 (Structural Pattern) - 구조가 복잡한 시스템 개발을 쉽도록 클래스나 객체들을 조합하여 더 큰 구조로 만드는 패턴
어댑터(Adapter)
- 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변화해주는 패턴
- 기존 클래스를 이용하고 싶지만, 인터페이스가 일치하지 않을 경우 이용
브리지(Bridge)
- 구현부에서 추상층을 분리해 서로가 독립적으로 확장할 수 있도록 구성한 패턴
- 기능과 구현을 두 개의 별도 클래스로 구현
컴포지트(Composite)
- 여러 객체를 가진 복합 객체와 단일 객체를 구분없이 다루고자 할 때 사용하는 패턴
- 객체들을 트리구조로 구성하여 복합객체 안에 복합객체가 포함되는 구조를 표현
데코레이터(Decorator)
- 객체 간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴
- 임의의 객체를 부가적인 기능을 추가하기 위해 다른 객체들을 덧붙이는 방식
퍼싸드(Facade)
- 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구성함으로써 서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴
- 서브 클래스 사이의 통합 인터페이스를 제공하는 Wrapper 객체가 필요
플라이웨이트(Flyweight)
- 인스턴스가 필요할 때마다 매번 생성하는 것이 아니고 가능한 공유해서 사용함으로써 메모리를 절약하는 패턴
- 다수 유사 객체를 생성하고자 조작할 때 유용
프록시(Proxy)
- 복잡한 시스템을 개발하기 쉽도록 클래스나 객체들을 조합하는 패턴
- 대리자라는 이름으로 불림
- 내부에서는 객체 간의 복잡한 관계를 단순하게 정리해주고, 외부에서는 객체의 세부적인 내용을 숨기는 역할
행위패턴 (Behavioral Pattern) - 클래스, 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
책임 연쇄(Chain of Responsibility)
- 요청을 처리할 수 있는 객체가 둘 이상 존재해 객체가 처리하지 못하면 다음 객체로 넘어가는 형태
- 요청을 처리할 수 있는 객체들이 고리로 묶여있어 요청이 해결될 때까지 고리를 따라 책임이 넘어감
커맨드(Command)
- 요청을 객체의 형태로 캡슐화해 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그에 남기는 패턴
- 요청에 사용되는 각종 명령어들을 추상 클래스와 구체 클래스로 분리하여 단순화
인터프리터(Interpreter)
- 언어에 문법 표현을 정의하는 패턴
- SQL이나 통신 프로토콜과 같은 것을 개발할 때 사용
반복자(Iterator)
- 자료 구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴
- 내부 표현 방법의 노출없이 순차적인 접근 가능
중재자(Mediator)
- 수많은 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하는 패턴
- 객체 간의 의존성을 줄여 결합도를 감소시킴
- 객체 간의 통제와 지시의 역할 수행
메멘토(Memento)
- 특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴
- Ctrl + z 같은 되돌리기 기능을 개발할 때 주로 이용
옵서버(Observer)
- 한 객체의 상태가 변화하면 객체의 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴
- 분산된 시스템 간에 이벤트 생성, 발행하고 이를 수신해야할 때 이용
전략(Strategy)
- 동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호교환할 수 있게 정의하는 패턴
- 클라이언트는 독립적으로 원하는 알고리즘을 선택하여 사용할 수 있으며, 클라이언트에 영향없이 알고리즘의 변경 가능
탬플릿 메소드(Template Method)
- 상위 클래스에서 골격을 정의하고, 하위 클래스에서 세부 처리를 구체화하는 구조의 패턴
- 유사한 서브 클래스를 묶어 공통된 내용을 상위 클래스에서 정의함으로써 코드의 양을 줄이고 유지보수 용이하게 해줌
방문자(Visitor)
- 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성하는 패턴
- 분리된 처리기능은 각 클래스를 방문하여 수행
6. 용어 - 결합도 (O)
결합도(Coupling)
- 자료 결합도 : 모듈 간의 자료(값)를 통해서만 모듈 상호작용 발생
- 스탬프 결합도 : 모듈 간의 배열이나 오브젝트, 스트럭처 등이 전달되는 경우
- 제어 결합도 : 값만 전달되는 것이 아니라, 제어 요소가 전달되는 경우
- 외부 결합도 : 모듈에서 외부로 선언한 변수를 다른 모듈에서 참조
- 공통 결합도 : 전역변수를 참조
- 내용 결합도 : 다른 모듈 내부에 있는 변수나 기능을 또 다른 모듈에서 사용
응집도(Cohesion)
- 우연적 응집도 : 모듈 내부의 각 구성 요소들이 연관이 없는 경우
- 논리적 응집도 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리요소들이 한 모듈에서 처리
- 시간적 응집도 : 특정 시간에 처리되어야 하는 활동을 한 모듈에서 처리
- 절차적 응집도 : 모듈 안의 구성요소들이 기능을 순차적으로 수행하는 경우
- 통신적 응집도 : 동일한 입력과 출력을 사용하여 다른 기능을 수행
- 순차적 응집도 : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용
- 기능적 응집도 : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행
7. 프로그래밍 언어 - 출력값 (O)
8. 용어 - 테스트 (O)
- 상향식 통합 테스트
- 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법
- 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터가 필요
- 데이터의 입출력을 확인하기 위해 더미 모듈인 드라이버(Driver)를 생성
- 하향식 통합 테스트
- 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법
- 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구인 스텁(Stub) 사용
- 깊이 우선, 넓이 우선 등 통합방식에 따라 스텁들이 한 번에 하나씩 실제 모듈로 교체
9. 프로그래밍 언어 - 출력값 (O)
10. DB - 출력값 (O)
11. 용어 - 파일의 구조 (X)
- 파일의 구조
- 파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식을 의미
- 순차, 색인, 해싱으로 구분
- 순차 파일(Sequential File)
- 레코드를 논리적인 처리 순서에 따라 연속된 물리적 공간으로 기록하는 것
- 직접 파일(Direct File)
- 파일을 구성하는 레코드를 임의의 물리적 저장공간에 기록하는 것
- 색인 순차 파일(Indexed Sequential File)
- 순차 파일과 직접 파일에서 지원하는 편성방법이 결합된 형태
- <값, 주소> 쌍으로 구성되는 데이터 구조를 활용하여 데이터에 접근하는 방식 / 자기 디스크에서 주로 활용
12. 용어 - 테스트 케이스 (O)
13. 용어 - UML 다이어그램 (O)
구조적 다이어그램
- 클래스 다이어그램 : 클래스와 클래스가 가지는 속성, 클래스 사이의 관계 표현
- 객체 다이어그램 : 인스턴스를 특정 지점의 객체와 객체 사이의 관계로 표현(럼바우 객체지향 분석기법에서 객체 모델링)
- 컴포넌트 다이어그램 : 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스 표현(구현 단계)
- 배치 다이어그램 : 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치 표현(구현 단계)
- 복합체 구조 다이어그램 : 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
- 패키지 다이어그램 : 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계 표현
행위 다이어그램
- 유스케이스 다이어그램 : 사용자 요구사항 분석, 기능 모델링 작업에 사용, 사용자와 사용사례로 구성
- 시퀀스 다이어그램 : 상호작용하는 시스템이나 객체들이 주고받는 메시지를 표현
- 커뮤니케이션 다이어그램 : 동작에 참여하는 객체들이 주고받는 메시지와 객체들 간의 연관관계 표현
- 상태 다이어그램 : 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현(럼바우 객체지향 분석기법에서 동적 모델링)
- 활동 다이어그램 : 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
- 상호작용 개요 다이어그램 : 상호작용 다이어그램 간의 제어 흐름을 표현
- 타이밍 다이어그램 : 객체 상태 변화와 시간 제약을 명시적으로 표현
14. 용어 - OSI 계층 (X)
OSI 참조모델
물리 계층(Physical Layer)
- 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의
데이터 링크 계층(Data Link Layer)
- 두 개의 인접한 개발 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간의 연결 설정과 유지 및 종료를 담당
- 연결 설정, 데이터 전송, 오류제어
네트워크 계층(Network Layer)
- 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능
- 경로 제어, 패킷 교환, 트래픽 제어
- telnet, FRP, HTTP, POP, SMTP, TCP
전송 계층(Transport Layer)
- 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템 간에 투명한 데이터 전송을 가능하게 함
세션 계층(Session Layer)
- 송 · 수신 간의 관련성을 유지하고 대화 제어를 담당
표현 계층(Presentation Layer)
- 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층
- 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색
응용 계층(Application Layer)
- 사용자가 OSI 환경에 접근할 수 있도록 서비스 제공
TCP/IP
링크 계층 / 네트워크 엑세스 계층(물리 계층 / 데이터링크 계층)
- Ethernet, IEEE 802, HDLC, X.25, RS-232C, ARQ
인터넷 계층(네트워크 계층)
- IP, ICMP, IGMP, ARP, RARP
전송 계층(전송 계층)
- TCP, UDP
응용 계층(세션 계층 / 표현 계층 / 응용 계층)
- Telnet, FTP, SMTP, DHCP, SNMP, DNS, HTTP
15. 용어 - 암호화 알고리즘 (O)
대칭키 암호화 알고리즘
- 개인키 암호화 기법
- 동일한 키로 데이터를 암복호화 하는 기법
- 암복호화 속도가 빠름
- 관리해야할 키의 수가 많음
- 스트림 암호 알고리즘
- LSFR : 선형 피드백 시프트 레지스터
- RC4 : 인터넷 보안 프로토콜에서 널리 사용
- A5 : GSM 통신에서 사용
- 블록암호 알고리즘
- DES : 64비트 블록, 56비트키, 16라운드, Feistel 구조
- 3-DES : 2개의 키, 암호화, 복호화, 암호화, Feistel 구조
- AES : 128비트 블록, 128/192/256비트키, 10/12/14 라운드, SPN 구조
- SKIPJACK : 64비트 블록, 128비트키, 32라운드, Feistel 변형
- IDEA : 64비트 블록, 128비트키, 8라운드, Feistel + SPN 구조(스위스)
- SEED : 128비트 블록, 128비트키, 16라운드, Feistel 구조(한국)
- ARIA : 128비트 블록, 128/192/256비트키, 12/14/16라운드, SPN 구조(한국)
- LEA : 128비트 블록, 128/192/256비트키, 24/28/32라운드, SPN 구조(한국, 경량)
비대칭키 암호화 알고리즘
- 공개키 암호화 기법
- 암호화 시, 사용하는 공개키는 사용자에게 공개
- 복호화 시, 비밀키는 관리자가 비밀리에 관리
- 암복호화 속도가 느림
- 관리해야할 키의 수가 적음
- RSA(Rivest Shamir Adleman), ECC
해시
- 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
- 일방향 함수
- SHA 시리즈, HAVAL, MD4, MD5, N-Nash, SNEFRU
- SHA 시리즈
- 1993년 미국 국가안보국이 설계, 미국 국립 표준 기술 연구소에 의해 발표
- MD5 (Message Digest algorithm 5)
- 1991년 R.Rivest가 MD4를 대체하기 위해 고안한 암호화 해시 함수
- 블록 크기 : 512 비트
- 키 길이 : 128 비트
- N-NASH
- 1989년 일본의 전신전화주식회사에서 발표한 암호화 해시 함수
- 블록 크기 & 키 길이 : 128 비트
- SNEFRU
- 1990년 R.C.Merkle가 발표한 해시 함수
- 32비트 프로세서에서 구현을 용이하게 할 목적으로 개발
- 128비트 및 256비트의 출력을 지원
- 이집트 파라오의 이름을 따 명명됨
- TKIP (Temporal Key Integrity Protoocl) = WPA
- 기존의 무선 랜 보안 프로토콜인 WEP의 취약성을 보완한 데이터 보안 프로토콜
- 암호 알고리즘의 입력 키 길이는 128비트로 늘리고 패킷당 키 할당, 키값 재설정 등의 키 관리 방식을 개선
16. 프로그래밍 언어 - 출력값 (X)
코드 자세히 볼 것
17. 프로그래밍 언어 - 출력값 (X)
코드 자세히 볼 것
18. 용어 - 테스트기법 (O)
Equivalence Partition (동치 분할 검사) - 블랙박스 테스트
- 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료 개수를 균등하게 하여 테스트 케이스 정함
- 해당 입력 자료에 맞는 결과가 출력되는지 확인
- 동등 분할 기법, 동치 클래스 분해
Boundary Value Analysis (경계값 분석) - 블랙박스 테스트
- 입력 조건의 중간 값보다 경계값에서 오류 발생 확률이 높다는 점
- 입력 조건의 경계값을 테스트 케이스로 선정
Cause-Effect Graph (원인-효과 그래프) - 블랙박스 테스트
- 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 분석 후, 효용성이 높은 테스트 케이스를 선정하여 검사
Error Guess (오류 예측 검사) - 블랙박스 테스트
- 과거 경험이나 확인자의 감각으로 테스트 하는 기법
Comparision Test (비교 검사) - 블랙박스 테스트
- 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 확인
Base Path Test (기초 경로 검사) - 화이트박스 테스트
- 절차적 설계의 논리적 복잡성 측정
Loop Test (루프 검사) - 화이트박스 테스트
- 반복 구조에 초점을 맞춰 실시
Data Flow Test (데이터 흐름 검사) - 화이트박스 테스트
- 변수의 정의와 사용 위치에 초점을 맞춰 실시
19. 용어 - 인터페이스
GUI
- Windows, MacOS 등에서 사용하는 인터페이스
- 사용자가 명령어를 직접 입력하지 않고 키보드와 마우스 등을 이용해 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 사용자 인터페이스
20. 용어 - UML 관계
- 연관 관계(Association)
- 2개 이상의 사물이 서로 관련되어 있는 관계
- 집합 관계(Aggregation)
- 하나의 사물이 다른 사물에 포함되어 있는 관계
- 포함하는 쪽, 포함되는 쪽은 서로 독립적
- 포함 관계(Composition)
- 집합 관계의 특수한 형태
- 포함하는 사물의 변화하 포함되는 사물에게 영향을 미치는 관계
- 포함하는 쪽, 포함되는 쪽은 서로 독립될 수 없고 생명주기를 함께함
- 일반화 관계(Generalization)
- 하나의 사물이 다른 사물에 비히 더 일반적이거나 구체적인 관계
- 의존 관계(Dependency)
- 연관관계와 같이 사물 사이에 서로 연관은 있느나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
- 소유 관계는 아니지만 사물의 변화가 다른 사물에 영향을 미치는 관계
- 실체화 관계(Realization)
- 사물이 할 수 있거나 해야 하는 기능, 서로를 그룹화 할 수 있는 관계
- 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계
'Certificate > 정보처리기사' 카테고리의 다른 글
[2과목 소프트웨어 개발] 애플리케이션 테스트 관리 - 063. 애플리케이션 성능 분석 (0) | 2024.08.02 |
---|---|
[2과목 소프트웨어 개발] 애플리케이션 테스트 관리 - 062. 결함 (Fault) 관리 (0) | 2024.07.31 |
[정보처리기사 실기] 2024년 2회 실기 후기 (0) | 2024.07.30 |
[실기 시험 준비]2022 기출 - 1회(75/100) (1) | 2024.07.25 |
[실기 시험 준비]2022 기출 - 2회(70/100) (0) | 2024.07.25 |