CS

정보처리기사 필기&실기 기초 개념 모음 | 기출 정리 모음

오은이 2025. 4. 15. 13:40

 

 

기출 위주 정리

 

✅ 리눅스 파일 권한 설정  [2023 3회 실기]

읽기 (r) 4
쓰기 (w) 2
실행 (x) 1

 


사용자에게 읽기/쓰기/실행 권한,

그룹에게는 읽기/실행,

그 이외에는 실행 권한을 test.txt 파일에 부여하는 위한 명령어

chmod 751 test.txt

 

 

 

 

ATM  [2023 3회 실기]

  • 자료를 일정한 크기로 정하여 순서대로 전송하는 자료의 전송 방식
  • 셀이라 부르는 고정 길이 패킷을 이용해 처리가 단순하고 고속망에 적합
  • 가상 채널 기반의 연결 지향 서비스로, 셀이라 부르는 고정 길이(53바이트) 패킷 사용

 

 

 

포인터 Pointer

#include <stdio.h>
 
int main() {
    char* p = "KOREA";
    printf("%s\n", p);
    printf("%s\n", p+1);
    printf("%c\n", *p);
    printf("%c\n", *(p+3));
    printf("%c\n", *p+4);
}
코드 출력결과 설명
printf("%s\n", p); KOREA "KOREA" 전체를 가리킴
printf("%s\n", p+1); OREA p+1은 포인터 연산 → 'O'를 가리킴
printf("%c\n", *p); K *p는 p가 가리키는 값, 즉 'K'
printf("%c\n", *(p+3)); E p+3은 'E'를 가리킴 (0부터 시작: K(0), O(1), R(2), E(3))
printf("%c\n", *p+4); O
  • *p는 'K' → 아스키코드 75
  • *p + 4 → 75 + 4 = 79
  • 79는 아스키코드 'O'

 

 

 

 

포인터 Pointer2

#include <stdio.h>
 
int main(){

    char a[] = "Art";
    char* p = NULL;
    p = a;
 
    printf("%s\n", a);
    printf("%c\n", *p);
    printf("%c\n", *a);
    printf("%s\n", p);
 
    for(int i = 0; a[i] != '\0'; i++)
    printf("%c", a[i]);
 
}
코드 출력결과 설명
printf("%s\n", a); Art 문자열 a 출력
printf("%c\n", *p); A "Art"의 시작 주소 출력
printf("%c\n", *a); A a도 포인터처럼 쓰일 수 있음,
"Art"의 시작 주소 출력
printf("%s\n", p); Art "Art"를 가리키는 포인터 a 출력
반복문 printf("%c", a[i]); Art 문자열 a를 한 글자씩 출력

 

‼️포인터에서 포인터 빼고 불러오면 모든 글자 가져옴 (ex. printf("%s\n", p);) → Art

‼️포인터에서 포인터 불러오면 한 글자만 가져옴 (ex. printf("%c\n", *p);) → A

‼️포인터 + 숫자 → 맨 앞 글자 아스키 값과 숫자 연산

 

 

 

NAT  [2023 3회 실기]

  • IP 패킷에서 외부의 공인 IP주소와 포트 주소에 해당하는 내부 IP주소를 재기록하여 라우터를 통해 네트워크 트래픽을 주고받는 기술
  • 내부 IP와 외부 IP 주소를 서로 변환

 

 

 

 

동치 분할(Equivalence Partitioning)  [2023 3회 실기]

  • 시스템이나 시스템 구성요소(component) 또는 소프트웨어 프로그램의 입력값과 출력값이 특정 그룹으로 분류되며, 분류된 그룹내의 값들이 시스템에 의해 동일하게 취급된다는 특성을 이용하여 시험하는 기법
  • 유사한 입력값들이 시스템을 거치면서 유사한 답변이 나온다는 것을 가정하여 테스트
  • 하나의 값은 그 분할 내 모든 값을 대표하는 것으로 간주하는 기법
  • 모든 입력값을 시험할 필요가 없게 하여 시험을 효율적으로 수행하도록 지원
  • 일반적으로 경계값 분석기법(boundary value analysis)과 함께 테스트 케이스 도출하는데 사용

 

 

 

 

RIP  [2023 3회 실기]

  • 최소 Hop count를 파악하여 라우팅하는 프로토콜이다.
  • 거리와 방향으로 길을 찾아가는 Distance Vector 다이나믹 프로토콜이다.
  • 최단거리 즉, Hop count가 적은 경로를 택하여 라우팅하는 프로토콜로 Routing Table에 인접 라우터 정보를 저장하여 경로를 결정한다.
  • 최대 Hop count는 15로 거리가 짧기 때문에 IGP로 많이 이용하는 프로토콜이다.

 

 

 

IPSec  [2024 2회 실기]

  • Network layer에서 IP패킷을 암호화하고 인증하는 등의 보안을 위한 표준이다. 
  • 기업에서 사설 인터넷망으로 사용할 수 있는 VPN을 구현하는데 사용되는 프로토콜이다.
  • AH(Authentication Header)와 ESP(Encapsulating Security Payload)라는 두 가지 보안 프로토콜을 사용한다.

 

 

 

OSPF  [2024 1회 실기]

  • 대표적인 링크 상태 라우팅 프로토콜이다. 이것은 인터넷에서 연결된 링크의 상태를 감시하여 최적의 경로를 선택한다는것이다.
  • 단일 자율 시스템 내에서 라우팅 정보를 배포하는 데 사용되는 내부 게이트웨이 프로토콜이다.
  • 모든 대상에 도달하기 위한 최단 경로를 구축하고 계산하며 최단 경로는 Dijkstra 알고리즘을 사용하여 계산된다.

 

 

 

페이지 부재 알고리즘(부재/적재/교체)   [2024 1회 실기], [2024 3회 실기]

LFU (Least Frequently Used) 알고리즘  : 가장 사용량 적은 것부터 교체

LRU (Least Recently Used) 알고리즘 : 가장 오래된 것부터 교체

 

 

 

 

템퍼프루핑  [2023 1회 실기]

  • 소프트웨어에서 워터마크 삭제등과 같이 소프트웨어가 불법으로 변경(unauthorized modifications)되었을 경우, 그 소프트웨어가 정상 수행되지 않게 하는 기법이다.
  • 소프트웨어의 위변조 방지 역공학 기술의 일종으로 디지털 콘텐츠의 관련 산업이나 전자상거래 또는 보호해야 할 소프트웨어가 있는 다양한 산업 분야에 적용된다.

 

 

 

 

