빙응의 공부 블로그

[정처기]실기 요약 7~12장 본문

정처기

[정처기]실기 요약 7~12장

빙응이 2024. 4. 21. 17:52

📝7장 애플리케이션 테스트 관리 

애플리케이션 테스트 : 애플리케이션에 잠재되어있는 결함을 찾아내는 일련의 행위 - 확인과 검증 

애플리케이션 테스트의 기본원리 

  1. 완벽한 테스트 불가능
  2. 파레토 법칙 : 20% 코드에서 전체 결함의 80%가 발견됨
  3. 살충제 페러독스 : 동일한 테스트를 반복하면 결함이 발견되지 않는 현상
  4. 테스팅은 정황 의존
  5. 오류 - 부재의 법칙 : 결함을 모두 제거해도 요구사항을 만족하지 않으면 의미가 없다.

프로그램 실행 여부에 따른 테스트

  1. 정적테스트 : 프로그램을 실행하지 않고 소스 분석(워크스루/인스펙션/코드검사)
  2. 동적테스트 : 프로그램을 실행하여 오류를 찾는 테스트(화이트박스/블랙박스)

화이트박스 테스트 : 원시 코드의 모든 경로를 테스트하는 검사 기법

  1. 기초 경로 검사
  2. 제어 구조 검사
    1. 조건 검사
    2. 루프 검사
    3. 데이터 흐름 검사

화이트박스 검증 기준 

  1. 문장 검증 기준(Statement) :  모든 구문 한번 실행
  2. 분기 검증 기준(Branch) : 모든 조건문 결과 값 실행
  3. 조건 검증 기준(Condition) : 개별 조건문 결과값 실행
  4. 분기/조건 기준 : true, false에 따라 조건 검증

블랙박스 테스트 : 각 기능 완전작동을 입증하는 테스트 

  1. 동치 분할 검사(Equivalense Partitioning Testing)
  2. 경계값 분석(Boundary Value Analysis)
  3. 원인-효과 그래프 검사(Cause-Effect Graphing Testing)
  4. 오류 예측 검사
  5. 비교 검사 

테스트 기반에 따른 테스트

  1. 명세 기반 테스트 : 요구사항 명세를 빠짐없이 테스트 케이스에 작성(동치분할/경계값분석)
  2. 구조 기반 테스트 : 내부 논리 흐름에 따라 테스트 케이스 작성(구문기반/결정기반/조건기반)
  3. 경험 기반 테스트 : 테스터의 경험 기반(에러추정)

시각에 따른 테스트

  1. 검증테스트(Verification) : 개발자 시각에서 테스트
  2. 확인테스트(Validation) : 사용자 시각에서 테스트

목적에 따른 테스트

  1. 회복테스트 : 결함을 주어 실패 복구 테스트
  2. 안전테스트 : 불법 침입 시스템 보호 테스트
  3. 강도테스트 : 과부하 시 정상 실행 테스트
  4. 성능테스트
  5. 병행테스트
  6. 구조테스트
  7. 회귀테스트 

개발 단계에 따른 애플리케이션 테스트 

V 모델 : 소프트웨어 전 주기에 테스트 과정을 포함한 모델이다.

  1. 순서 : 요구사항 도출 - 분석 - 설계 - 구현 - 단위테스트 - 통합테스트 - 시스템테스트 - 인수테스트

단위테스트 : 프로그램 기본 단위인 모듈을 테스트하는 것 

통합테스트 : 단위테스트가 끝난 모든 모듈을 통합하는 과정에서 발생하는 오류를 찾는 테스트

  1. 비점진적 통합 방식 : 한꺼번에 통합/빅뱅 통합 테스트
  2. 점진적 통합 방식 : 단계적 통합
    1. 하향식 통합 테스트 : 상위모듈 -> 하위모듈 / 스텁(Stub) / 회귀 테스트
    2. 상향식 통합 테스트 : 하위모듈 -> 상위모듈 / 하위모듈은 클러스터 단위 / 드라이버(Driver)

