552. 관계 대수
- 관계 데이터 언어
- 관계 데이터베이스의 릴레이션을 조작하기 위한 기본 연산에 관계대수와 관계해석이 있음
- 사용자의 입장에서 데이터를 처리하는 데이터 언어가 됨
- 관계대수는 절차적 언어, 관계해석은 비절차적 언어
- 관계 대수
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어
- 릴레이션을 처리하기 위해 연산자와 연산 규칙을 제공하는 언어
- 피연산자가 릴레이션, 결과도 릴레이션
- 관계 대수의 연산자
- 관계 대수의 순수 관계 연산자
- Select
- 연산자 기호 : 시그마( σ)
- 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션 생성
- 릴레이션의 행에 해당하는 튜플을 구하는 것 (수평 연산)
- Project
- 연산자 기호 : 파이(𝝿)
- 주어진 릴레이션에서 속성 리스트에서 제시된 속성만 추출하는 연산
- 릴레이션의 열에 해당하는 속성을 추출하는 것 (수직 연산)
- Join
- 연산자 기호 : ⋈
- 공통 속성을 중심으로 두 개 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산
- Division
- 연산자 기호 : ÷
- X ⊃ Y인 두 개의 릴레이션 R(X)와 S(Y) 가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
- Select
- 관계 대수의 일반 집합 연산자
- 합집합 (UNION)
- 연산자 기호 : ⋃
- 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플 제거
- 교집합 (INTERSECTION)
- 연산자 기호 : ⋂
- 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
- 차집합 (DIFERENCE)
- 연산자 기호 : −
- 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
- 교차곱 (CARTESIAN PRODUCT)
- 연산자 기호 : ⨉
- 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
- 합집합 (UNION)
- 관계 대수의 순수 관계 연산자
- 관계 해석
- 코드 박사가 제안한 것
- 수학의 술어해석에 기반을 두고 있으며 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특징을 갖고 있음
- SQL문과 같은 질의어를 사용하며 튜플 관계해석과 도메인 관계해석으로 구성
- 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어
554. SQL의 유형
- 데이터 질의어 (DQL)
- 데이터베이스에 저장된 데이터를 검색하는데 사용하는 질의어
- 명령어 : SELECT
- 데이터 조작어 (DML)
- 데이터베이스에 저장된 데이터를 수정, 삭제, 추가하는 명령어
- 명령어 : INSERT, UPDATE, DELETE
- 데이터 정의어 (DDL)
- 데이터베이스 객체를 생성하고 수정, 삭제하는 명령어
- 데이터베이스의 스키마를 정의, 스키마에 대한 명세는 시스템 카탈로그에 저장
- 명령어 : CREATE, ALTER, DROP
- 데이터 제어어 (DCL)
- 데이터베이스의 규정이나 기법을 정의하고 제어하는 언어
- 사용자 권한 부여/취소, 트랜잭션 제어
- 명령어 : GRANT, REVOKE, COMMIT, ROLLBACK
555. 정규화
- 정규화의 개념
- 관계형 데이터베이스 설계 시 중복을 최소화하도록 데이터를 구조화하는 프로세스
- 제대로 조직되지 않은 테이블과 관계들을 작고 잘 조직된 테이블과 관계들로 나누는 무손실 분해를 포함
- 정규화의 목적
- 하나의 테이블에서의 데이터 삽입, 삭제, 변경이 정의된 관계들로 인하여 데이터베이스의 나머지 부분들로 전파되게 하는 것
- 어떤 관계라도 데이터베이스 내에서 표현이 가능하도록 만드는 것
- 관계에서 바람직하지 않은 삽입, 삭제, 갱신 이상이 발생하지 않도록 하는 것
- 새로운 형태의 데이터가 삽입될 때 관계를 재구성할 필요성을 줄임
- 보다 간단한 관계 연산에 기초하여 검색을 보다 효율적으로 함
- 정규화의 원칙
- 무손실 표현 : 같은 의미의 정보를 유지하면서 더 바람직한 구조를 만듦
- 자료의 중복성 감소 : 중복되는 정보는 삭제하거나 통합
- 분리의 원칙 : 독립적인 관계는 별개의 릴레이션으로 표현, 릴레이션 각각에 대해 독립적 조작이 가능
557. SQL의 논리 연산자
- AND : 두 가지 조건식을 만족해야 하는 연산자
- OR : 둘 중에 하나만 만족해도 되는 연산자
- NOT : 대상과 일치하지 않는 데이터 조회 연산자
560. 함수 종속
- 함수 종속
- 속성 간 의존 관계, 릴레이션 R에서 속성 X가 속성 Y를 결정짓는 관계
- X → Y 로 표기 : Y는 X에 종속된다 (X 결정자, Y 종속자)
- 암스트롱의 추론 규칙 : 릴레이션 속성간의 함수적 종속성을 유도해낼 수 있는 추론 규칙
- 기본 규칙
- 반사규칙 : X ⊇ Y 이면 X → Y
- 증가규칙 : X → Y 이면 XZ → YZ
- 이행규칙 : X → Y and Y → Z 이면, X → Z
- 유도 규칙
- 결합규칙 : X → Y and X → Z이면, X → YZ
- 분해규칙 : X → YZ이면 X → Y and X → Z
- 의사이행규칙 : X → Y and WY → Z이면 WX → Z
- 기본 규칙
561. 응집도
- 응집도의 개념 : 모듈 내부의 구성 요소 간 관계의 밀접 정도로 평가, 응집도가 높을수록 필요한 요소들로 구성되어 지고 낮을수록 요소들 간의 관련성이 적은 요소들로 구성됨
- 응집도의 유형 : 가장 높은 품질 - 기능적 응집도, 가장 낮은 품질 - 우연적 응집도
- 기능적 응집도 (Functional Cohesion) : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행
- 순차적 응집도 (Sequential Cohesion) : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용하는 경우
- 통신적 응집도 (Communication Cohesion) : 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우
- 절차적 응집도 (Procedural Cohesion) : 모듈이 다수의 관련 기능을 가질 때, 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행하는 경
- 시간적 응집도 (Temporal Cohesion) : 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리하는 경우
- 논리적 응집도 (Logical Cohesion) : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
- 우연적 응집도 (Coincidential Cohesion) : 모듈 내부의 각 구성 요소들이 연관이 없는 경우
566. 논리연산자
- 논리 연산자 : 참과 거짓을 결정하는 연산자
- && : 주어진 논리식이 모두 참이면 1을 반환 - 논리 AND 연산
- || : 주어진 논리식 중에서 하나라도 참이면 1을 반환 - 논리 OR 연산
- ! : 논리식의 결과가 참이면 0을, 거짓이면 1을 반환 - 논리 NOT 연산
- 문제풀이
#include <stdio.h>
int main(void) {
int a = 3, b = 4, c = 2;
int r1, r2, r3;
r1 = b <= 4 || c == 2;
r2 = (a > 0) && (b < 5);
printf("%d", r1+r2+r3);
return 0;
}
r1 = b <= 4 || c == 2; | 4 <= 4와 2== 2식 모두 참이므로 r1의 값은 1 |
r2 = (a > 0) && (b < 5); | (3 > 0)과 (4 < 5)식 모두 참이므로 r2의 값은 1 |
printf("%d", r1+r2+r3); | 1 + 1 + 0 = 2 이므로 정수 2를 출력 |
567. 자바의 연산자 우선순위
- 우선 순위 높은 순
- ( ), [ ] : 괄호, 대괄호
- !, ~, ++, -- : 부정, 증감 산술 연산자
- *, /, % : 곱셈, 나눗셈 산술 연산자
- +, - : 덧셈, 뺄셈 산술 연산자
- <<, >>, >>> : 시프트 연산자
- <, <=, >, >=, ==, != : 관계 연산자
- &, ^, |, &&, || : 논리 연산자
- ?: : 삼항 연산자
- =, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, ~= : 대입 연산자
- 우선 순위 낮은 순
569. CIDR 표기 및 FLSM 사례
- 192. 168. 1. 1. 0/24의 의미는 서브넷마스크가 255.255.255.0
- 8비트 크기의 앞쪽 3개 필드를 합치면 24개 비트가 됨 -> CIDR로 표시하면 /24를 붙임
- /24의 의미는 현재의 IP에서 앞의 24비트는 Net ID로 사용하고 뒤의 8비트 Host ID로 사용 중임을 의미하므로 서브넷 마스크는 255.255.255.0이 됨
- 192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 4개의 subnet을 나눈다고 하면, FLSM은 Fixed-Length Subnet Masking의 약자로서 동일한 크기로 현재의 네트워크를 나눈다는 의미
- 서브넷 대역에서 호스트들이 사용 가능한 IP 주소 중 제일 첫 IP 주소는 네트워크 주소, 제일 마지막 IP 주소는 브로드캐스트 주소로 할당, 나머지 IP들은 호스트에 할당
- /24의 네트워크를 4개로 나누려면 뒤에 있는 8개 비트인 Host ID에서 2개의 비트를 빌려 와서 2^2인 4개 대역으로 나눌 수 있음
- 2개의 비트만 빌려 오면 2^2인 4개가 서브네팅 가능한 최대 개수
- 2개의 비트를 Net ID로 가져온 경우 이를 CIDR로 표시하면 192.168.1.0/26
- Net ID 개수가 총 26개(24+2)라는 의미
- 서브넷 마스크는 255.255.255.192이 됨
- 192는 마지막 8개 비트에서 Net ID로 할당한 2개를 1로 세팅한 후 10진수로 표현하면 11000000이 192이 됨
- IP를 4개로 서브네팅하면 호스트가 할당 가능한 IP는 다음과 같음
- 서브넷 마스크가 255.255.255.0이면 할당 가능한 총 Host ID는 2^8이므로 256개
- 4개로 동일 크기로 서브네팅하면 각 영역은 64개의 호스트 IP를 할당할 수 있으며, 각 IP 영역별 첫 IP는 네트워크 주소이고, 마지막 IP 주소는 브로드 캐스트 주소가 됨
- 첫번째 대역 : 192.168.1.0 ~ 192.168.1.63
- 두번째 대역 : 192.168.1.64 ~ 192.168.1.127
- 세번째 대역 : 192.168.1.128 ~ 192.168.1.191
- 네번째 대역 : 192.168.1.192 ~ 192.168.1.255
570. IP 주소
- IP 주소 체계
- 인터넷에 연결된 모든 컴퓨터를 네트워크상에 구별하는 고유의 논리적인 주소체계
- IP version 4는 8 bit 크기의 필드 네 개를 모아서 구성한 32bit(4bytes) 논리 주소로 구성되어 있음
- IP 주소 구조
- 클래스 타입
- IP 주소를 효율적으로 배정
- A, B, C, D, E 클래스
- A 클래스
- 네트워크 주소로 8비트, 호스트 주소로 24비트를 사용
- 0.0.0.0 ~ 127.255.255.255 (0.0.0.0과 127.x.x.x은 사용하지 않음)
- 실제로 사용하는 주소는 1 ~ 126까지로, 1.0.0.0 ~ 126.255.255.255
- 대형 기관 및 기업에서 사용
- B 클래스
- 네트워크 주소에 16비트, 호스트 주소에 16비트를 배정
- IP 주소의 시작이 128~191로 시작하고, 기본 네트워크 마스크는 255.255.0.0
- 네트워크 주소는 128.0.0.0 ~ 191.255.0.0까지고, 호스트 주소는 2바티으로 호스트 65,534개를 구성
- 중형 기관 및 기업에서 사용
- C 클래스
- 호스트 배정에 총 8비트를 사용할 수 있으므로 호스트를 최대 254개 사용
- IP 주소의 시작이 192 ~ 223으로 시작
- 기본 서브넷 마스크는 255.255.255.0
- 네트워크 주소는 192.0.0.0 ~ 223.255.255.0까지
- 호스트 주소는 254개 사용
- 소규모 기관 사용
- D : 멀티 캐스트, E : 예비용
- D 클래스는 Net id와 Host id가 없음
- A 클래스
- 네트워크 주소 (Net ID)
- 전체 네트워크를 좀 더 작은 네트워크로 분할하여 각 호스트가 속한 네트워크를 대표
- 8bit, 16bit, 24bit
- 호스트 주소 (Host ID)
- 네트워크 주소로 표현하는 네트워크 내부에서 각 호스트의 주소를 표현하는 역할
- 전체 32bit에서 네트워크 주소를 제외한 나머지에 해당
- 클래스 타입
571. 주소 연산자 &, 역참조 연산자 *
- 주소 연산자 & : 변수의 주소
- 역참조 연산자 * : 포인터가 가리키고 있는 주소의 데이터를 반환
- 문제풀이
#include <stdio.h>
int main(void) {
int n = 4;
int* pt = NULL;
pt = &n;
printf("%d", &n + *pt - *&pt + n);
return 0;
}
int n = 4; | n에 4 지정 |
int* ot = NULL; | pt 포인터를 NULL로 초기화 |
pt = &n; | 변수 n의 주소를 pt에 지정 |
printf("%d", &n + *pt - *&pt + n); | &n + *pt - *&pt + n 결과를 출력 |
573. while 문
- while문을 수행하면서 변화하는 배열 객체
- 문제풀이
public class ovr {
public static void main(String [] arge) {
int arr[];
int i = 0;
arr = new int[10];
arr[0] = 0;
arr[1] = 1;
while(i<8) {
arr[i+2] = arr[i+1] + arr[i];
i++;
}
System.out.printIn(arr[9]);
}
}
int arr[]; int i = 0; |
배열 변수 arr을 선언 변수 i를 선언과 동시에 0으로 초기화 |
arr = new int[10]; | arr 배열의 크기를 10개로 초기화 |
arr[0] = 0; arr[1] = 1; |
arr 배열 0번째 자리에 0을 입력 arr 배열 0번째 자리에 1을 입력 |
while(i<8) { arr[i+2] = arr[i+1] + arr[i]; i++; } |
i의 값이 8이 될 때까지 while 문 반복 수행 i는 0이므로, 최초 arr[2] = arr[1]+arr[0] 수행되므로 arr[2]의 값은 1이 되고, 이후 i++ 문장에 의해 i가 0에서 1로 증가되어 다음 while문 반복 |
System.out.printIn(arr[9]); | arr[9] 저장된 값을 출력 |
574. 프로세스와 스레드
- 프로그램은 파일 형태로 저장하여 관리되다가 실행을 시키면 동작을 함, 이때 실행 중인 프로그램을 프로세스라고 함
- 한 개의 프로세스는 여러 개의 스레드로 나누어 수행될 수 있음
- 스레드는 다중 프로그래밍 시스템에서 CPU를 받아서 수행되는 프로그램 단위
- 스레드는 프로세스나 태스크보다 더 작은 단위, 실행 환경을 공유시켜 기억 장소의 낭비가 줄어듦
577. 모듈화
- 모듈화의 개념
- 프로그램 구성 요소의 일부로 관련된 데이터와 함수들이 묶어서 모듈을 만듦
- 주로 파일 단위로 구성
- 모듈화의 원리
- 분할과 지배 (Divide & Conquer) : 복잡한 문제를 분해, 모듈 단위로 문제를 해결
- 정보 은닉 (Information hiding) : 어렵거나 변경 가능성이 있는 모듈을 타 모듈로부터 은닉
- 자료 추상화 (Data Abstraction) : 각 모듈 자료 구조를 액세스하고 수정하는 함수 내에 자료 구조의 표현 내역을 은닉
- 모듈의 독립성 (Module Independence) : 독립성이 강함 모듈은 낮은 결합도와 높은 응집도의 특징
- 모듈화 측정 척도
- 공통모듈의 구현을 위해 재사용성 강화를 위한 중요한 개념
- 모듈은 내부 처리 요소 간 독립성을 나타냄
- 응집도가 높을수록 좋고 모듈 간 연관성은 약결합이 가능하도록 결합도는 낮을수록 좋음
578. 메모리 관리정책
- 반입 정책 (Fetch)
- 요구반입 : 실행 중 프로그램이 타 프로그램 및 데이터 참조 요구 시 적재
- 예상반입 : 실행 중 프로그램에 참조될 프로그램 및 데이터 예상 적재
- 배치 정책 (Placement)
- 최초 적합 (First Fit) : 프로그램, 데이터가 들어갈 수 있는 빈 영역의 첫 번째 분할 영역에 배치
- 최적 적합 (Best Fit) : 프로그램, 데이터가 들어갈 수 있는 빈 영역 중 단편화를 가장 적게 남기는 분할 영역에 배치
- 최악 적합 (Worst Fit) : 프로그램, 데이터가 들어갈 수 있는 빈 영역 중 가장 큰 영역에 배치
- 교체 정책( Replacement)
- OPT
- 추후 가장 오랫동안 사용하지 않을 페이지 교체
- 호출 순서 및 참조 상황 사전 예측 필요
- FIFO
- 적재시간 기억, 오래된 페이지 교체
- 이해성, 프로그래밍 간단, Belady's 이상 현상 발생
- LRU
- 최근 가장 오랫동안 미사용한 페이지 교체
- 계수기, 스택 사용
- LFU
- 사용페이지 빈도수가 가장 적은 페이지 교체
- 프고르매 실행 초기 많이 사용된 페이지 유리
- NUR
- 최근에 사용하지 않은 페이지 교체
- 참조 비트, 변형 비트 2개의 비트 사용
- OPT
579. C언어의 변수 선언 규칙
- 영문과 숫자를 혼용 가능하되 첫 선언은 영문자
- 대문자, 소문자를 구분
- 변수 제일 앞이나 중간에 _를 사용
- while, for, else 등 C 라이브러리에서 미리 선언된 예약어는 변수 사용을 못함
580. 파일 디스크립터
- 파일 관리를 위해 시스템이 필요로 하는 정보
- 파일마다 독립적으로 존재하며, 시스템에 따라 다른 구조
- 대개 보조기억장치에 저장되어 있다가 해당 파일이 오픈될 때 주기억장치로 이동
- 파일을 관리하기 위해 시스템(운영 체제)이 필요로 하는 파일에 대한 정보를 갖고 있는 제어 블록 (FCB)
581. 침입탐지 시스템
- 침입탐지 시스템 개념
- 비인가된 사용자가 자원의 무결성, 기밀성, 가용성을 저해하는 일련의 행동들과 보안 정책을 위반하는 행위
- 침입을 실시간으로 탐지하며, 차단가지 하는 시스템은 IPS
- 침입탐지 시스템 유형
- 구성 형태
- NIDS (네트워크 기반) : 독립적으로 네트워크에서 실행되어 운영 서버의 성능 저하가 없음
- HIDS (호스트 기반) : 서버에 직접 설치됨에 따라 네트워크 환경과는 무관한 장점, 개별 서버에 설치되므로 다소의 서버 부하 존재
- 공격 패턴 인지 모델
- 오용 탐지 기법 : 특정 공격에 관한 기존의 축적된 지식을 바탕으로 패턴을 설정하고 이 패턴과 축약 가공된 데이터를 비교하여 일치하는 경우 불법 침입으로 간주하는 방법
- 이상 탐지 기법 : 사용자의 행동 패턴을 분석한 후 정상적인 사용 패턴과 비교해 이상(예외적인) 패턴을 발견하면 침입으로 간주
- 구성 형태
582. 접근통제
- 접근통제 개념
- 보안 정책에 따라 접근 객체(시스템 자원, 통신 자원 등)에 대한 접근 주체(사용자, 프로세스 등)의 접근 권한 확인 및 이를 기반으로 한 접근 제어를 통해 자원에 대한 비인가된 사용을 방지하는 기능
- 접근통제 정책의 유형
- 임의 접근 통제 (DAC)
- 시스템 객체에 대한 접근을 사용자 개인 또는 그룹의 식별자를 기반으로 제한하는 방법
- 주체와 객체의 신분 및 임의적 접근 통제 규칙에 기초하여 객체에 대한 주체의 접근을 통제하는 기능
- 통제 권한이 주체에게 있음
- 주체와 임의적으로 접근통제 권한을 배분하여 제어할 수 있음
- 강제 접근 통제 (MAC)
- 정보시스템 내에서 어떤 주체가 특정 객체에 접근하려 할 때 양쪽의 보안 레이블에 기초하여 높은 보안 수준을 요구하는 정보가 낮은 보안 수준의 주체에 노출되지 않도록 접근을 제한하는 통제 방법
- 통제 권한이 제3자에게 있음
- 주체는 접근 통제 권한과 무관
- 역할기반 접근 통제 (RBAC)
- 사용자가 주어진 역할에 대한 접근 권한을 부여받는 방식
- 사용자가 바뀌어도 역할에는 변함없음
- DB 작업 권한 통제
- 운영체제 작업 권한 통제
- 임의 접근 통제 (DAC)
584. 파스-타(PaaS-TA)
- 해외 벤더 중심의 클라우드 플랫폼 시장에서 국내 IT 서비스 경쟁력 강화를 목표로, 한국 지능정보사회진흥원(NIA)의 지원으로 다양한 국내 업체와 협업을 통해 만든 개방형 클라우드 플랫폼
- 2016년 4월에 처음 파스-타 공식 버전인 1.0 스파게티가 공개되었고, 2021년 2월 새로운 버전인 파스-타 5.5 세미니가 출시되었으며, 차세대 전자정부 서비스의 공통기반인 전자정부 클라우드 플랫폼에 적용되어 향후 클라우드 기반 전자정부 서비스의 표준 개발, 운영 환경을 제공하는 역할을 수행할 예정
585. 접근제어
- 보안 정책에 따라 접근 객체 (시스템 자원, 통신 자원 등)에 대한 접근 주체 (사용자, 프로세스 등)의 접근 권한 확인 및 이를 기반으로 한 접근 제어를 통해 자원에 대한 비인가된 사용을 방지하는 기능
- 시스템 및 네트워크에 대한 접근 제어의 가장 기본적인 수단은 IP와 서비스 포트로 가능
- 네트워크 장비에서 수행하는 IP에 대한 접근제어로는 관리 인터페이스의 접근제어와 ACL 등이 있음
590. SDS (Software Defined Storage)
- 하드웨어에서 스토리지 소프트웨어를 분리하는 스토리지 아키텍처
- 일반적으로 독점 하드웨어에 대한 소프트웨어의 종속성을 제거하여, 모든 업계 표준 또는 x86 시스템에서 동작하도록 설계
- 하드웨어 스토리지 소프트웨어가 분리되므로 사용자가 독점적 하드웨어를 급히 추가하는 것이 아니라 필요할 때 스토리지 용량을 적절히 확장할 수 있으며, 필요에 따라 하드웨어를 업그레이드하거나 다운 그레이드할 수도 있음
- 기본적으로 뛰어난 유연성을 제공
591. COCOMO
- COCOMO 개념
- 개발할 소프트웨어의 규모(LOC)를 예측한 후 소프트웨어 종류에 따라 각 비용 산정 공식에 대입하여 비용을 산정하는 방식
- 원시 프로그램의 규모에 따라 조직형, 반분리형, 내장형으로 분류
- 원시 프로그램의 규모에 따른 COCOMO 유형
- 조직형 (Organic Model) : 기관 내부에서 개발된 중소 규모의 소프트웨어로 일괄 자료 처리나 과학 기술 계산용, 비즈니스 자료 처리용으로 5만 라인 이하의 소프트웨어를 개발하는 유형으로 사무처리, 업무, 과학 분야의 소프트웨어 개발에 적합
- 반분리형 (Semi Detached Model) : 조직형과 내장형의 중간 정도에 해당, 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리 시스템 등의 30만 라인 이하의 소프트웨어를 개발하는 유형으로 컴파일러, 인터프리터와 같은 유틸리티 개발에 적합한 모형
- 내장형 (Embedded Model) : 최대 규모의 트랜잭션 처리 시스템이나 운영체제 등의 30만 라인 이상의 소프트웨어를 개발하는 유형으로 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합
598. Salt
- 같은 암호를 해쉬하게 되면 같은 해쉬 값이 나오기 때문에 위험하기 때문에 이를 방지하기 위해서 암호를 해쉬하기 전에 각각 사용자마다 랜덤 값을 암호에 덧붙여서 해쉬하게 됨
- 이렇게 하면 같은 암호라 하더라도 사용자마다 랜덤 값이 붙기 때문에 해쉬된 결과가 달라지게 됨
- 이 랜덤 값을 Salt라고 함
600. OWASP
OWASP Top 10 - 2013 | OWASP Top 10 - 2017 | ||
A1 | 인젝션 | A1-2017: | 인젝션 |
A2 | 취약한 인증과 세션 관리 | A2-2017: | 취약한 인증과 세션 관리 |
A3 | 크로스 사이트 스크립팅 (XSS) | A3-2017: | 민감한 데이터 노출 |
A4 | 안전하지 않은 직접 객체 참조 (A7 항목과 병합됨) | A4-2017: | XML 외부 개체 (XXE) |
A5 | 잘못된 보안 구성 | A5-2017: | 취약한 접근 통제 |
A6 | 민감한 데이터 노출 | A6-2017: | 잘못된 보안 구성 |
A7 | 기능 수준의 접근 통제 누락 (A4 항목과 병합됨) | A7-2017: | 크로스 사이트 스크립팅 (XSS) |
A8 | 크로스 사이트 요청 변조 (CSRF) | A8-2017: | 안전하지 않은 역질렬화 (신규, 커뮤니티) |
A9 | 알려진 취약점이 있는 구성요소 사용 | A9-2017: | 알려진 취약점이 있는 구성요소 사용 |
A10 | 검증되지 않은 리다이렉트 및 포워드 | A10-2017: | 불충분한 로깅 및 모니터링 (신규, 커뮤니티) |
- 오픈소스 웹 애플리케이션 보안 프로젝트
- 주로 웹에 관한 정보 노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구
- 10대 웹 애플리케이션의 취약점을 발표
- 웹 애플리케이션 취약점 중에서 빈도가 많이 발생하고 보안상 영향을 크게 줄 수 있는 것들 10가지를 선정하여 2004년, 2007년, 2010년, 2013년, 2017년을 기준으로 발표되었고 문서가 공개됨
'보관함 > 정보처리기사_25년 02차' 카테고리의 다른 글
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 651 ~ 700 오답정리 (0) | 2025.04.16 |
---|---|
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 601 ~ 650 오답정리 (0) | 2025.04.15 |
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 501 ~ 550 오답정리 (0) | 2025.04.13 |
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 451 ~ 500 오답정리 (1) | 2025.04.12 |
[정보처리기사 필기] 2022 기사패스 정보처리기사 기출문제 상세풀이 800제 : 401 ~ 450 오답정리 (0) | 2025.04.12 |