데이터베이스 설계 순서  [2023 2회 실기]

요구사항 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현

 

 

 

 

싱글톤(Singleton) / 생성 패턴  [2023 2회 실기]

  • 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다.
  • 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용한다.

 

방문자(Visitor) / 행위 패턴  [2023 2회 실기]

  • 호스트 객체의 내부 상태에 접근할 수 있는 방법을 제공하여 호스트 객체에 연산을 추가할 수 있도록 한다.
  • 이 패턴은 보통 합성 구조의 원소들과 상호 작용하는 데 사용되며, 기존 코드를 변경하지 않고 새로운 기능을 추가하는 방법이다.


이터레이터(Iterator) / 행위 패턴 
[2024 2회 실기]

  • 컬렉션 객체의 내부 구조를 노출하지 않고 순차적으로 접근할 수 있게 하는 패턴이다. 
  • 이 패턴은 객체의 내부 표현 방식에 독립적으로 요소에 접근할 수 있도록 해준다
  • 반복 프로세스를 캡슐화하여 클라이언트 코드에서는 컬렉션의 구체적인 구현에 종속되지 않도록 한다.

 

추상팩토리(Abstract Factory) / 생성 패턴  [2024 1회 실기]

  • 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴이다.
  • 연관성이 있는 객체 군이 여러개 있을 경우 이들을 묶어 추상화하고, 어떤 구체적인 상황이 주어지면 팩토리 객체에서 집합으로 묶은 객체 군을 구현화 하는 생성 패턴이다
  • 관련성 있는 여러 종류의 객체를 일관된 방식으로 생성하는 경우에 유용하다.
  • kit라고도 불린다.

 

 

 

SJF와 SRT

SJF (Shortest Job First) 서비스 시간이 짧은 순서로 실행 (비선점형)
SRT or SRTF (Shortest Remaining Time First) 남은 서비스 시간이 가장 짧은 프로세스를 즉시 실행 (선점형)

 

 

 

 

SRT 스케줄링 평균 반환/대기 시간 구하기  [2024 2회 실기]

프로세스 도착 시간 서비스 시간
A 0 8
B 1 4
C 2 9
D 3 5

 

‼️수행 절차

① A가 0초에 도착 → 다음 도착시간 1초까지 1초 수행 → A 남은 서비스 시간 8-1=7

② B가 1초에 도착 → 1초에 도착 완료 상태인 A와 B 중에 더 짧은 프로세스 B 선택 → 다음 도착시간 2초까지 1초 수행 → B 남은 서비스 시간 4-1=3

...

 

실행 구간 파악

프로세스 시행 시간 구간 총 실행 시간
A 0–1, 11–17 1초 + 7초 = 8초
B 2–5 4초
C 18–26 9초
D 6–10 5초

 

 

반환 시간&대기 시간 구하기

프로세스 도착 시간 서비스 시간 완료 시간 반환시간(TAT) = 완료 - 도착 대기시간 = TAT - 서비스
A 0 8 17 17 - 0 = 17 17 - 8 = 9
B 1 4 5 5 - 1 = 4 4 - 4 = 0
C 2 9 26 26 - 2 = 24 24 - 9 = 15
D 3 5 10 10 - 3 = 7 7 - 5 = 2

 

평균 반환시간 : (17+4+24+7)/4 = 13
평균 대기시간 : (9+0+15+2)/4 = 6.5

 

 

‼️SJF일 경우, 도착한 프로세스 중 제일 짧은 것이 끝날때까지 수행

‼️즉, 도착시간 0초에서 A밖에 도착하지 않았으니 A가 8초 연속 실행하게됨

 

 

 

 

 

 

에러 제어 관련 기술  [2023 2회 실기]

  • hamming : hamming  Code는 데이터 전송시 1 비트의 에러를 정정할 수 있는, 오류정정부호의 일종으로 미국의 Bell 연구소의 Hamming에 의해 고안되었다. 선형블록부호 및 순회부호에 속에 속한다.
  • FEC (Forward Error Correction) : 송신측이 전송할 문자나 프레임에 부가적 정보(Redundancy)를 첨가하여 전송하고 수신측이 이 부가적 정보를 이용하여 에러검출 및 에러정정을 하는 방식이다.
  • BEC (Binary Erasure Channel) : 데이터 전송 과정에서 오류가 발생하면 송신 측에 재전송을 요구하는 방식이다. 오류를 검출하는 방법은 Parity검사와 CRC, 블록 합 검사 등이 있다.
  • parity : 데이터가 저장장치 내의 한 장소에서 다른 장소로 이동되거나, 컴퓨터들간에 전송될 때, 데이터가 유실 또는 손상되었는지 여부를 점검하는 기술과 관련된 용어이다.
  • CRC (Cyclic Redundancy Check) : 네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식을 말한다.

 

 

 

 

HDLC 프로토콜에 대한 설명  [2023 2회 실기]

  • [정보]  프레임은 Seq, Next, P/F의 필드를 가진다. 또한 맨 처음 비트를 0으로 가진다. Seq는 송신용 순서번호를 가지고 있다. Next는 응답용 순서번호를 가진다. P/F는 P가 1로 설정된 경우 주국에서 종국에 데이터 전송을 허용하는 것을 의미하고 F가 1로 설정된 경우 종국에서 주국으로 데이터 전송을 하는 것을 의미한다.
  • [감독] 프레임은 맨 앞의 필드가 1로 되어 있어 정보 프레임이 아니라는 것을 나타내고 다음 비트가 0이 나와있다. Type의 경우에는 2비트를 가지고 있어 4가지의 종류로 나누어진다.  데이터를 보내는 역할이 아니라 응답의 기능을 수행하므로 Seq에 대한 값은 필요가 없고 다음 프레임을 요구하는 Next만 존재한다.
  • [비번호] 프레임은 순서 번호가 없는 프레임을 의미한다. 첫 번째 비트와 두 번째 비트가 모두 1로 설정되어 있다. 여러 종류를 가지고 있는데 Type의 2비트와 Modifier의 3비트를 합쳐 5비트를 통해 종류를 나눈다.
  • [비동기균형]  은/는 두 호스트 모두 혼합국으로 동작한다. 양쪽에서 명령과 응답을 전송할 수 있다.
  • [비동기응답] 은/는 불균형 모드로 주국의 허락 없이 종국에서 데이터를 전송할 수 있다.

 

 

 

 