테스트 케이스 : 사용자의 요구사항을 정확하게 준수했는지 테스트 항목에 대한 명세서

테스트 시나리오 : 테스트 케이스를 순서에 따라 묶은 집합 

테스트 오라클 : 테스트 결과 판단을 위해 참값을 대입하여 비교하는 것 

  1. 참오라클 : 모든 테스트 케이스 결과 제공
  2. 샘플링 오라클 : 몇몇 테스트 케이스 결과 제공
  3. 추정 오라클 : 특정 테스트 케이스 결과 제공
  4. 일관성 검사 오라클 : 변경에 대한 결과값 확인

테스트 자동화 

  1. 정적 분석 도구 : 소스코드 분석
  2. 테스트 실행 도구
  3. 성능 테스트 도구 
  4. 테스트 통제 도구 

테스트 하네스 도구 : 테스트가 실행될 환경을 시뮬레이션하여 테스트하는 것 

  1. 테스트 드라이버 : 하위 모듈 호출, 파라미터 전달
  2. 테스트 스텁 : 테스트용 모듈
  3. 테스트 슈트 : 테스트케이스 집합
  4. 테스트케이스 
  5. 테스트 스크립트 : 자동화 명세서
  6. 목오브젝트 : 행위를 조건부 입력 ,수행 객체 

애플리케이션 성능 지표

  1. 처리량
  2. 응답 시간
  3. 경과 시간
  4. 자원 사용률 

시간복잡도 점근 표기법 종류

  1. 빅오 표기법  : 알고리즘 실행시간 최악
  2. 세타 표기법 : 알고리즘 실행 시간 평균
  3. 오메가 표기법 : 알고리즘 실행 시간 최상

빅오 표기법의 복잡도

  1. O(1) : 하나의 단계만 거침
  2. O(log2n) : 단계가 조건에 의해 감소함
  3. O(n) : 1 대 1 단계
  4. O(nlog2n) : 단계가 n번만큼 수행
  5. O(n2) : 단계가 제곱만큼 수행
  6. O(2n) : 단계가 2의 제곱만큼 수행

순환복잡도 - 맥케이브 순환도(계산법 : 화살표수 - 노드수 + 2)

클린코드 작성 법칙(가독성/단순성/중복성최소화/추상화/의존성배제)

소스코드 품질 분석 도구의 종류

  1. pmd
  2. cppcheck
  3. SonarQube
  4. checkStayle
  5. ccm
  6. cobertura
  7. Avalanche
  8. Valgrind

📝9장 소프트웨어 개발 보안 구축

secureSDLC : 보안 강화한 소프트웨어 개발 생명주기이다.

  1. CLASP : SDLC 초기 단계 보안 강화 방법론
  2. SDL : 마이크로소프트 방법론
  3. SevenTouchpoint : 소프트웨어 보안 모범사례 방법론

소프트웨어 개발 보안 요소 : 기밀성 / 무결성/ 가용성 / 인증/ 부인방지 

 

  1. 기밀성 : 인가된 사용자만 접근 허용
  2. 무결성 : 인가된 사용자만이 정보의 수정 가능
  3. 가용성 : 인가된 사용자는 언제든지 자원 접근 및 사용 가능
  4. 인증 : 합법 사용자 확인 
  5. 부인 방지 : 송수신 증거 제공 

Scure Coding : 보안 취약점 최소화를 위한 보안 요소 고려 코딩 

스택가드 : 주소가 저장되어 스택에서 발생하는 보안 약점을 막는 기술 

