2020년 03회 기출 리뷰 (2020.08.22)
2. 소프트웨어 취약점
FTP 바운스 공격
- FTP 프로토콜 구조의 허점을 이용한 공격
SQL 삽입
- SQL의 논리적 에러를 이용한 공격
버퍼 오버플로
- 메모리를 다루는 데 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점
디렉토리 접근공격
- 웹 루트 디렉토리 외부에 저장된 파일 또는 디렉토리에 접근하는 공격방법
4. IPv6
- 128비트 주소를 사용하여 주소부족 문제 해결
- 인증성 기밀성 데이터 무결성 지원으로 보안 문제 해결
- 확장성 융통성 연동성이 뛰어나며 시릿간 흐름 제어로 향상된 멀티 미디어 기능 지원
- 16비트 씩 8부분 총 128비트로 구성
- 유니캐스트(unicast) 멀티캐스트(multicast) 애니캐스트(anycast) 세 가지 주소 체계 보유
5. 모듈 설계법
- 결합도는 줄이고 응집도는 높임 (모듈의 독립성 높임)
- 모듈의 제어 영역 안에서 그 모듈 영향 영역을 유지
- 복잡도와 중복성 줄이고 일관성 유지
- 모듈의 기능 예측 가능, 지나치게 제한적 X
- 유지보수 용이해야 함
- 모듈의 크기는 시스템 전반적인 기능과 구조 이해를 위해 쉬운 크기로 분해
- 하나의 입구와 하나의 출구 존재
- 전반적인 처리 논리구조에 영향을 끼치지 않도록 모듈 인터페이스를 설계
6. HRN 방식 스케줄링
HRN 방식의 우선순위 산정 공식
(대기시간 + 서비스 시간) / 서비스 시간
값이 클 수록 우선순위가 높다.
위의 예제의 경우엔
A. (5 + 20) / 20 = 25 / 20 = 1.25
B. (40 + 20) / 20 = 60 / 20 = 3
C. (15 + 45) / 45 = 60 / 45 = 12/9 = 4/3 = 1.3333...
D. (20 + 2) / 2 = 22 / 2 = 11
우선순위가 D > B > C > A
7. 운영체제
- 다중 사용자와 다중 응용프로그램 환경에서 자원의 상태 파악 및 자원의 분배 스케줄링
- CPU, 메모리 공간, 기억 장치, 입출력 장치 등 자원 관리
- 입출력 장치와 사용자 프로그램 제어
8. 배치 프로그램의 필수요소
자동화 : 심각한 오류 상황 외에는 사용자 개입 없이 동작
안정성 : 어떤 문제가 생겼는지, 언제 발생했는지 등 추적 할 수 있어야 함
견고함 : 유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않아야 한다.
성능 : 주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션 방해 X
대용량 데이터는 대용량 데이터 처리 가능
9. TCP 프로토콜
- 신뢰성이 있는 연결 지향형 전달 서비스
- 스크림 전송 기능 제공
- 순서제어, 오류제어, 흐름제어 기능 제공
- 기본 헤더 크기는 최소 20byte 최대 60byte (Option 값 포함 시 40byte 추가)
10. 응집도
응집도가 강한게 좋다.
응집도 강함 <-> 응집도 약함
순서 : 기능적 -> 순차적 -> 교환적 -> 절차적 -> 시간적 -> 논리적 -> 우연적
기능적 : 모든 기능 요소가 단일 문제와 연관되어 수행될 경우
순차적 : 활동을 통해 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용하는 경우
교환적 : 동일 입출력 사용 시 서로 다른 기능을 수행하는 구성요소가 모였을 경우
절차적 : 모듈이 다수의 관련기능을 가질 때 모듈안의 구성요소들이 그 기능을 순차적으로 수행할 경우
시간적 : 특정 시간에 처리되는 몇 개의 기능을 모아 모듈로 구성
논리적 : 유사 성격이나 특정 형태로 분리되는 처리 요소들로 모듈 형성
우연적 : 서로 관련없는 요소로만 구성
11. OSI 7 계층 설명
물리 : 전송에 필요한 장치 간 실제 접속
데이터링크 : 흐름제어, 오류제어, 동기화기능, 순서제어 기능
세션 : 대화제어, 수신상태 체크
응용 : 사용자가 OSI 환경에 접근 가능하도록 서비스 제공
12. 결합도(coupling)
결합도가 낮은게 좋다.
결합도 순서
결합도 약 <-> 강
Data -> Stamp -> Control -> External -> Common -> Content
자료 -> 스탬프 -> 제어 -> 외부 -> 공통 - -> 내용
Data Coupling( = 자료 결합도 ) : 자료요소로만 구성 / 처리값을 다시 돌려줌
Stamp Coupling( = 스탬프 결합도 ) : 모듈 간 자료구조 전달될 때 변화가 생기면 그것을 조회하는 모든 모듈에 영향을 미침
Control Coupling( = 제어 결합도 ) : 제어신호 이동 / 권리 전도 현상
Commom Coupling( = 공통 결합도 ) : 공유되는 데이터 영역을 여러 모듈이 사용 / 수정 시 모든 모듈에 영향
13. 메모리 관리 기법
Worst fit(최악 적합)
- 들어갈 수 있는 영역 중 자원 낭비가 가장 심한 영역에 들어가는 법
first fit(최초 적합)
- 들어갈 수 있는 공간 중 가장 빠른(앞선) 영역에 들어가는 것
best fit(최적 적합)
- 들어갈 수 있는 영역 중 가장 자원낭비가 덜 한 곳에 들어가는 것
14. 네트워크
서브넷 마스크 (AND 연산)
e.g.
200.1.1.0/24 네트워크를 FLSM 방식을 이용하여 10개의 Subnet으로 나누고 ip subnet-zero를 적용했다. 이때 서브네팅된 네트워크 중 10번째 네트워크의 broadcast IP주소는?
네트워크 ID 200.1.1.0
/24 => subnet mask 개수
11111111 11111111 11111111 00000000
=> 255.255.255.0
subnet 개수 10개 => 2^4
200.1.1.0000 0000 0000 / 0000 (2^4 지수가 4개이므로 4개 양보)
호스트 수 16 (2^4)
0 ~ 15
16 ~ 31
32 ~ 47
... 10번째
200.1.1.159
15. 파이썬 문자열 추출 슬라이스
string[:] = 처음부터 끝까지
string[start:] = start offset부터 끝까지
string[:end] 처음부터 end-1 오프셋까지
string[start : end] start오프셋부터 end-1오프셋까지
string[start : end : step] step만큼 문자를 건너뜀
e.g. string[-3:] 하면 마지막 3글자부터 끝까지 추출하게 된다.
16. 변수 명명 규칙
첫 자리에 숫자 사용X
대/소, 숫자, 밑줄 사용 가능
변수 이름 중간에 공백 사용 X
예약어 사용 X