자바 생성자

public class Main{
    public static void main(String[] args) {
        
        String str1 = 'Programming';
        String str2 = 'Programming';
        String str3 = new String('Programming');
        
        println(str1==str2)
        println(str1==str3)
        println(str1.equals(str3))
        print(str2.equals(str3))
    }
}

 

new 생성자는 == 로 비교했을 때 같지 않음

true
false
true
true

 

 

 

 

 

암호화 알고리즘  [2023 2회 실기]

  • 대칭 키 : DES, AES, ARIA, SEED
  • 비대칭 키 : RSA, ECC

 

 

 

Rootkit  [2024 1회 실기]

  • 인터넷 공격자의 존재를 숨기면서 이 공격자에게 시스템에 대한 무제한 접근 권한을 부여하는 악성 프로그램이다.
  • 해커가 자신의 존재를 숨기면서 허가되지 않은 컴퓨터나 소프트웨어에 접근할 수 있도록 설계된 도구이다.
  • 일반적으로 펌웨어, 가상화 계층 등의 다양한 시스템 영역에서 작동하며, 운영체제의 시스템콜을 해킹하여 악성코드의 실행여부를 숨겨 안티바이러스 탐지를 우회할 수 있다.

 

 

 

APT  [2024 1회 실기]

  • 불특정 다수가 아닌 명확한 표적을 정하여 지속적인 정보수집 후 공격감행할 수 있다.
  • 시스템에 직접 침투하는 것뿐 아니라 표적 내부직원들이 이용하는 다양한 단말을 대상으로 한다.
  • 한가지 기술만이 아닌 Zero-day 취약점, 악성코드 등 다양한 보안 위협 공격 기술을 사용한다.
  • 일반적으로 공격은 침투, 검색, 수집 및 유출의 4단계로 실행되며, 각 단계별로 다양한 공격 기술을 사용한다.

 

 

 

파이썬 슬라이싱

a = "engineer information processing"
b = a[:3]
c = a[4:6]
d = a[28:]
e=b+c+d
print(e)

 

[시작 인덱스:종료 인덱스+1]

b = a[:3]        # 0~2까지 = 'eng'
c = a[4:6]       # 4~5까지 = 'ne'
d = a[28:]       # 28부터 끝까지 = 'ing'

 

engneing

 

 

 

 

 

테스트 도구  [2023 2회 실기]

  • 테스트 드라이버 : 필요 데이터를 인자를 통해 넘겨주고, 테스트 후 결과값을 받는 역할을 하는 가상 모듈
  • 테스트 스텁 : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로, 일시적 필요 조건만 가지고 있는 시험용 모듈

 

 

 

 

테스트

 

정적 테스트

  • 실행 x, 코드 대상 분석, 코딩표준, 코딩스타일, 코딩 복잡도, 남은 결함 등 파악을 위함
  • 종류 : 워크스루, 인스펙션, 코드검사

동적 테스트

  • 코드 실행, 소프트웨어 개발 모든 단계에서 수행
  • 종류 : 블랙박스 테스트, 화이트박스 테스트

 

테스트 순서

① 단위 테스트 : 모듈이나 컴포넌트에 초점을 맞춰 수행하는 테스트

 

② 통합 테스트 : 단위 테스트 완료된 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정

- 비점진적 통합 방식 : 모든 모듈이 미리 결합 (ex.빅뱅 통합 테스트)

- 점진적 통합 방식 : 모듈 단위로 단계적 통합, (ex.하향식, 상향식, 혼합식 통합 테스트)

점진적 통합 테스트 종류 설명
하향식 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트 (종속 모듈들은 스텁으로 대체)
상향식 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트 (하위 모듈들을 클러스터로 결합), 더미 모듈인 드라이버 작성
혼합식 하위 수준에선 상향식 통합, 상위 수준에선 하향식 통합을 사용해 최적의 테스트 지원

 

③ 시스템 테스트 : 개발된 소프트웨어가 완벽하게 수행되는가를 점검

 

④ 인수 테스트 : 사용자의 요구사항을 충족하는디에 중점을 두고 테스트

인수 테스트 종류 설명
알파 테스트 개발자 장소에서 사용자가 개발자 앞에서 수행, 오류와 문제점을 확인하며 기록
베타 테스트 사용자가 여러 사용자 앞에서 수행, 실업무를 가지고 직접 테스트

 

 

 

 

서버 접근 통제 유형  [2023 3회 실기]

  • 역할 기반 접근통제(RBAC) : 조직 내에서 직무, 직책 등 개인 역할에 따라 접근 권한 부여
  • 임의 접근통제(DAC) : 데이터에 접근하는 사용자 신원에 따라 접근 권한 부여
  • 강제 접근통제(MAC) : 주체와 객체 등급 비교하여 접근 권한 부여

 


 

기초 개념 위주 정리

 

1과목 : 소프트웨어 설계

 

✅ 나선형 모델
계획 수립 - 위험 분석 - 개발 및 검증 - 고객 평가
 
✅ 애자일 모형 기반 소프트웨어 개발 모형
스크럼, XP, 칸반 등

✅ 스크럼
- 제품 책임자 : 제품에 대한 이해도가 가장 높은 사람, 주로 개발 의뢰자나 사용자 (백로그에 대한 우선순위 지정)
- 스크럼 마스터 : 객관적인 시각에서 조언해주는 가이드 역할
- 개발팀 : 제품 책임자와 스크럼 마스터를 제외한 모든 팀, 개발에 참여하는 모든 사람
- 스크럼 개발 프로세스 : 제품 백로그 - 스프린트 계획 회의 - 스프린트 - 일일 스크럼 회의 - 스프린트 검토 회의 - 스프린트 회고

✅ XP
- 수시로 발생하는 요구사항 대응하기 위해 고객 참여와 개발 과정 반복 극대화
- 대표적 애자일 방법 중 하나
- 핵심 가치 : 의사소통, 단순성, 용기, 존중, 피드백
- 프로세스 : 사용자 스토리 - 릴리즈 계획 수립 - 스파이크 - 이터레이션 - 승인 검사 - 소규모 릴리즈