암호 알고리즘 : 중요 정보를 보호하기 위해 평문을 암호화 문장으로 만드는 절차 

  1. 개인키 암호화 : 동일한 키로 데이터를 암호화, 복호화
    1. 스트림 암호화 방식 : 비트 단위로 암호화 -- LFSR, RC4, TKIP
    2. 블록 암호화 방식 : 블을 암호화 - DES, SEED, AES, ARIA, IDEA, Skipjack 
  2. 공개키 암호화 : 공개키 사용자 공개 - 비밀키 관리자 관리 - RSA, ECC

양방향 알고리즘 종류 

  1. SEED : 한국 인터넷 진흥원 블록 암호화 알고리즘, 128비트
  2. ARIA : 국가정보원 + 산학연협회 블록 암호화 알고리즘
  3. DES : NBS 개인키 암호화 알고리즘, 64비트
  4. AES : NIST 개인키 암호화 알고리즘, 128비트
  5. RSA : MIT 공개키 암호화 알고리즘 , 소인수 분해 
  6. ECC : RSA 대안 공개키 암호화 알고리즘, 타원 곡선
  7. IDEA : 라이와 메시 개인키 암호화 알고리즘, 64비트
  8. Skipjack : NSA 암호화 알고리즘, 클리퍼 칩 
  9. TKIP : WEP 임시 키 무결성 프로토콜 

해시 : 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값으로 변환하는 것 

  1. SHA시리즈 
  2. MD5 : MD4대체 512비트
  3. N-NASH : NTT ,128비트
  4. SNEFRU : 32비트 

 

서비스 공격 유형 

  1. Ping of Death : 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송
  2. SMURFING : IP나 ICMP 특성 악용, 데이터 한 사이트 집중 공격
  3. SYN Flooding : 3-way-handshake를 의도적으로 중단
  4. Tear Drop : Tcp의 프레그머트 옵셋의 값을 변형시켜 과부화
  5. LAND Attack : 송신 ip와 수신 ip를 같게 설정, 무한 응답
  6. DDoS : 여러곳 분산된 굥격지점에서 한 서버로 공격

네트워크 침해 공격 관련 용어 

  1. 세션 하이재킹 : 클라이언트 사이의 세션 정보를 가로챔
  2. ARP 스푸핑 : 자신의 물리적 주소를 공격 대상의 것으로 변조
  3. 스미싱 : SMS 개인정보 탈취
  4. 스피어피싱 : 사회공학
  5. ART : 기업이나 조직 네트워크 무력화 정보 수집
  6. 무작위 대입 공격(Brute Force Attack)
  7. 큐싱 : 큐알코드
  8. SQL Injection : 웹 응용 프로그램 지점에 SQL을 삽입하여 데이터베이스 데이터 조작
  9. XSS : 웹 페이지 스크립트 취약점 해킹
  10. 스니핑 : 남의 패킷 정보 도청 

정보 보안 침해 공격 관련 용어

  1. 좀비PC 
  2. C&C서버 : 좀비 PC에게 명령 중인 서버
  3. 봇넷 : 악성 컴퓨터의 네트워크
  4. 웜 : 자가 복제, 시스템 부하
  5. 제로데이공격 : 공격의 신속성 
  6. 키로거 공격 : 키보드 움직임 탐지
  7. 랜섬웨어
  8. 백도어
  9. 트로이목마

보안 솔루션

  1. 방화벽
  2. IDS : 시스템의 사용, 오용, 남용 등을 실시간 검색
  3. IPS : 비정상적인 트래픽 차단
  4. DLS : 내부 정보 유출 방지
  5. 웹 방화벽 : SQL Injection, XSS 공격 방어
  6. VPN : 공중 네트워크 암호화 기술 이용 전용 회선처럼 사용
  7. NAC : MAC 주소를 미리 IP에 등록하여 사용
  8. SIEM : 로그 및 보안 이벤트를 통합하여 관리
  9. SSH : 원격 접속 방법으로 22번 포트번호 사용
  10. 템퍼 프루핑(Tamper Proofing) : 위변조가 발생 하면 소프트웨어를 오작동하게 만드는 것
  11. OAuth : API를 이용한 표준 인증 방법

