SQL
- DDL - DB구축, 수정 : CREATE, ALTER, DROP
CREATE SCHEMA 스키마명 AUTHORZATION 사용자 id : AUTHORZATION는 사용자의 ID
ALTER : ADD, ALTER, DROP COLUMN
- DCL - 데이터 보안, 무결성, 회복, 병행 제어 : COMMIT, ROLLBACK, GRANT, REVOKE
COMMIT : 실제 물리적 디스크 저장, 정상적으로 완료
ROLLBACK : 비정상적 종료, 원래상태 복구
GRANT : 권한 부여
- GRANT 사용자등급 TO 사용자ID
사용자 등급 :
1. DBA 데이터베이스 관리자
2. RESOURCE 데이터베이스 및 테이블 생성
3. CONNECT 단순 사용자
- GRANT 권한리스트 ON 개체 TO 사용자
권한 종류 :
1. ALL
2. SELECT
3. INSERT
4. DELETE
5. UPDATE
REVOKE : 권한 취소
SAVEPOINT : 트랜잭션 내에 ROLLBACK할 위치인 저장점을 지정
- DML - 저장된 데이터 실질적으로 관리 : SELECT, INSERT, DELETE, UPDATE
SELECT : 튜플 검색 SELECT FROM ~
INSERT : 튜플 삽입 INSERT INTO ~ VALUES
DELETE : 튜플 삭제 DELETE FROM ~
UPDATE : 튜플 내용 갱신 UPDATE ~ SET~
SELECT :
PREDICATE : 검색 튜플 수 제한 => DISTINCT : 중복 튜플 존재 시 하나만 표시
ORDER BY : 정렬 => ASC : 오름차순 DESC : 내림차순
하위 질의 검색된 범위를 기본 질의의 조건으로 사용 : ALL()사용
포함되지 않은 데이터 : Not In()
날짜 데이터는 숫자로 취급하지만 ' ' 또는 # #로 묶
% : 모든 문자 대표
_ : 문자 하나 대표
# : 숫자 하나 대표
그룹 함수 : GROUP BY절에 지정된 그룹별로 속성 값 집계
- COUNT, SUM, AVG, MAX, MIN, STDDEV(표준 편차), VARIANCE(분산), ROLLUP, CUBE
- ROLLUP : 속성 개수 n 개인 경우 n+1레벨까지 하위~상위 레벨 순으로 데이터 집계 - 아래부터 올라온다
- CUBE : 속성 개수 n 개의 경우 2^n레벨까지 상위~하위 레벨 순으로 집계 - 위에서 내려간
WINDOW 함수 : GROUP BY절 이용하지 않고 속성의 값을 집계
- PARTITION BY : WINODW 함수의 적용 범위가 될 속성 지정
- WINDOW함수 OVER (PARTITION BY 속성명1, 속성명2,...ORDER BY 속성명3....)
- 함수 종류 : ROW_NUMBER() : 각 레코드에 대한 일련번호, RANK() : 윈도우별로 순위 반환 (공동 반영)
DENSE_RANK() : 윈도우 별로 순위반환 (공동 무시하고 순위 부여)
집합 연산자 : UNION(합, 중복X), UNION ALL(합, 중복O), INTERSECT(공통 교집합), EXCEPT(차집합)
JOIN -> INNER JOIN, OUTER JOIN
JOIN ~ USING
INNER JOIN : NATURAL JOIN (EQUI JOIN), NON-EQUI JOIN
OUTER JOIN : LEFT OUTER JOIN (INNER -> 우측항과 안맞아도 좌측 항 릴레이션에 NULL값을 붙여서라도 가져옴)
RIGHT OUTER JOIN (INNER -> LEFT OUTER JOIN과 반대 우측 항 릴레이션에 NULL값이라도 붙여서 가져옴)
FULL OTER JOIN (INNER -> RIGHT -> LEFT)
트리거 : 삽입, 갱신, 삭제 등 이벤트가 발생하면 작업이 자동으로 수행되는 절차형 SQL
Secure SDLC : SDLC(소프트웨어 개발 생명주기)에 보안 강화를 위한 프로세스 포함
방법론 : CLASP, SDL, SevenTouchpoints
시큐어 코딩 : 보안 요소 고려하며 코딩하는 것(보안 취약점 최소화가 목표)
입력 데이터 검증
SQL 삽입 : 웹 응용 프로그램에 SQL 삽입 -> DB 데이터 유출 및 변조, 관리자 인증 우회 (동적 쿼리)
경로 조작 및 자원 삽입 : 입출력 경로 조작 -> 서버 자원을 수정, 삭제
크로스사이트 스크립팅 : 악의적인 스크립트 삽입 -> 정보 탈취
운영체제 명령어 삽입 : 시스템 명령어의 실행을 유도 -> 시스템 장애
위험한 형식 파일 업로드 : 악의적인 명령어 포함된 스크립트 파일 업로드 -> 시스템 손상
신뢰되지 않은 URL 주소로 자동접속 연결 : 사이트 주소를 받는 경우 이를 조작하여 피싱 사이트로 유도
메모리 버퍼 오버플로 : 할당 된 메모리 범위를 넘은 위치를 읽거나 쓰려고함
보안 기능
적절한 인증없이 중요기능 허용 : 보안검사를 우회
부적절한 인가 : 접근제어 기능이 없는 실행경로를 통해 정보 또는 권한 탈취
중요한 자원에 대한 잘못된 권한 설정 : 권한 설정 잘못된 자원에 접근하여 임의로 사용
취약한 암호한 알고리즘 사용 : 암호화 환경파일 해독- > 중요정보 탈취
중요정보 평문 저장 및 전송 : 평문 탈취 -> 중요 정보 획득
하드코드 된 암호화 키 : 역계산 또는 무차별 대입 공격에 의해 탈취
코드 오류
널 포인터 역참조 : 널 포인터가 가리키는 메모리의 위치에 값을 저장할 때 발생하는 보안 약점
부적절한 자원 해제 : 자원 반환 코드 누락 또는 프로그램 오류로 자원 반환 실패
해제된 자원 사용 : 이미 반환된 메모리 참조
초기화되지 않은 변수 사용 : 변수 선언 후 값이 부여되지 않은 변수 사용
스택 가드 : 주소가 저장되는 스택에서 생하는 보안 약점을 막는 기술
암호 알고리즘 : 중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법
개인키 암호화 : 동일한 키로 데이터를 암호화, 복호화, 관리해야 할 키의 수가 많음, 대칭 암호 기법
종류 : 스트림 암호화, 블록 암호화
공개키 암호화 : 암호화는 공개키로 복호화는 비밀키로 관리, 비대칭 암호 기법
대표적으로 RSA기법이 있다.
양방향 알고리즘 종류
SEED : KISA(한국인터넷진흥원), 블록, 128비트, 키 길이 따라 128, 256
ARIA : 국가정보원, 산학연협회, 블록
DES : NBS 개인키 암호화 블록 64 키 길이 56, 16회 라운드,
AES : NIST 개인키, DES 한계, 블록 128, 128,192,256
RSA : MIT 소인수분해
IDEA : PES 개선 블록 64 키 128, 메시가 만듦
Skipjack : NSA 암호화 알고리즘, 클리퍼 칩, 블록 64, 키 길이 80, 음성 통신
TKIP : 무선랜 보안 WEP 보완 128비트, 패킷당 키 할당, 키값 재설정
해시 : 임의의 길이의 입력 데이터나 메세지를 고정된 길이의 값이나 키로 변환하는 것
해시 종류
SHA 시리즈 : NISA설계 NIST발표, SHA-0, SHA-1, SHA-2 SHA-224, SHA-256, SHA-384, SHA-512
MD5 : MD4 대체 블록 512, 키 길이 128
N-NASH : NTT 발표, 블록 128 키 길이 128
SNEFRU : R.C.Merkle 32비트
서비스 공격 유형
DoS : 대량의 데이터를 한 곳의 서버에 집중 전송 -> 서버의 정상적인 기능 방해
Ping of Death : 패킷 크기를 인터넷 프로토콜 허용 범위 이상으로 전송 -> 네트워크 마비
SMURFING : IP, ICMP 특성 악용하여 엄청난 양의 데이터를 한 사이트로 집중 전송 -> 네트워크 불능 상태로 만듦
SYN Flooding : 3-way-handshake 과정을 의도적으로 중단 -> 서버가 대기 상태로 놓여 정상 서비스 X
TearDrop : Fragment Offset값을 변경시켜 과부화 발생 시킴 -> 시스템 다운
Land Attack : 패킷 전송할 때 송신 IP주소와 수신 IP주소를 모두 공격 대상 IP 주소로 변경 -> 자신에 대한 무한 응답
DDos : 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 서비스 거부 공격 수행
네트워크 침해 공격
세션 하이재킹(Session Hijacking) : 세션 정보 가로챔 -> 서버 자원 데이터 무단 사용
ARP 스푸핑 : ARP 취약점 공격 MAC 주소를 공격 대상의 것으로 변조 -> 데이터 패킷 가로채거나 방해
스미싱 : 문자 메세지SMS를 통해 개인 신용 정보 빼냄
사회 공학 : 인간 상호 작용의 깊은 신뢰
다크 데이터 : 특정 목적으로 수집하였으니, 활용하지 않아 저장만 되어있는 대량의 데이터
타이포스쿼팅 : 유사한 유명 도메인을 미리 등록 URL 하이제킹
스피어 피싱 : 일반적인 이메일로 위장한 메일 지속적으로 발송 -> 파일 클릭 유도
APT : 조직 네트워크 침투하여 활동 거점 마련 -> 보안 무력화, 정보 수집
무작위 대입 공격 : 암호키를 찾기 위해 모든 키를 다 대입
큐싱 : QR코드를 통하여 개인정보, 금융정보 낚는다.
SQL 삽입 공격 : 스캐너 또는 봇넷으로 웹사이트 무차별 공격 -> 취약한 사이트 발견시 DB 등의 데이터 조작 공격
크로스 사이트 스크립팅(XSS) : 스크립트 취약점을 악용한 해킹 기법
스니핑 : 남의 패킷 정보를 도청하는 해킹 유형 (수동적 공격)
정보 보안 침해 공격
워터링홀 : 웹사이트 사전 감염 -> 목표 조직 일원이 웹사이트 방문시 악성 코드 감염
좀비 PC : 악성 코드 감염 -> 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터 C&C 서버 제어, DDos공격
C&C 서버 : 해커가 좀비 PC에 명령 내리고 악성 코드 제어하는 서버
봇넷 : 악의적 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
웜 : 연속적으로 자신을 복제 -> 시스템 부하
제로 데이 공격 : 보안 취약점 존재 자체가 널리 공표 전 공격, 공격의 신속성
키로거 공격 : 키보드 움직임 탐지
랜섬웨어 : 컴퓨터 잠입해 내부 문서나 파일 등을 암호화 -> 사용자가 열지 못함
백도어 : 기술자, 유지보수 작성자가 액세스 편의를 위해 시스템 보안을 제거해둔 비밀 통로
트로이 목마 : 정상 프로그램으로 위장 -> 프로그램 동작시 활성화, 자기 복제 X
보안 서버 : 개인정보 암호화하여 송수신 기능을 갖춘 서버
인증 : 로그인 요청한 사용자 정보를 확인, 접근 권한 검증
인증 종류 : 지식, 소유, 생체, 위치
보안솔루션 : 외부로부터 불법적인 침입을 막는 기술 및 시스템
방화벽 : 내부 네트워크와 인터넷 간 전송되는 정보를 선별, 수용,거부,수정하는 기능의 침입 차단 시스템
침입 탐지 시스템(IDS) : 컴퓨터 시스템 비정상적 사용,오용,남용 등을 실시간 탐지 - 오용탐지, 이상탐지
침입 방지 시스템(IPS) : 비정상적 트래픽을 능동적으로 차단, 격리
데이터 유출 방지(DLP) : 내부 정보 유출 방지 보안 솔루션
웹 방화벽 : 웹 기반 공격 방어용 웹 서버 방화벽
VPN(가상 사설 통신망) : 공중 네트워크 암호화 기술 이용하여 자신의 전용 회선 사용하는 것 처럼 해주는 보안 솔루션
-SSL VPN, IPSec VPN
NAC : 네트워크에 접속하는 내부 PC 주소를 IP 관리 시스템에 저장 -> 일관된 보안 관리 기능
SIEM : 로그 및 보안 이벤트를 통합 관리 보안솔루션
헝가리안 표기법 : 변수명 작성시 자료형을 알 수 있게 자료형을 의미하는 문자를 포함하여 작성
절차적 프로그래밍 언어 : 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술하는 언어
C, ALGOL, COBOL, FORTRAN
객체지향 프로그래밍 언어 : 현실 세계의 개체를 하나의 객체로 만들어 기계를 조립하듯 객체를 조립해서 프로그램을 작성
C++, JAVA, Smalltalk
스크립트 언어 : HTML 문서 안에 직접 프로그래밍 언어 삽입하여 사용
서버용 : ASP, JSP, PHP, 파이썬
클라이언트용 : 자바 스크립트, VB 스크립트
운영체제 : 컴퓨터 시스템 자원들을 효율적으로 관리, 편리하고 효과적으로 사용하는 환경을 제공하는 여러 프로그램 모임
목적 : 처리 능력, 반환 시간, 사용 가능도, 신뢰도
Windows : 1990 마이크로소프트
UNIX : 1960 MIT
LINUX : 리눅스 토발즈, UNIX 기반
MacOS : 애플, UNIX 기반
Android : 구글, LINUX 커널 기반 모바일
iOS : 애플 : UNIX 기반 모바일
기억장치 관리
반입 전략 : 언제 적재
배치 전략 : 어디에 위치
교체 전략 : 어떤 영역 교체
교체 알고리즘
OPT : 최적 (앞으로 가장 오래 사용안할 페이지 교체)
FIFO : 가장 먼저 들어와 오래있던것 교체
LRU : 최근 가장 오래 사용안한거 교체
LFU : 사용 빈도 가장 적은 페이지 교체
NUR : 최근 사용하지 않은 페이지 교체
SCR : 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지 교체 방지 FIFO 보완
기억장치 참조할 때 지역성을 띔 : Locality
- 시간 구역성, 공간 구역성
워킹 셋 : 프로세스가 일정 시간 동안 자주 참조하는 페이지 집합
스레싱 : 프로세스 처리 시간보다 페이지 교체 소요 시간이 더 많아지는 현상
프로세스 : 실행중인 프로그램
PCB(프로세스 제어 블록) : 운영체제가 프로세스에 대한 중요 정보를 저장해 둔 곳
스케줄링 : 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
- 비선점 스케줄링 : 할당된 CPU를 다른 프로세스가 강제로 사용 X
- 선점 스케줄링 : 할당된 CPU를 다른 프로세스가 강제로 사용 O
스케줄링 알고리즘
FCFS : 준비상태 큐에 도착한 순서에 따라 차례로 CPU 할당
SJF : 준비상태 큐에서 실행시간이 가장 짧은 프로세스부터
HRN : 대기시간, 실행 시간을 이용, SJF 방식 보완
RR : 시간 할당량동안만 실행 -> 다음 프로세스에게 CPU 넘김
SRT : 현재 실행중인 프로세스 남은 시간, 새 프로세스 실행시간 비교해서 짧은거부터
인터넷 : 전 세계 수많은 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망
IP 주소 : 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소
8비트씩 4부분 총 32비트
네트워크 부분 길이에 따라 A~E클래스 총 5단계로 구분
서브네팅 : 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용
첫번째주소 : 네트워크 주소
마지막주소 : 브로드캐스트 주소
IPv6 : IPv4 주소 부족 문제 해결
32비트 -> 128비트
인증성, 기밀성, 데이터 무결성 지원 -> 보안 증가
세 가지 주소 체계
1:1 유니캐스트
1:N 멀티캐스트
1:1(가장 가까운 사람) 애니캐스트
도메인 네임 : 숫자로된 IP 주소를 문자형태로 표현
도메인 네임->IP 주소 변환 : DNS
OSI : ISO에서 제안한 통신 규약
물리 데이터 네트워크 전송 세션 표현 응용 계층으로 구성
하위 : 물데네
상위 : 전세표응
네트워크 인터페이스 카드(NIC) : 컴퓨터 - 컴퓨터 또는 컴퓨터 - 네트워크를 연결하는 장치
허브 : 각각 회선을 통합 관리 (리피터 역할도 함) 더미 : 단순 연결 스위칭 : 최대 대역폭 사용 (물리 계층)
리피터 : 수신 신호 재생, 출력 전압 높여 전송 (물리 계층)
브리지 : LAN - LAN 연결 또는 LAN안에서 컴퓨터 그룹 연결 (서브넷 구성)
스위치 : LAN - LAN 연결하여 훨씬 더 큰 LAN을 만드는 장치 (데이터 링크 계층)
라우터 : 데이터 전송 최적 경로 선택 + 브리지 (네트워크 계층)
게이트웨이 : 프로토콜 구조 다른 네트워크 연결 (세션, 표현, 응용 계층 연결)
프로토콜 : 데이터 교환을 원할하게 수행할 수 있도록 표준화 시킨 통신 규약
- 구문, 의미, 시간으로 구성
TCP/IP : 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜
TCP : 전송 계층, 연결형 서비스, 패킷 다중화, 순서 제어, 오류 제어, 흐름 제어 기능을 제공
IP : 네트워크 계층, 데이터그램 방식을 기반으로 비연결형 서비스 제공, 패킷의 분해/조립, 주소지정, 경로 선택 기능
OSI -> TCP/IP
1,2 계층 -> 네트워크 액세스 계층 : 데이터(프레임) 송 수신 역할
3 계층 -> 인터넷 계층 : 데이터 전송을 위한 주소 지정, 경로 설정 제공
4 계층 -> 전송 계층 : 신뢰성 있는 통신
5,6,7 계층 -> 응용 계층 : 응용 프로그램 간 데이터 송 수신 제공
응용 계층 주요 프로토콜
FTP : 원격 파일 전송 프로토콜
SMTP : 전자 우편
TELNET : 원격 접속 -> 자신의 컴퓨터처럼 사용
SNMP : TCP/IP 네트워크 관리 프로토콜
DNS : 도메인 네임->Ip 주소로 매핑
HTTP : 월드 와이드 웹(WWW)에서 HTML 문서로 송수신 하기 위한 표준 프로토콜
전송 계층 주요 프로토콜
TCP : 양방향 연결, 가상 회선 연결, 스트림 위주 전달, 신뢰성 있는 경로, 헤더 최대 100Byte
UDP : 데이터 전송 전에 연결을 설정하지 않는 비연결성 서비스, 단순한 헤더 구조, 신뢰성<<속도
RTCP : RTP 패킷의 전송 품질을 제어하기 위한 제어 프로토콜, RTCP 패킷은 항상 32비트 경계
인터넷 계층 주요 프로토콜
IP : 데이터 주소 지정, 경로 설정, 데이터그램 방식이라 신뢰성 보장X
ICMP : IP와 조합 하여 통신 중 발생 오류 처리, 전송 경로변경
IGMP : 멀티캐스트를 지원하는 호스트, 라우터 사이 멀티캐스트 그룹 유지
ARP : IP 주소 MAC주소로 변경
RARP : MAC주소를 IP주소로 변경
네트워크 액세스 계층의 주요 프로토콜
Ethernet(IEEE 802.3) : CSMA/CD 방식 LAN
IEEE 802 : LAN을 위한 표준 프로토콜
HDLC : 비트 위주의 데이터 링크 제어 프로토콜
X.25 : 패킷 교환망을 통한 DTE, DCE 간의 인터페이스 제공
RS-232C : 공중 전화 교환망을 통한 DTE, DCE 간의 인터페이스 제공
네트워크 관련 기술
IoT : 다양한 사물들을 인터넷으로 연결
M2M : 기계와 기계 사이 통신
모바일 컴퓨팅 : 휴대용 기기로 이동하면서 네트워크 접속
클라우딩 컴퓨팅 : 중앙 컴퓨터를 두고 인터넷 기능을 가진 단말기로 어디서나 인터넷으로 컴퓨터 작업 수행
그리드 컴퓨팅 : 컴퓨터를 초고속 인터넷망으로 연결 -> 하나의 고성능 컴퓨터처럼 활용
모바일 클라우드 컴퓨팅 ; 모바일 기기로 클라우드 컴퓨팅 인프라 구성
인터클라우드 컴퓨팅 : 각각 다른 클라우드들의 서비스 연결
메시 네트워크 : 차세대 이동통신, 특수 목적을 위한 새로운 방식의 네트워크 기술
와이선 : 스마트 그리드와 같은 장거리 무선 통신을 필요로 하는 IoT 서비스를 위한 저전력 장거리 통신 기술
NDN : 콘텐츠 정보, 라우터 기능만으로 데이터 전송 수행, 기존 IP망을 대체할 새로운 인터넷 아키텍처
차세대통신망(NGN) : 완전한 이동성 제공 목표, 유선망 기반 차세대 통신망
소프트웨어 정의 네트워킹(SDN) : 네트워크를 컴퓨터처럼 모델링, 각각 네트워크를 소프트웨어로 가상화, 제어, 관리
근거리무선통신(NFC) : 고주파를 이용한 근거리 무선 통신, RFID
초광대역(UWB) : 짧은 거리 많은 데이터를 낮은 전력으로 전송하기 위한 무선 기술
피코넷 : 여러 독립된 통신장치가 블루투스, UWB 통신 기술로 통신망을 형성하는 무선 네트워크 기술
WBAN : 웨어러블 또는 몸에 심는 형태 센서, 기기를 무선 연결
지리 정보 시스템(GIS) : 지리적인 자료
유비쿼터스 센서 네트워크(USN) : 각종 센서로 수집한 정보를 무으로 수집할 수 있도록 네트워크 구성
자동구성네트워크(SON) : 주변 상황에 맞춰 스스로 망을 구성
애드 혹 네트워크 : 고정 유선망 구축 할 수 없는 장소에서 모바일 호스트만으로 구성한 네트워크
네트워크 슬라이싱 : 물리적 코어 네트워크 인프라를 독립된 다수 가상 네트워크로 분리
저전력 블루투스 기술 (BLE) : 2.4GHz 주파수 사용, 연결 안된 대기모드에서는 절전모드 유지
지능형 초연결망 : 데이터 트래픽을 효과적으로 수용하기 위해 과학기술정보통신부 주관 사업
파장 분할 다중화(WDM) : 광섬유를 이용한 통신기술의 하나, 파장 다른 복수 신호를 보냄 -> 동시에 통신 회선 사용
소프트웨어 정의 데이터 센터(SDDC) : 모든 자원 가상화 -> 소프트웨어 조작만으로 관리,제어되는 데이터센터
개방형 링크드 데이터(LOD) : 웹상에 공개된 연계 데이터, URL로 식별, 각 URL에 링크 정보 부여 -> 상호 연결
SSO : 한 번의 로그인으로 개인이 가입한 모든 사이트 이용 가능
네트워크 : 두 대 이상 컴퓨터를 연결, 자원 공유
물리적 위치에 따라 : 성형, 링형, 버스형, 계층형, 망형
지리적 범위에 따라 : LAN, WAN
경로제어 : 전송 경로 중 최적 패킷 교환 경로 결정
경로 제어 프로토콜
IGP 내부 게이트웨이 프로토콜 : 하나의 자율 시스템내의 라우팅에 사용되는 프로토콜
RIP -> 최단 경로 탐색에 Bellman-Ford 알고리즘이 사용
OSPF -> RIP 단점 보완, 다익스트라 알고리즘 사용, 라우팅 정보에 변화가 생기면 변화 정보만 네트워크 내 모든 라우터에게 알림
EGP : 게이트웨이 간 라우팅에 사용되는 프로토콜
BGP : EGP 단점 보완
관계 : 사물과 사물 사이 연관성
연관 관계 : 2개 이상 사물 서로 관련
집합 관계 : 하나의 사물이 다른 사물에 포함
포함 관계 : 포함하는 사물의 변화가 포함되는 사물에 영향을 미침
일반화 관계 : 더 일반적이거나 구체적인 관계 ex) 커피 : 일반적 아메리카노 : 구체적
의존 관계 : 서로에게 영향을 주는 짧은 시간동안만 연관을 유지 ex) 멤버십 -> 할인
실제화 관계 : 할 수 있거나 해야 하는 기능으로 서로를 그룹화 ex) 새 -> 날아야함 <- 비행기
다이어그램 : 사물과 관계를 도형으로 표현
클래스 다이어그램 : 클래스와 클래스가 가지는 속성, 클래스 사이 관계를 표현
비용 산정 기법
LOC(원시 코드 라인 수) : 비관치, 낙관치, 기대치 측정 -> 예측치 구해서 비용 산정
수학적 산정 기법
COCOMO 개발 유형 : 조직형 반분리형 내장형
COCOMO 모형 종류 : 기본형, 중간형, 발전형
Putnam : 소프트웨어 생명 주기 전 과정 동안 사용될 노력의 증표
데이터베이스 설계 순서
요구 조건 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현
요구 조건 분석 : 필요한 용도 파악
개념적 설계 : 현실 세계에 대한 인식을 추상적 개념으로 표현
논리적 설계 : 현실 세계에 발생하는 자료를 컴퓨터가 이해하고 처리 가능하도록 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정, 트랜잭션 인터페이스 설계
물리적 설계 : 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
데이터베이스 구현 : 논리적 설계와 물리적 설계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정
데이터 모델 : 현실 세계 정보를 체계적으로 표현한 개념적 모형
개념적 데이터 모델 : 현실 세계에 대한 인식을 추상적 개념으로 표현
논리적 데이터 모델 : 개념적 구조를 컴퓨터 세계 환경에 맞게 변환
데이터 모델 표시 요소 : 구조, 연산, 제약조건
튜플 : 릴레이션을 구성하는 각각의 행
속성 : 데이터베이스를 구성하는 가장 작은 논리적 단위
도메인 : 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자 값들의 집합
키 : 후보키, 기본키, 대체키, 슈퍼키, 외래키
후보키 : 속성들 중 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합 (유일성, 최소성 만족)
기본키 : 후보키 중에서 특별히 선택된 주 키
대체키 : 후보키가 둘 이상 일 경우 기본키 제외 후보키
슈퍼키 : 속성들의 집합으로 구성된 키(유일성만족, 최소성 불만족)
외래키 : 다른 릴레이션 기본키를 참조하는 속성 또는 속성들의 집합
무결성 : 데이터베이스 저장된 데이터값과 현실세계 실제 값의 일치하는 정확성
결합도 : 모듈 간에 상호 의존도
자료's 제어 외부 공통 내용
자료 : 인터페이스가 자료 요소로만 구성 Data Coupling
스탬프 : 배열이나 레코드 등의 자료구조 전달 Stamp
제어 : 다른 모듈 내부의 논리적 흐름을 제어하기 위해 제어 신호, 제어 요소를 전달 Control
외부 : 변수를 외부 다른 모듈에서 참조 External
공통 : 공유되는 공통 데이터 영역을 여러 모듈이 사용 Common
내용 : 내부 자료 직접 참조 Content
응집도
기순교 절시논우
기능 : 모든 기능 요소들이 단일 문제와 연관 Functional
순차 : 출력 데이터를 다음 활동의 입력 데이터로 사용 Sequential
교환 : 서로 다른 기능을 수행하는 구성 요소들이 모임 Communication
절차 : 모듈 안의 구성요소들이 그 기능을 순차적으로 수행 Procedural
시간 : 특정 시간에 처리되는 몇 개 기능을 모아 하나의 모듈로 작성 Temporal
논리 : 유사한 성격, 특정 형태로 분류되는 처리 요소들로 하나의 모듈로 형성 Logical Cohesion
우연 : 서로 관련 없는 요소로만 구성 Coincidental