✅ 요구사항 개발 프로세스
1. 도출 : 서로의 의견 교환, 문제를 이해
2. 분석 : 모호하거나 이해되지 않는 부분 걸러냄, 비용과 일정에 대한 제약 설정
3. 명세 : 문서화, 기능 요구사항은 명확하게 기술
4. 확인 : 개발 자원을 요구사항에 할당하기 전 완전히 작성됐는지 검토

✅ 요구사항 분석
- 개발의 실제적 첫 단계, 요구사항을 이해하고 문서화(명세화)
- 구조적 분석 기법 : 자료의 흐름과 처리 중심, 분석 도구와 분석 절차로 문서화

✅ 자료 흐름도(DFD)
- 자료의 흐름 및 변환 과정과 기능 중심
- 기호가 있음
- 프로세스 : 동그라미 (물품 확인)
- 자료 흐름 : 화살표 (물품 코드)
- 자료 저장소 : = (물품 대장)
- 단말 : 가로로 긴 네모 (공장)

작성 지침
- 자료 흐름은 처리 변환할 때마다 새로운 이름 부여
- 출력 자료 산출을 위해선 반드시 입력 자료 발생
- 상위 단계와 하위 단계 흐름 서로 일치해야함
- 입력 화살표가 있다고 출력 화살표가 필수 아님

✅ 자료 사전
- 자료를 더 자세히 정의
- = : 정의
- + : 연결
- () : 생략
- [ | ] : 선택 또는 or
- {} : 반복
- * * : 설명 주석

✅ 인터페이스
- 소프트웨어에 의해 간접 제어되는 장치와 소프트웨어를 실행하는 하드웨어
- 서로 다른 두 시스템이나 소프트웨어 등을 서로 이어주는 부분 또는 접속 장치

✅ UI설계 도구
- 와이어프레임 : 페이지에 대한 개략적인 레이아웃이나 뼈대를 설계 (손그림, 파워포인트, 키노트, 스케치, 일러스트, 포토샵 등)
- 목업 : 와이어프레임보다 좀 더 실제 화면과 유사하게 만든 정적 형태의 모형, 실제로 구현되진 않음 (파워 목업, 발사믹 목업 등)
- 스토리보드 : 와이어프레임에 콘텐츠에 대한 설명, 페이지 간 이동 흐름 등을 추가한 문서, 제목, 작성자, UI화면, 디스크립션 등 작성 (파워포인트 , 키노트, 스케치, Axure 등)
- 프로토타입 : 스토리보드 등에 인터랙션 (마우스 클릭하면 반응) 을 적용, 실제 구현된 것처럼 테스트 가능한 동적 형태의 모형 (html/css, Axure, Flinto 등)
- 유스케이스 : 사용자가 원하는 목표를 달성하기 위해 수행할 내용 기술

✅ 객체지향 분석의 방법론
- 럼바우 : 객체, 동적, 기능 모델
- 부치 : 미시적 개발 프로세스와 거시적 개발 프로세스 모두 사용
- jacobson : use case 강조
- Coad, Yourdon : E-R 다이어그램 사용
- Wirst-Brock : 고객 명세서 평가

✅ 럼바우 분석 기법
- 객체 모델링 - 동적 모델링 - 기능 모델링 순
- 객체 모델링 : 정보 모델링, 객체 간 관계를 객체 다이어그램을 표시
- 동적 모델링 : 상태 다이어그램 이용, 시간 흐름에 따른 객체 제어 흐름, 상호작용, 동작 행위 표현
- 기능 모델링 : 자료 흐름도 (DFD)를 이용해 다수의 프로세스 간 자료 흐름 처리 과정 표시

✅ 객체지향 설계 원칙
- 단일 책임 원칙(SRP) : 객체는 단 하나의 책임만, 응집도는 높고 결합도는 낮게 설계
- 개방-폐쇠 원칙(OCP) : 기존 코드 변경 없이 기능 추가, 인터페이스 묶어 캡슐화
- 리스코프 치환 법칙(LSP) : 자식-부모 클래스 사용, 부모 무시 없이 재정의
- 인터페이스 분리 법칙(ISP) : 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향 없어야함
- 의존 역전 원칙(DIP) : 추상성이 높은 클래스와 의존 관계 맺어야함, 인터페이스 사용하면 원칙 준수

✅ 팬인/팬아웃
- 팬인 : 어떤 모듈을 자신을 제어(호출)하는 모듈의 수 (자기에게 들어오는 화살표)
- 팬아웃 : 어떤 모듈에 의해 자신이 제어(호출)하는 모듈의 수 (자기에게서 나가는 화살표)
- 팬인은 높게, 팬아웃은 낮게 설계

✅ 결합도 약할수록, 응집도 높을수록 품질 좋음

‼️답안을 영어로 작성하는 사례도 있으니 영문 이름도 암기 필수


✅ 결합도 (Coupling)
- 모듈 간에 상호 의존하는 정도, 두 모듈 사이 연관 관계

세기 결합도 종류 내용
★☆☆☆☆
(약함)
자료 결합도 (Data Coupling) 모듈 간 인터페이스로 단순 파라미터만 전달되어 상호작용함.
가장 바람직한 결합 형태.
★★☆☆☆ 스탬프 결합도 (Stamp Coupling) 배열, 구조체, 객체 등 복합 자료형 전체를 전달하지만, 일부 정보만 사용함.
★★★☆☆ 제어 결합도 (Control Coupling) 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하는 제어 요소를 전달하는 경우
★★★★☆ 외부 결합도 (External Coupling) 어떤 모듈이 외부에 있는 다른 모듈의 데이터를 참조하는 경우 (데이터, 통신 프로토콜 등)
★★★★★ 공통 결합도 (Common Coupling) 여러 개의 모듈이 하나의 공통 데이터 영역(전역 변수 참조 및 갱신)을 사용하는 경우
★★★★★
(가장 강함)
내용 결합도 (Content Coupling) 한 모듈이 다른 모듈의 내부 변수나 기능을 직접 접근/사용함.
가장 바람직하지 않은 결합 형태.

 