📝11장 응용 SW 기초 기술 활용

운영체제 

  1. Windows : 마이크로소프트/ GUI / 선점형 멀티 테스킹 / PnP/ OLE / 싱글 유저
  2. UNIX : 시분할 시스템, 개방형 시스템, 다중 사용자, 다중 작업, 트리 구조 
  3. LINUX : 리눅스 토발즈가 개발, UNIX 호환
  4. MaxOS : UNIX 기반 애플 
  5. Android : 구글이 개발 모바일 운영체제, 자바와 코틀린
  6. iOS : 애플의 모바일 운영체제

운영체제의 목적  : 처리능력 / 반환시간 / 사용 가능도/ 신뢰도

기억장치 관리 전략 : 반입 / 배치 / 교체

  1. 반입전략 Fetch : 프로그램이나 데이터를 언제 주기억장치로 적재할 것인가 결정
    1. 요구반입 : 특정 데이터를 참조를 요구할 때 적재
    2. 예상반입 : 데이터를 미리 예상하여 적재
  2. 배치 전략 : 프로그램이나 데이터를 어디에 위치시킬 것인가를 결정
    1. 최초적합 / 최적적합 / 최악적합
  3. 교체전략 : 이미 사용중인 영역 중 어디를 교체하여 사용할 것인가

주기억장치 할당

  1. 연속 할당 기법 : 주기억장치에 연속으로 할당
    1. 단일 분할 할당 기법 : 한 순간에는 한 사용자만 사용자 영역 사용
      1. Overlay : 주기억장치보다 큰 사용자 프로그램 실행 기법
      2. Swapping : 주기억장치에서 프로그램 사용하다 다른 프로그램과 교체 기법
    2. 다중 분할 할당 기법 
  2. 분산 할당 기법 
    1. 페이징 기법 : 프로그램과 주기억장치를 동일한 크기로 나눈 뒤 적재 
    2. 세그먼테이션 기법 : 프로그램을 다양한 크기의 논리적 단위로 나눈 뒤 적재

페이지 교체 알고리즘 : 페이지 부재가 발생하면 어떤 페이지 프레임을 교체할 것인가를 결정

  1. OPT : 앞으로 가장 오랫동안 사용하지 않을 페이지 교체
  2. FIFO : 가장 먼저 들어온 페이지 교체
  3. LRU : 최근 가장 오랫동안 사용하지 않은 페이지 교체
  4. LFU : 사용 빈도가 적은 페이지 교체
  5. NUR : 최근 사용하지 않은 페이지 교체
  6. SCR : 가장 오랫동안 있는 페이지 중 자주 사용되는 페이지 교체 방지 기법 

Locality: 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중 참조하는 성질

  1. 시간 구역성
  2. 공간 구역성 

Working Set : 프로세스가 일정 시간동안 자주 참조하는 페이지들의 집합

스래싱(Tharshing) : 프소세스 처리 시간보다 교체 시간이 많아지는 현상

PCB : 운영체제가 프로세스의 중요 정보를 저장해 놓은 곳 

프로세스 상태 전이

Thread : 시스템의 여러 자원을 할당받아 실행하는 프로그램 단위

스케줄링 : 시스템의 여러 장원을 해당 프로세스에 할당하는 작업

  1. 비선점 스케줄링
    1. FCFS : 선입 선출
    2. SJF : 실행 시간이 짧은 것 먼저 
    3. HRN : 대기시간 + 서비스 시간 / 서비스 시간
  2. 선점형 스케줄링 
    1. RR : 시간 할당량을 주어지는 방식
    2. SRT : 실행 시간이 짧은 것을 먼저하는 선점 방식 

IP주소 : 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유 주소

  1. A Class : 국가나 대형 통신망/ 0~127
  2. B Class : 중대형 통신망 : 128 ~ 191
  3. C Class : 소규모 통신망 / 192 ~ 223 
  4. D Class : 멀티캐스트 / 224 ~ 239

서브네팅 : 네트워크를 작은 네트워크로 나누어 사용하는 것(하는 법 학습 필요함)

IPv6 : 128비트 / 인증성 /기밀성/ 데이터무결성/ 유니캐스트-멀티캐스트-애니캐스트

OSI 참조 모델 : ISO 제안 통신 규약 

  1. 물리 계층 : 장치간 실제 접속(리피터, 허브)
  2. 데이터 링크 계층 : 시스템간 연결 / 흐름제어/ 동기화/ 오류제어/ 순서제어(랜카드, 브리지)
  3. 네트워크계층 : 시스템간 네트워크 연결 관리 / 경로 설정/ 데이터교환/ 트래픽제어/ 패킷정보
  4. 전송계층 : 균일한 데이터 전송 서비스 제공 / 주소설정/ 다중화/ 오류제어/ 흐름제어 (게이트웨이)
  5. 세션계층 : 송수신 간의 상태 유지
  6. 표현계층: 데이터 변환 / 코드변환/ 데이터 암호화/ 구문검색
  7. 응용계층 : 정보교환/ 파일전송

네트워크 관련 장비

  1. Hub : 사무실 같은 가까운 거리 컴퓨터 연결
  2. 리피터 : 디지털 신호 장거리 전송을 위한 신호 극대화
  3. 브리지 : LAN과 LAN 연결, 내부 컴퓨터 그룹 연결
  4. 스위치 :  LAN과 LAN 연결, 더 큰 LAN 형성
  5. 라우터 : 데이터 전송의 최적 경로 선택
  6. 게이트웨이 : 프로토콜 구조가 다른 네트워크 연결

프로토콜 : 데이터를 교환을 원활하게 수행할 수 있도록하는 통신 규약(구문/의미/시간)

TCP : OSI 전송 계층 / 가상회선방식/ 순서제어/ 오류제어/ 흐름제어/ 패킷의 다중화

IP : OSI 네트워크 계층 / 데이터그램 방식 / 주소지정 / 경로선택 /패킷의 분해 

각 계층의 프로토콜 

  1. 응용계층 : 데이터 송수신 제공
    1. FTP : 원격 파일 전송 프로토콜
    2. SMTP : 전자 우편
    3. TELNET : 외부 컴퓨터 접속
    4. SNMP : 네트워크 정보 관리 표준 통신 규약
    5. DNS : 도메인 네임 IP 주소로 매핑
    6. HTTP : WWW에서 HTML 송수신 하기위한 프로토콜 
  2. 전송 계층 : 신뢰성 있는 통신제공 
    1. TCP : 양방향 연결, 가상회선연결, 순서제어, 오류제어 , 흐름제어
    2. UDP : 비연결형 서비스 , 오버헤드가 적음, 전송속도가 빠름
    3. RTCP : RTP 제어 프로토콜 , 패킷의 다중화 ,최소한의 제어/인증
  3. 인터넷 계층 : 주소지정 / 경로 설정
    1. IP : 주소지정, 경로설정
    2. ICMP : 오류처리, 제어메시지 관리
    3. IGMP : 멀티캐스트
    4. ARP : IP주소를 MAC주소로 바꿈
    5. RARP : MAC주소를 IP주소로 바꿈
  4. 네트워크액세스 계층 :실제데이터 송수신
    1. Ethernet : CSMA/CD방식의 LAN
    2. IEEE 802 : LAN 표준 프로토콜
    3. HDLC : 데이터링크 제어 프로토콜 