✅ 응집도 (Cohesion)
- 모듈의 내부 요소들의 서로 연관되어 있는 정도, 모듈 내부 명령이나 호출문

세기 응집도 종류 내용
★☆☆☆☆ (약함) 우연적 응집도 (Coincidental Cohesion) 모듈 내 구성 요소들 간 연관이 전혀 없음.
우연히 묶인 형태로, 가장 바람직하지 않음.
★★☆☆☆ 논리적 응집도 (Logical Cohesion) 유사한 기능을 가진 여러 요소들이 하나의 모듈에 묶여 있고, 조건문 등으로 분기 처리됨.
★★★☆☆ 시간적 응집도 (Temporal Cohesion) 같은 시점에 실행되어야 하는 작업들이 한 모듈에 묶인 경우 (예: 초기화, 종료 작업).
★★★☆☆ 절차적 응집도 (Procedural Cohesion) 모듈이 다수 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우 ('순차' 라는 단어가 들어가서 순차적 응집도로 헷갈리기 쉬운 유형)
★★★★☆ 교환적 응집도 (Communication Cohesion) 같은 입력 또는 출력 데이터를 공유하면서 서로 다른 기능을 수행하는 구성요소들이 묶임.
★★★★☆ 순차적 응집도 (Sequential Cohesion) 한 구성요소의 출력이 다음 요소의 입력으로 사용되는 경우.
데이터 흐름 중심 구성.
★★★★★ (강함) 기능적 응집도 (Functional Cohesion) 모듈 내 모든 구성 요소가 하나의 명확한 목적/기능만을 수행.
가장 바람직한 응집 형태.



✅ 디자인 패턴
- 아키텍처 패턴 : 전체 시스템의 구조를 설계하기 위한 참조 모델
- 디자인 패턴 : 서브시스템에 속하는 컴포넌트들과 그 관계를 설계하기 위한 참조 모델

✅ 생성 패턴
- 객체의 생성과 참조 과정을 캡슐화하여 생성되거나 변경 시 프로그램 구조에 영향을 크게 받지 않도록 함, 프로그램 유연성 (5개)
- 추상 팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글톤

✅ 구조 패턴
- 클래스나 객체들을 조합하여 더 큰 구조로 만들 수 있게 해줌, 구조가 복잡한 시스템 개발 쉽게함 (7개)
- 어댑터, 브리지, 컴포지트, 데코레이터, 퍼싸드, 플라이웨이트, 프록시

✅ 행위 패턴  [2024 3회 실기]
- 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의 (11개)
- 하나의 객체로 수행할 수 없는 작업을 여러 객체로 분배하면서 결합도를 최소화
- 책임 연쇄, 커맨드, 인터프리터, 반복자, 중재자, 메멘토, 옵서버, 상태, 전략, 템플릿 메소드, 방문자

✅ 인터페이스 요구사항 분석 절차
- 요구사항 선별 - 요구사항 관련 자료 준비 - 요구사항 분류 - 요구사항 분석 및 명세서 구체화 - 요구사항 명세 공유

✅요구사항 검증 방법
- 동료 검토 : 작성자가 명세서 설명, 동료들이 들으면서 결함 발견
- 워크스루 : 명세서 미리 배포 후 짧은 검토 회의로 결함 발견
- 인스펙션 : 작성자를 제외한 전문가들이 확인하며 결함 발견
- 동료검토, 워크스루는 비공식적인 검토, 인스펙션은 공식적인 검토 방법

✅ 미들웨어
- 분산 컴퓨팅 환경에서 서로 다른 기종 간의 하드웨어나 프로토콜, 통신 환경 등을 연결하는 소프트웨어
- 위치 투명성 제공
- DB : 클라이언트에서 원격 DB와 연결하기 위한 미들웨어
- RPC : 프로시저 사용하여 마치 로컬 프로시저처럼 호출하는 방식
- MOM : 메시지 기반 비동기형 메시지 전달 방식
- TP-Monitor : 항공기, 철도 예약 등 온라인 트랜잭션 업무에서 트랜잭션 처리 및 감시 (턱시도)
- ORB : 객체 지향 미들웨어, 코바(CORBA) 표준 스펙 구현
- WAS : 웹서버와 달리 동적 콘텐츠를 처리하기 위함

 

 

 


 

 

 

2과목 : 소프트웨어 개발

 

✅ 스택
- 한쪽 끝으로 삽입, 삭제, LIFO
- TOP : 가장 마지막으로 삽입된 자료
- Bottom : 스택의 가장 밑바닥
- 꽉 찬 상태에서 삽입 시 오버플로, 없는 상태에서 삭제 시 언더플로 발생
 
✅ 큐
- 한쪽에서 삽입, 한쪽에서 삭제, FIFO
- Front : 가장 먼저 삽입된 자료 가리키는 포인터, 삭제 작업 시 사용
- Rear : 가장 마지막에 삽입된 자료 가리키는 포인터, 삽입 작업 시 사용
- 운영체제 작업 스케줄링에 사용

✅ 데크
- 삽입 삭제가 양쪽 끝에서 모두 일어남
- 입력 제한 데크 : 입력 한쪽, 출력 양쪽 (Scroll)
- 출력 제한 데크 : 입력 양쪽, 출력 한쪽 (Shelf)

✅ 그래프
- 그래프 G는 정점 V와 간선 E와의 두 집합
- 방향성에 따라 방향 그래프, 무방향 그래프
- 통신망, 교통망, 이항관계 등에 활용
- 트리는 사이클이 없는 그래프임
- 방향 그래프 간선 수 : n(n-1)
- 무방향 그래프 간선 수 : n(n-1)/2
- n은 정점 수임

✅ 삽입 정렬
- 1회전 : 첫번째 두번째 값 비교 후 5를 첫번째 삽입 후 8을 한칸 뒤로 이동
- 2회전 : 세번째 값을 첫번째, 두번째와 비교 후 6을 8자리에 삽입 후 8을 한칸 뒤로
- 평균과 최악 모두 O(n^2)

✅ 선택 정렬
- 1회전 : 첫번째 값부터 마지막 값 중 최소값을 찾아 첫번째 값과 자리 교환
- 2회전 : 두번째 값부터 마지막 값 중 최소값 찾아 두번째 값과 자리 교환
- 평균과 최악 모두 O(n^2)