네트워크 관련 신기술 

  1. IoT : 가상 세계의 다양한 사물을 인터넷 연결
  2. M2M : 무선통신, 버스 시스템
  3. 모바일 컴퓨팅
  4. 클라우드 컴퓨팅
  5. 그리드 컴퓨팅
  6. MCC : 모바일 클라우드 컴퓨팅
  7. 인터클라우드 컴퓨팅 : 클라우드 서비스 자원 연결
  8. 메시네트워크 : 차세대 이동통신, 홈네트워킹 
  9. 와이선 : 저전력 장거리 무선 통신 기술 
  10. NDN : 라우터 기능으로 데이터 전송
  11. NGN : 유선망 기반 차세대 통신망
  12. SDN : 가상화, 제어, 관리 네트워크 
  13. NFC : 고주파 근거리 무선 통신 
  14. UWB : 디지털 펄스
  15. 피코넷 : 블루투스 무선네트워크 기술
  16. WBAN 웨어러블 개인영역 네트워크 기술
  17. GIS : 지리적 자료 관리, 위성을 이용한 사물 위치 제공
  18. USN : 각종 센서로 정보 수집 네트워크 
  19. SON : 스스로 망 구축 네트워크 
  20. 애드 혹 네트워크 : 별도로 유선망 구축이 어려울 때 모바일 호스트를 이용한 네트워크
  21. 네트워크 슬라이싱 : 고객 맞춤 네트워크 제공
  22. BLE : 블루트스 절전모드
  23. 파장 분할 다중화(WDN) : 광섬유를 이용한 통신 기술
  24. SDDC : 소프트웨어 조작만으로 이뤄지는 데이터 센터
  25. LOC : 누구나 사용할 수 있도록 웹상에 공개된 데이터 
  26. SSO : 한 번의 로그인으로 개인이 가입한 모든 사이트 이용 가능

클라우드 컴퓨팅의 서비스 유형 Iaas, Paas, Saas

 

네트워크 : 두 대 이상의 컴퓨터를 연결하여 자원을 공유하는 것 

  1. 성형 : 중앙 집중형
  2. 링형  : 루프형
  3. 버스형 : 한 개의 통신 회선
  4. 트리형 : 분산 시스템
  5. Mesh : 모든 지점의 컴퓨터를 서로 연결 

NAT : 한 개의 정식 IP 주소에 대량의 가상 IP 주소를 할당 및 연결하는 기능 

경로제어 라우팅 : 최적 패킷 경로 결정

  1. IGP : 하나의 자유 시스템 내 라우팅 프로토콜
    1. RIP : 벡터라우팅프로토콜, 소규모 , 최대홉 15개, 벨만포드알고리즘
    2. OSPF : 대규모네트워크, 다익스트라
  2. EGP : 자율 시스템 간 라우팅
  3. BGP : EGP 보완

트래픽제어: 전송되는 패킷의 흐름 또는 양 조절(흐름제어/폭주제어/교착상태방지)

흐름제어 : 송수신 패킷의 양이나 속도 조절

폭주제어 : 네트워크 오버플로우 방지 

 

SW 관련 신기술

  1. AI
  2. 뉴럴링크
  3. 딥러닝
  4. 전문가 시스템 
  5. AR : 증강현실
  6. 블록체인 : P2P, 참여자 디지털 장비 분산 저장
  7. DLT : 중앙데이터 저장소 없이 P2P 참여자들 분산 저장
  8. 해쉬
  9. QKD : 양자 통신 비밀키 분배 관리
  10. PET : 개인 정보 침해 위험 관리
  11. CC  : 정보보호 제품 평가 기준
  12. PIA : 개인정보 피해영향 미리 조사,분석 평가 제도
  13. 그레이웨어 : 악의 소프트웨어는 아닌 공유웨어
  14. 매시업 : 웹 제공 정보로 새로운 소프트웨어를 만드는 기술
  15. RIA 플래시 웹 페이지 제작 기술
  16. 시맨틱 웹 : 차세대 지능형 웹
  17. 증발품 : 배포 계획 발표가 되었으나 배포되지 않은 소프트웨어
  18. OGSA : 웹서비스 그리드상에서 제공하기 위한 개방형표준
  19. SOA : 기업의 소프트웨어 정보시스템을 컴포넌트 중심으로 구축하는 정보 기술 아키텍처
  20. SaaS : 필요한 시버스만 이용 네트워크
  21. CEP : 실시간 이베트 조건 처리
  22. 디지털 트윈 : 현실 사물을 강상화한 모델 