✅ 버블 정렬
- 1회전 : 처음부터 끝까지 2개씩 비교하며 자리 교환
- 2회전 : 처음부터 끝까지 2개씩 비교하며 자리교환
- 평균과 최악 모두 O(n^2)
- 계속 정렬 여부는 플래그 비트로 결정

✅ 이분 검색
- 전체 파일을 두 개의 서브파일로 분리해 가면서 Key 레코드를 검색하는 방식
- 반드시 순서화된 파일만 검색 가능
- M = (F + L) / 2
- 1~100까지 숫자 중 15를 찾는 데 걸리는 횟수
- (1+100)/2 = 50.5 정수만 취급
- 50, 25, 12 (13~24에 있다 결론)
- (13+24)/2 = 18.5 (13~17에 있다 결론)
- (13+17)/2 = 15 (5회 비교)

✅ 인터페이스 구현 검증 도구
- STAF : 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
- xUnit : NUnit, JUnit 등 다양한 언어를 지원하는 단위테스트 프레임워크
- FitNesse : 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크
- NTAF : Naver의 테스트 자동화 프레임워크, FitNesse와 STAF 통합
- watir : Ruby를 사용하는 애플리케이션 테스트 프레임워크

✅ 워크스루(Walkthrough)
- 단순 테스트 케이스를 이용해 프로덕트를 수작업으로 수행해보는 것
- 워크스루를 발전시킨 것이 인스펙션, 소프트웨어 개발 단계에서 산출된 결과물 평가, 개선 방법 제시 등
- 복잡한 알고리즘 또는 반복, 실시간 동작, 병행 처리와 같은 기능이나 동작에 유용

✅ 리팩토링
- 소프트웨어를 보다 쉽게 이해할 수 있고 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작 변화 없이 내부 구조만 변경하는 것

✅ 파티션
- 물리데이터 저장소 설계 시 사용
- 범위 분할, 해시 분할, 조합 분할, 목록 분할, 라운드 로빈 등이 있음

✅ 이식성 (Portability)
- 소프트웨어 품질 목표 중 하나 이상의 하드웨어 환경에서 운용되기 위해 쉽게 수정될 수 있는 시스템 능력

✅ Pareto의 법칙
- 소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20%내에서 발견된다는 법칙

✅ 체크인 (Check-In)
- 버전 관리 항목 중 저장소에 새로운 버전의 파일로 갱신하는 것

✅ 소프트웨어 생명주기 V 모델
- Perry에 의해 제안, 세부 테스트 과정으로 구성괴어 신뢰도 높은 시스템 개발에 효과적
- 개발 작업과 검증 작업 사이 관계를 명확히 들어내놓은 폭포수 모델의 변형
- 폭포수 모델이 산출물 중심이라면 V 모델은 작업과 결과의 검증에 초점

 


✅ 블랙박스 테스트
- 소프트웨어가 수행할 특정 기능을 알리기 위해 각 기능이 완전히 작동되는 것을 입증하는 테스트, 기능 테스트
- 사용자의 요구사항 명세서를 보면서 테스트

✅ 블랙박스 테스트 유형  [2023 3회 실기]
- 경계값 분석(Boundary Value Analysis) : 입력 조건의 경계값 테스트
- 오류 예측(Error Guessing) : 과거 경험이나 확인자 감각으로 테스트
- 동등(동치) 분할 검사(Equivalence Partitioning) : 타당한 입력 자료, 타당하지 않은 자료 개수 균등하게 하고 맞는 결과 출력되는지 확인
- 비교 검사(Comparison Testing) : 여러 버전 프로그램에 동일한 자료 제공하여 동일한 결과 나오는지 확인
- 원인-효과 그래프(Cause-Effect Graphing) : 입출력 데이터 간의 관계와 출력에 미치는 영향 분석
‼️보기가 영어로만 나온 사례도 있으니 영문 이름도 암기 필수


✅ 화이트박스 테스트
- 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법
- 모듈 안의 작동을 직접 관찰할 수 있음

✅ 화이트박스 테스트 유형  [2024 3회 실기], [2023 2회 실기]
- 구문(문장) 검증 기준(Statement Coverage) : 모든 구문 한 번 이상 수행
- 결정(분기) 검증 기준(Decision (Branch) Coverage) : 모든 조건문에 대해 조건식의 결과가 트루 폴스인 경우 한 번 이상 수행
- 조건 검증 기준(Condition Coverage) : 조건문의 개별 조건식 결과가 트루 폴스인 경우 한 번 이상 수행
- 조건/결정 검증 기준(Condition/Decision Coverage) : 결정, 조건 모두 만족하는 설계, 트루, 폴스인 경우에 따라 입력 데이터 구분
- 변경 조건/결정 검증 기준(Modified Condition/Decision Coverage (MC/DC)) : 개별 조건식이 영향을 받지 않고 전체 조건식 결과에 독립적 영향
- 다중 조건 검증 기준(Multiple Condition Coverage) : 조건문에 포함된 모든 개별 조건식의 모든 조합 고려

‼️보기가 영어로만 나온 사례도 있으니 영문 이름도 암기 필수

 

테스트 케이스 : 사용자 요구사항을 정확히 준수했는지 확인하기 위한 테스트 명세서
구성 요소 : 식별자, 테스트 항목, 입력 명세, 출력 명세, 환경 설정, 특수 절차 요구, 의존성 기술

테스트 시나리오 : 테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스를 묶은 집합

 

테스트 오라클 : 테스트 결과가 올바른지 판단을 위해 참값 대입하여 비교

특징 : 제한된 검증, 수학적 기법, 자동화 기능

참 오라클 모든 테스트 케이스 입력값에 기대 결과 제공
샘플링 오라클 특정 테스트 케이스 입력값에 기대 결과 제공 
추정 오라클 특정 테스트 케이스 입력값에 기대 결과를 제공하고 나머지 입력값에 대해선 추정 결과 제공 (샘플링 오라클을 개선)
일관성 검사 오라클 테스트 케이스 수행 전후 결과값 동일한지 여부 확인

 


✅ 제어 흐름도에서 순환복잡도
- E : 화살표 수
- N : 노드 수
- V(G) = E - N + 2

 

✅ 빅오 표기법 

시간 복잡도 설명 예시 알고리즘 또는 연산
O(1) 입력값(n)과 관계없이 항상 일정한 단계만 거침 스택의 삽입(Push), 삭제(Pop)
O(log₂n) 문제 해결에 필요한 단계가 입력값(n)에 따라 점점 줄어듦 이진 트리(Binary Tree), 이진 검색(Binary Search)
O(n) 문제 해결 단계 수가 입력값(n)과 1:1 비례 관계 for문 반복문
O(n log₂n) 문제 해결 단계가 n × log₂n 만큼 수행됨 힙 정렬(Heap Sort), 2-Way 합병 정렬(Merge Sort)
O(n²) 단계 수가 입력값(n)의 제곱에 비례 삽입 정렬(Insertion Sort), 셸 정렬(Shell Sort), 선택 정렬(Selection Sort), 버블 정렬(Bubble Sort), 퀵 정렬(Quick Sort)
O(2ⁿ) 단계 수가 2의 입력값(n) 제곱에 비례 피보나치 수열(Fibonacci Sequence)

 

 


 

 

3과목 : 데이터베이스 구축

 

 

✅ 개념적 설계 특징

- 엔터티(Entity), 속성(Attribute), 관계(Relationship) 정의
- 업무 중심의 데이터 모델링
- 중복 최소화, 일관성 유지

 

✅ 논리적 설계 특징
- 목표 DBMS에 맞는 스키마 설계, 작성

- 뷰 정의

- 정규화

- 기본키/외래키 설정

 

✅ 물리적 설계 특징
- 저장 레코드 양식 설계
- 레코드 집중의 분석 및 설계
- 접근 경로 설계

- 인덱스 설계
 

✅ 병행제어 로킹 단위

- 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있음
- 로킹 단위가 작아지면 로킹 오버헤드 증가
- 한꺼번에 로킹할 수 있는 단위를 로킹 단위라함
- 로킹 단위가 작아지면 병행성 수준이 높아짐

✅ 종속
- X가 Y를 함수적으로 종속한다.
- Y는 X에 함수 종속이다.
- Y는 X에 의해 결정된다.
- X -> Y

✅ 범위 분할
- ‘월별, 분기별’과 같이 지정한 열의 값 기준으로 범위를 지정하여 분할하는 파티셔닝 방식

✅ 관계대수의 순수 관계 연산자
- Select
- Project
- Join
- Division
‼️ Cartesian Product는 일반 집합 연산자임
‼️관계 해석은 비절차적, 관계 대수는 절차적

 

 

✅ 데이터베이스 관련 용어   [2023 1회 실기]

(튜플)
  • 셀 수 있는 수량의 순서 있는 열거이다.
  • 어떤 요소의 집합, 혹은 테이블에서의 행을 가리키지만 일반적인 집합과는 달리 중복이 허용될 수 있다.
  • 리스트와 동일하게 여러 객체를 모아서 담으며, 숫자, 문자, 객체, 배열, 튜플 안의 튜플 전부 가능하다.
(릴레이션 인스턴스)
  • 어느 한 시점에 릴레이션의 내용(상태), 즉 저장된 데이터 전체를 의미한다.
  • 단순히 릴레이션 또는 릴레이션 외연(Relation Extension)라고도 한다.
(카디널리티)
  • 특정 데이터 집합의 유니크(Unique)한 값의 개수이다.
  • 전체 행에 대한 특정 컬럼의 중복 수치를 나타내는 지표이다.

 

 

 

3단계 스키마 구조의 특징  [2023 1회 실기]

구분 설명 대상 관점 주요 특징
외부 스키마 사용자나 응용프로그램이 데이터베이스를 보는 관점 (사용자 뷰) 사용자(User) - 사용자가 필요로 하는 데이터만 보여줌
- 보안 및 접근 제어에 활용
- 하나의 DB에 여러 외부 스키마 가능
개념 스키마 전체 데이터베이스 구조를 정의한 스키마 (논리적 관점) 설계자(DBA) - 데이터 간 관계, 제약조건 정의
- 중복 최소화, 통합적 설계
- 모든 사용자 공통 뷰
내부 스키마 데이터가 실제로 저장되는 물리적 구조에 대한 정의 (물리적 관점) 시스템(DBMS) - 저장 방법, 인덱스, 압축 등 물리적 구조 정의
- 성능 및 저장 최적화 담당

 

 

관계형 데이터베이스의 조인  [2024 1회 실기]

- 세타 조인 : 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 조건을 만족하는 튜플만 반환한다.

- 동등 조인 : 조건이 정확하게 '=' 등호로 일치하는 결과를 반환한다. 

- 자연 조인 : 동등조인에서 조인에 참여한 속성이 두 번 나오지 않도록 중복된 속성을 제거한 결과를 반환한다.

 

 

 

 

 


 

 

 

4과목 : 프로그래밍 언어 활용

 

✅ 파이썬
- a=k.split()
- b=a[1:3:5]
- a에서 인덱스 1부터 3-1까지 5마다 출력
 

✅ 시프트 연산

종류 코드 연산
왼쪽 시프트 (곱셈 효과) a << n a * (2^n)
오른쪽 시프트 (나눗셈 효과) a >> n a / (2^n)

 

 

연산자 우선 순위

우선 순위 연산자 설명 결합 방향
1 () [] -> . 함수 호출, 배열, 구조체 멤버 접근 왼쪽 → 오른쪽
2 ++ -- + - ! ~ * & (type) sizeof 단항 연산자, 형변환, 크기 계산 오른쪽 → 왼쪽
3 * / % 곱셈, 나눗셈, 나머지 왼쪽 → 오른쪽
4 + - 덧셈, 뺄셈 왼쪽 → 오른쪽
5 << >> 시프트 연산자 왼쪽 → 오른쪽
6 < <= > >= 관계 연산자 왼쪽 → 오른쪽
7 == != 동등 비교 왼쪽 → 오른쪽
8 & 비트 AND 왼쪽 → 오른쪽
9 ^ 비트 XOR 왼쪽 → 오른쪽
10 | 비트 OR 왼쪽 → 오른쪽
11 && 논리 AND 왼쪽 → 오른쪽
12 || 논리 OR 왼쪽 → 오른쪽
13 ?: 삼항 조건 연산자 오른쪽 → 왼쪽
14 = += -= *= /= %= <<= >>= &= ^= ` =` 대입 및 복합 대입
15 , 쉼표 연산자 왼쪽 → 오른쪽

 