정보 보호 관리 체계(ISMS) : 한국 인터넷 진흥원의 치계

HW 관련 신기술

  1. 고가용성 : 오류 발생 시 다른 시스템으로 대체하는 메커니즘
  2. RAID : 여러 디스트 분산 관리 기술(0 : 스트라이핑/ 1 : 미러링/ 5 : 패리티/ 6: 이중 패리티)
  3. 앤스크린 : N개의 다른 단말기 동일 컨텐츠 이용 가능 
  4. 캠패니언 스크린 : 방송 시청 중 추가 기능 사용 가능
  5. 멤스 : 초정밀 반도체 제조 기술 센서
  6. 트러스트존 : 하드웨어 보안 기술
  7. 엠디스크 : 한번기록 영구보관
  8. 멤리스터 : 전류의 방향과 양, 경험 모두 기억 

Secure OS: 보안 기능을 갖춘 커널 이식, 보안 운영체제

DB 관련 신기술

  1. 빅데이터
  2. 브로드데이터 
  3. 메타데이터
  4. 디지털아카이빙: 디지털 정보 장기 보존 작업
  5. 하둡 : 오픈 소스 기반 분산 컴퓨팅 플랫폼
  6. 맵리듀스 : 대용량 데이터 분산 처리
  7. 타조 : 하둡 기반 분산 데이터 웨어하우스
  8. 데이터마이닝 : 데이터분석, 상호관계 패턴을 찾는 것 
  9. OLAP : 다차원 데이터 분석, 의사결정에 활용

회복 : 데이터베이스가 손상되었을 때 복구하는 작업

  1. 연기갱신기법 : 트랜잭션 완료될때까지 연기(Redo만 가능)
  2. 즉각갱신기법 : 죽시 반영 기법(Redo, Undo 가능)
  3. 그림자 페이징 대체 기법 
  4. 검사점 기법 

병행제어 : 동시에 실행되는 트랜잭션 간 상호작용 제어

  1. 로킹 : 액세스 전 Lock, 허가 시 액세스 가능
  2. 타임스탬프 순서 : 시간표 부여
  3. 최적병행수법
  4. 다중버전기법 

교착상태 : 서로 다른 프로세스가 점유하고 있는 자원을 요구하여 무한정 기다리는 현상

교착상태 발생의 필요충분 조건 

  1. 점유와 대기
  2. 비선점
  3. 환영대기
  4. 상호배제 

교착상태 해결방법 : 예방기법/회피기법(은행원 알고리즘)/발견기법/회복기법

 

📝12장 제품 소프트웨어 패키징 

소프트웨어패키징 : 모듈별 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것

릴리즈노트 : 소프트웨어 개발 과정에서 정리된 릴리즈 정보 문서(해더)

DRM : 디지털저작권 관리 기술

디지털 저작권 관리 기술 요소 : 암호화, 키관리, 암호화 파일 생성, 식별기술, 정책관리, 저작권 표현, 인증, 크랙관리

클리어링하우스 : 저작권 사용권한, 라이선스 발급, 암호키 관리 등

 

형상관리 SCM : 개발과정에서 변경 사항을 관리하기 위한 활동

  • Repository - import - check out - check in - commit - update

소프트웨어 버전 관리 도구

  1. 공유 폴더 방식 : 지역컴퓨터 공유 폴더 저장
  2. 클라이언트/서버 방식 : CVS,SVN
  3. 분산저장소 방식 : Git 

빌드 자동화 도구 : Ant, Maven, Gradle, Jenkins

Gradle : Groovy 기반

Jenkins 자바 기반