✅ 선점 스케줄링
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용 가능
- 강제로 CPU를 빼앗아 사용할 수 있으므로 과부하 많이 발생
- 시분할 시스템에 용이

✅ 비선점 스케줄링
- 응답시간의 예측이 용이
- 일괄 처리 시스템에 용이

✅ C에서 malloc() 함수
- 원하는 시점에 원하는 만큼 메모리 동적 할당
- 사용자가 입력한 Byte만큼 메모리 할당
- free 명령어로 할당된 메모리 해제
- 메모리 할당이 불가능할 경우 NULL 반환

✅ 오류 제어에 사용되는
자동 반복 요청 방식(ARQ)
- Stop-and-wait ARQ (정지-대기)
- Go-Back-N ARO
- Selective-Repeat ARQ (선택적 재전송)
- Adaptive ARQ (적응적)

✅ TCP 헤더
- 순서 번호(시퀀스 넘버)는 전달하는 바이트마다 번호가 부여됨
- 수신 번호 확인(어크놀리지먼트 넘버)은 상대편 호스트에서 받으려는 바이트의 번호 정의
- 체크섬은 데이터를 포함한 세그먼트의 오류 검사
- 윈도우 최대 크기는 65,535byte

✅ ARP
- TCP/IP에서 사용되는 논리 주소를 물리 주소로 변환시켜주는 프로토콜
- IP → MAC

 

✅ RARP

- MAC → IP


✅ FTP
- 컴퓨터와 컴퓨터 또는 컴퓨터와 인터넷 사이에서 파일을 주고받을 수 있도록 하는 원격 파일 전송 프로토콜

 

ICMP  [2023 1회 실기]

- TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.

- 보통 다른 호스트나 게이트웨이 와 연결된 네트웍에 문제가 있는지 확인하기 위한 목적으로 주로 사용된다.

- ( ICMP ) 를 이용한 공격에는 (    ) Flooding가 있는데 ping 명령어를 통한 (     ) 패킷을 연속적으로 계속 보내어 서버의 요청에 응답으로 인한 다른작업을 하지 못하도록 하는 공격이다.

 

SSH (Secure SHell)   [2023 1회 실기]

- 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 그 프로토콜을 가리킨다.

- (  SSH  )  보안 접속을 통한 rsh, rcp, rlogin, rexec, telnet, ftp 등을 제공하며, IP spoofing (IP스푸핑, 아이피 위/변조 기법중 하나)을 방지하기 위한 기능을 제공한다.

- 기본적으로 포트는 22번이다.

 


 

 

5과목 : 정보시스템 구축관리

 

✅ 암호화 기법  [2024 2회 실기]
- AES(대칭 키 암호화) : 같은 키로 암복호화, 실제 서비스에서 자주 사용, DES를 대체하기 위해 사용
- DES(대칭) : 현재 잘 안씀, 취약하여 브루트포스로 깨짐
- RSA(비대칭) : 공개키 암호화, 암호화보단 주로 키 교환이나 서명에 쓰임
‼️SHA는 암호화 기법이 아니라 데이터 무결성 검증 해시 함수임
  
✅ Sesstion Hijacking 세션 하이재킹
- 다른 사람의 세션 또는 터미널의 상태를 도용하는 해킹 기법

✅ 소유자 기반 인증
- 마그네틱 카드
- 신분증
- OTP
‼️지문은 생체 기반 인증임

✅ 스토리지 시스템 DAS (Direct Attached Storage)
- 하드디스크와 같은 데이터 저장장치를 호스트버스 어댑터에 직접 연결하는 방식
- 저장장치와 호스트 기기 사이에 네트워크 디바이스 없이 직접 연결하는 방식으로 구성

✅ MapReduce
- 대용량 데이터 분산 처리를 위해 개발된 프로그래밍 모델
- 구글에 의해 만들어진 기술, 대표적 대용량 처리를 위한 병렬 처리 기법 제공
- 임의의 순서로 정렬된 데이터를 분산 처리하고 이를 다시 합치는 과정

✅ LOC기법, 소요되는 개발 예상 기간
- 라인 수 : 36000
- 프로그래머 : 6명
- 프로그래머 평균 생산성 : 월 300라인
- 월간 생산성은 300 x 6 = 1800
- 36000 / 1800 = 20(개월)

✅ 디지털 트윈
- 물리적 사물과 컴퓨터에 동일하게 표현되는 가상 모델
- 실제 물리적 자산 대신 소프트웨어로 가상화함으로써 실제 자산의 특성에 대한 정확한 정보 얻을 수 있음
- 자산 최적화, 돌발사고 최소화, 생산성 증가

✅ 암호화 알고리즘
- ECC : 이산 대수 문제를 타원곡선으로 옮겨 기밀성과 효율성을 높인 암호화 알고리즘
- Rabin : 소인수 분해의 어려움에 안정성의 근거를 둔 암호화 알고리즘

✅ 프로젝트 관리를 위한 3P
- People : 프로젝트 관리에서 가장 기본이 되는 인적 자원
- Problem : 사용자 입장에서 문제를 분석하여 인식
- Process : 소프트웨어 개발에 필요한 전체적인 작업 계획 및 구조

✅ 악성코드 유형   [2023 1회 실기]
웜 : 네트워크로 연속적으로 자신 복제
- 로그웨어 : 사용자를 속여 악성코드 설치 유도
- 애드웨어 : 소프트웨어 자체에 광고 포함
- 반사 공격 : 송신자가 생성한 메시지를 가로채 접근 권한 얻음

- 트로이 목마 : 정상적인 프로그램으로 가장해 사용자가 직접 컴퓨터에 설치하도록 위장, 백도어를 만들어 공격자가 침입할 수 있도록 만들거나 시스템을 파괴

- 바이러스 : 대상(정상파일)을 감염시키는 형태로 실행되며, 감염시킬 대상이 존재하지 않을 때에는 실행되지 않으며 다른정상파일로의 자기 복제 기능

✅ 허니팟 (Honeypot)
- 침입자를 속여 실제 공격당하는 것처럼 보여줌
- 1990년대 데이비드 클락이 처음 제안

'CS' 카테고리의 다른 글

REST API와 RPC API 차이  (1) 2025.05.09