soft IT life
정보처리기사 2024 필기 대비 본문
소프트웨어 설계
요구사항 개발
- 요구공학 : 이해관계자 사이의 요구사항 관련 의사소통
- 요구사항 : 도출 -> 분석 -> 명세 -> 확인
- 미들웨어의 종류
- RPC - 원격프로시저 호출
- MOM - 메세지 지향 미들웨어(빠른 응답속도 필요하지 않음)
- ORB - 다른 시스템의 프로그램을 네트워크를 통해 호출 가능하게 해줌
- DB - JDBC ...
- TP모니터
- WAS - 웹 서버의 동적 기능 수행
- ESB
- 방법론
- 애자일 방법론
- XP - 의사소통, 피드백, 존중, 용기, 단순성
- 스크럼
- 구조적 방법론
- 애자일 방법론
- Use Case 다이어그램
- 사용자(Actor)의 관점에서 기능과 상호작용 등의 관계를 표현
- 구성요소 - 시스템, 액터, 유즈케이스(기능), 관계
- 관계
- 연관
- 포함 - 하나의 기능이 실행될 때 포함 관계의 케이스는 반드시 실행되어야 함
- 확장 - " 특정상황에서 실행되어야 함
- 일반화 - 상위 클래스로 갈 수록 일반적인 관계가 된다.
- (
구체화X -> 클래스 다이어그램)
모듈
- 공통모듈 명세기법 - 정확성, 명확성, 완전성, 일관성
응집도
우연적 | 모듈간 연관이 없음 |
논리적 | 유사한 성격을 갖거나하는 것을 한 모듈에서 처리 |
시간적 | 특정 시간에 처리되어야 하는 것을 한 모듈에서 처리 |
절차적 | 모듈 안 구성 요소들이 기능을 순차적으로 수행 |
통신적 | 동일한 입 출력을 사용하여 다른 기능을 사용 |
순차적 | 모듈 내에서 한 활동으로붙너 나온 값을 다른 활동에 사용 |
기능적 | 모든 기능이 단일한 목적을 위해 수행 (가장 높음) |
결합도
자료 | 모듈간 값(자료)만 전달 |
스탬프 | 모듈간 객체나, 배열 등을 전달 |
제어 | 모듈간 값+제어요소(if문) |
외부 | 외부로 선언한 변수를 다른 모듈에서 참조 |
공통 | 전역변수를 참조 |
내용 | 다른 모듈의 변수나 기능을 사용 (가장 높음) |
소프트웨어 아키텍처
- 아키텍쳐 패턴
- 계층(Layered)
- 클라이언트-서버
- 마스터-슬레이브
- Pipe-Filter : 데이터 흐름을 생성->처리를 위한 시스템 구조, 노드와 간선으로 이루어짐
- Peer to Peer : 분산컴퓨팅 구축 시, 컴포넌트 대칭 구조
- MVC
- Interpreter
객체지향 설계
- 구조적 프로그래밍 (순차 구조, 반복 구조, 선택 구조)
- 절차적 프로그래밍
- 객체지향 프로그래밍
- 구성 : Class(속성 및 행위 정의), Object(Class에서 만들어진 instance), Message
- Object는 message를 주고 받는다.
- 객체지향 특징
- 캡슐화 : 결합도 낮춤, 관련성이 높은 속성과 메소드를 하나로 묶는 것, 정보은닉을 통해 메세지 교환 시 인터페이스가 단순해짐
- 정보은닉 : 객체 내부의 속성과 메소드를 숨김 -> 인터페이스 단순화
- 추상화(Abstraction) : 현실 세계의 것을 성질 추출 및 시스템에 표현 (종류 - 기능 추상화, 제어 추상화, 자료 추상화)
- 상속성(ingeritance)
- 다형성(Polymorphism) : 오버로딩, 오버라이딩
- 객체지향 설계 원칙
- 단일 책임의 원칙(SRP) : 하나의 클래스는 하나의 책임
- 개방-폐쇄의 원칙(OCP) : 확장에 대해선 열려있고, 수정은 closed
- 리스코프치환 원칙(LSP) : 상위를 하위가 대체할 수 있어야함
- 인터페이스 분리 원칙(ISP) : 필요없는 인터페이스 영향 x
- 의존 역전 원칙(DIP) : 자주 변경되는 것을 의존하지 말 것
- 객체지향 분석 방법론
- Rumbaugh(럼바우) - 객체 모델(객체), 동적 모델(상태), 기능 모델(DFD)
- Booch(부치) - 미시적, 거시적 개발 프로세스
- Jacobson - Use Case 사용
- Coad&Yourdon - ERD
디자인 패턴
- 구성 요소 : 패턴, 문제, 해법, 결과
- GoF(Gangs of Four) 디자인 패턴 - 객체지향 설계 단계 중 재사용에 유용한 설계 디자인 패턴화
- 생성 - 객체 생성 (Factory Method, Singleton, Prototype, Builder, Abstract Factory)
- 구조 - 객체 조합 (Adaptor, Bridge, Composite, Decorator, Facade, Flyweight, Proxy)
- 행위 - 객체 간 행위 (Observer, Strategy, Command, State, Iterator, Interpreter, Memento, Template Method, Mediator)
인터페이스 요구사항
- 기능적/비기능적 요구사항
- 인터페이스 요구사항 검증 방법
- 프로토타이핑 - 시제품
- 테스트 설계 - Test Case 생성
- CASE - Computer Aid Software Engineering
- 요구사항 검토 - 동료검토, 워크스루(검토전 자료 배포, 짧은 회의, 결함발견), 인스펙션(개발자 외 전문가가 감사)
- 인터페이스 연계 기술
- DB Link
- DB Connection - WAS에서 connection pool 이용
- API, Open API
- JDBC
- Socket - 서버 통신을 위한 소켓 생성, 포트 할당 -> 클라이언트와 연결
- Web Service
- 시스템 연계 기술
- API, WSDL (Web Service Decription Language), UDDI (Universal Description, Discoverry, Integration), SOAP(Simple Object Access Protocol, 웹 서비스를 이용하기 위한 객체 간 통신 규약)
미들웨어
- 서버 간 통신 담당
- 종류
- DB - DBMS를 이용해 자료 교환
- TP-Monitor(Trasaction Processing Monitor)
- ORB
- RPC(Remote Procedure Call) - 분산처리 시스템 구현
- MOM(Message 기반 미들웨어) - 비동기식, 속도 필요없음
- WAS - 동적인 웹 서비스 제공, HTTP
- OTM(객체트랜젝션 모니터)
기술검토
- 동료검토, 워크스루(팀회의), 인스펙션(계획-사전교육-준비-회의-수정-후속조치)(ex 정형기술검토FTR)
- 정형기술검토 FTR
- 검토에만 집중, 바로해결필요x, 반박 제한, 논쟁 제한, 참가자 수 제한
프로그램 설계도
- NS Chart - 도형을 이용함. 이해하기 쉬움. 제어 논리 구조(연속, 선택, 반복)를 표현 but 화살표나 GOTO를 사용하진 않았음.
소프트웨어 개발
제품 소프트웨어 저작권
- DRM(Digital Rights Management)
- 디지털 컨텐츠의 생성부터 사용까지 모든 과정에 걸쳐 안전하게 관리 및 보호 + 접근 제한 기술
- 기술 요소 - 암호화, 키 관리, 암호화 파일 생성, 식별 기술, 저작권 표현, 정책 관리, 크랙 방지, 인증, 인터페이스, 이벤트 보고
제품 소프트웨어 메뉴얼 작성
- 작성 프로세스 - 작성 지침 정의 - 구성 요소 정의 - 내용 작성 - 검토
소프트웨어 국제 표준 품질 특성
- ISO/IEC 9126 - 품질 특성
- ISO/IEC 12119 - 테스트
- ISO/IEC 12207 - 체계적 프레임워크/ 생명주기 프로세스: 획득 - 공급 - 개발 - 운영 - 유지보수
- ISO/IEC 15504 - SPICE(Software Process Improvement and Capability determination) : 품질 및 생산성 향상
- ISO 9001 - 전 과정에 대한 인증
- CMM : 조직의 업무 능력(소프트웨어 개발 프로세스) 평가 기준 (초보 - 반복 - 정의 - 관리 - 최적)
- CMMI : 소프트웨어, 시스템, 프로덕트 포함 CMM의 발전
소프트웨어 품질 측정 시 관점별 분류
- 사용자 - 제품 신뢰성, 효율성, 용이성, 간결성
- 개발자 - 유지보수성, 이식성, 무결성, 사용성, 검증 가능성
- PM - 생산성, 제어 용이성
어플리케이션 테스트
- 소프트웨어 테스트 - 품질 향상, 오류 발견, 오류 예방
- 파레토 법칙 - 80:20 전체의 결과 80%가 원인 20%에 의해서 일어난다.
- 테스트 케이스
- 작성절차 : 테스트 계획 - 요구사항 정의 - 테스트 방법 결정 - 테스트 케이스 정의 - 테스트 케이스 타당성 확인
- 구성요소 : 식별자, 테스트 항목, 입력 명세, 출력 명세, 환경 설정, 특수 절차 요구, 의존성 기술
- 테스트 프로세스 : 계획 및 제어 - 분석 및 설계 - 구현 및 실현 - 평가 - 완료
- 클린코드 작성원칙 : 추상화, 의존성을 낮추고 독립성을 높인다, 가독성, 중복된 코드 제거, 단순성
- 하향식 : Stub(값을 넘겨주는 역할) / 상향식 : Driver(값을 받는 역할)
테스트 단계
- 단위 테스트 - 정적, 동적
- 통합 테스트 - 상향식, 하향식, 빅뱅, 백
- 시스템 테스트 - 기능/비기능 테스트
- 인수 테스트 - 알파(사용자+개발자)/베타(개발자)
테스트 케이스
테스트의 목표 및 테스트 방법을 결정하기 전에 테스트 케이스를 작성해야한다.(X)- 서비스 요구 사항을 준수하는지 확인하기 위해 '입력 값', '실행 조건', '예상 결과'의 집합
Test 기법(동적 테스트)
- white box test
- 프로그램 내부 구조, 동작을 디테일 하게 검사
- 내부 소스코드 테스트, 개발자 관점
- 문장검증, 선택검증, 경로검증, 조건검증
- black box test
- 소프트웨어 내부 구조나 작동 원리를 모르는 상테에서 동작 테스트
- 사용자 관점
- 동등 분할 기법, 경계값 분석 기법, 오류 예측 기법, 원인 결과 그래프 기법, 의사결정 테이블 테스팅
알고리즘
- 분할정복법 : 퀵, 병합 정렬
- 동적계획법 : 플로이드, 피보나치
- 시간 복잡도 : 알고리즘이 문제를 해결하기 위한 시간(연산의 횟수) (자료가 n이 증가할 때 증가하는 시간 계산)
- 순환 복잡도 : 복잡도 = 화살표 수 - 노드 수 + 2
- 정렬 종류
- 내부 정렬
- 삽입 정렬 : 두번째 값을 키값으로 설정하고 앞에 것과 비교하여 적절한 위치에 삽입(그 다음것이 키값이 됨 키값 아니었던 것)
- 59341 : 35941 -> 34591 ->13459
- 버블 정렬 : 인접한 데이터 비교하여 위치 변경 (1회전에 끝까지 입접한 값 비교. 1회전 끝나면 가장 큰값이 마지막으로 감)
- 34159 : 31459 -> 13459
- 선택 정렬 : n개의 레코드 중에서 최소값을 찾아 제일 앞의 값과 자리를 교체한다
- 69432 : 29436 -> 23496 -> 23469
- 삽입 정렬 : 두번째 값을 키값으로 설정하고 앞에 것과 비교하여 적절한 위치에 삽입(그 다음것이 키값이 됨 키값 아니었던 것)
- 선형 검색 - 검색을 수행하기 전에 반드시 집합이 정렬되어 있어야한다.(X)
- 시간복잡도 O(n2) - 선택정렬, 삽입정렬, 버블정렬
- 시간복잡도 O(n log 2 n) - 퀵정렬, 힙정렬, 병합정렬 -> 더 빠름
- 내부 정렬
자료구조
- 선형구조
- 리스트
- 선형 리스트
- 연결 리스트
- Stack : LIFO, 인터럽트 처리/서브루틴 호출 작업 등에 응용
- Queue : FIFO
- 데크 : 선형리스트 양쪽 끝에서 삽입과 삭제가 모두 가능
- 리스트
- 비선형구조
- 트리
- 구성요소
- 근노드 : 최상위 노드
- level : 근노드를 기준으로 특정 노드까지 경로의 길이
- depth : 근노드부터 최하위까지 노드 총 갯수
- 차수 : 노드에 연결된 차식 노드 총 갯수 (트리의 차수:트리의 노드 중 가장 큰 차수)
- 단말노드: 트리의 제일 마지막에 위치한 노드
- 트리 구조 순회
- PreOrder(전위순회) Root Left Right
- InOrder(중위순회) Left Root Right
- PostOrder(후위순회) Left Right Root
- 구성요소
- 그래프
- 최대 간선 수 = n(n-1)/2
- 트리
데이터베이스 구축
설계 단계
- 개념 - ERD 그림
- 논리 - 정규화, 스키마 정제, Transaction Interface
- 물리 - 저장 공간 및 성능 고려, 반정규화
트랜잭션 성질
- 원자성 - 모두 반영되거나 모두 반영 되지 않아야함
- 일관성 - 저장이되면 일관적으로 유지되어야 함 Consistency
- 영속성 - 트랜잭션 결과는 영구히 보존 Durability
- 격리성 - 트랜잭션끼리 영향이 없어야함
트랜잭션 마지막 연산이 실행된 직후, 모든 연산의 처리는 끝났지만 아직 DB에 반영하지 않은 상태는 ? -> Partially Commited (부분 커밋)
데이터 사전
- 시스템 카탈로그, 시스템데이터베이스
사용자가 생성, 유지, 수정 가능함(X)- DB의 메타데이터 저장
- 데이터에 접근하기 위해 필요한 위치정보는 데이터 디렉토리에 저장
정규화
- 1 정규화 - 도메인이 원자성
- 2 정규화 - 부분 종속 제거
- 3 정규화(완전 함수적 종속 상태) - 이행 종속 제거
- BCNF - 결정자이면서 후보키가 아닌 것 제거(모든 결정자가 후보키인 것)
- 4 정규화 - 다치 종속 제거
- 5 정규화 - 조인 종속
키
- 슈퍼키 - 유일성(0), 최소성(x)
- 후보키, 기본키, 대체키 - 유일성(0), 최소성(0)
무결성의 종류
- 개체 무결성 - 기본키는 null 값을 가질 수 없고, 중복 불가
- 참조 무결성 - 기본키에 존재하지 않는 값을 참조할 순 없다. null값을 가질 순 있음
- 도메인 무결성 - 정해진 범위 내의 데이터 값만 가질 수 있다.
이상
- 삽입 이상, 삭제 이상, 갱신 이상
관계 대수
- 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 방법
- 순수 관계 연산자
- Select(시그마) - 튜플의 집합 검색
- Project(파이) - 속성 집합 검색
- Join(><) 공통 속성 연결
- Division(나누기) - 특정 속성을 제외한 속성만 검색
- 집합 연산자
- U : 튜플의 합집합
- n : 튜플의 교집합
- - : 차집합
- X : 교차곱
View
- 가상의 테이블
- 뷰 위에 또 다른 뷰를 정의할 수 있음
- 보안성 측면에서 뷰를 활용할 수 있음, 수정 불가(creat, drop만 가능)
분산데이터베이스 시스템
- 논리적으로는 하나의 시스템이지만 물리적으로는 여러 개의 컴퓨터에 분산
- 목적
- 위치 투명성 : 물리적 위치를 사용자가 알 필요가 없다
- 중복 투명성 : 사용자에게 통지할 필요 없이 시스템 내의 자원을 자유롭게 복사할 수 있다
- 병행 투명성 : 다중 사용자들이 자원을 공유할 수 있다
- 장애 투명성 : 어느 시스템에 장애가 발생했는지 알 필요가 없다
- 개발 비용, 처리 비용 높음
- 주요 구성 요소 - 분산 처리기, 분산 데이터베이스, 통신 네트워크
병행제어
- 동시에 수행되는 트랜젝션들을 일관성 있게 처리하기 위해 제어하는 것 (ex) Locking
- 목적 -> 공유 최대화, 일관성 최대화, 활용도 최대화, 응답 시간 최소화
- 문제점 -> 비완료의존성, 연쇄 복귀, 모순성, 갱신분실
프로그래밍언어 활용
IP 주소체계
- IPv4
- 32bit(4byte) - 10진수 - 8bit씩 4부분
- 유니캐스트, 멀티캐스트, 브로드캐스트
- IPsec 프로토콜 별도 설치, SSL, SHTTP(보안기능이 없어서)
- 클래스 단위의 비순차적 할당(비효율적)
- 헤더 크기 가변
- IPv6
- 128bit(16byte) - 16진수 - 16bit씩 8부분
- 유니캐스트, 멀티캐스트, 애니캐스트
- 순차적 할당, 호스트 주소 자동 설정, 보안기능, 품질보장
- 헤더크기 고정
주소변환 기술 - 듀얼스택, 터널링, 변환
IP 프로토콜
- 비연결성, 비신뢰성
- Best Effort 원칙에 따른 전송 기능
- 패킷을 분할, 병합하는 기능을 수행하기도 함
OSI 7계층
계층 | 역할 및 특징 | 장비 | 데이터 단위 | 기타 및 프로토콜 |
7. Application | 정보 교환, 인터페이스 | Data | HTTP, FTP, POP, SMTP, telnet, DHCP, SNMP, DNS | |
6. Presentation | 데이터 암호화, 복호화, 압축 | Data | ||
5. Session | 통신 장치 간 상호작용 및 동기화, 세션 생성 | Data | ||
4. Transport | 오류검출 및 복구, 흐름제어, 중복검사, TCP/UDP(양종단간(End to End) 신뢰성 있는 정보 전달) | 포트번호 | Segment | TCP, UDP |
3. Network | 중계 노드를 통해 최적의 경로 설정, IP 주소 설정, 전달 | 라우터 | Packet | IP, ICMP(전송오류 정보 전송), ARP(IP->Mac), RARP(Mac->IP), X.25 |
2. Data Link | 물리적 연결로 두 장치간 신뢰성 있는 정보 전송 (Point-to-Point), Mac주소 |
브릿지, 스위치 | Frame | HDLC, PPP |
1. Physical | 물리적 데이터 전송(bit) | 케이블, 리피터, 허브 | bit | X.21 |
TCP/IP 프로토콜
- 인터넷에 연결된 서로 다른 기종의 컴퓨터 간에 데이터 송-수신이 가능하도록 도와주는 표준 프로토콜(TCP프로토콜(전송계층)+IP프로토콜(네트워크계층))
프로토콜의 3요소 - 구문, 의미, 타이밍
정보보안의 3요소 - 기밀성, 무결성, 가용성
기억장치 배치 전략
- First Fit - 적재할 용량이 담길 수 있는 공간이 있으면 바로 적재해버림
- Best Fit - 내부단편화가 가장 적게 생기는 공간을 계산하여 적재
- Worst Fit - 가장 큰 공간에 적재
- 내부단편화란? 적재 후 남는 자투리 공간 18 -> 20 = 2 / 외부단편화? 적재하지 못했을 때 못한 공간의 크기 21 -> 20 = 20
UNIX 시스템
- 쉘 - 명령어 해석기, 사용자와 인터페이스 역할, 반복적인 명령 프로그램(스크립트) 프로그래밍 기능 제공, 초기화 파일을 이용해 사용자 환경 설정
- 커널 - 명령어를 기반으로 동작 수행, 프로세스와 메모리 관리
TCP
- 3 way HandShaking - 연결형 서비스, 신뢰성
- 주소를 지정하고 경로를 설정함
- 트랜스포트 계층
UDP
- 비연결형 서비스(보내기만 하는 역할), 비신뢰성 단순한 헤더 구조
- 트랜스포트 계층에 존재
데이터 타입 중 시퀀스 타입, 순서에 따라 저장 가능 but 저장된 내용을 변경할 수 없는 타입 -> 튜플 타입
페이지 교체 알고리즘
- FIFO : 제일 먼저 추가 했던 페이지 교체
- LRU(Least Recently Used) - 가장 오래전에 참조한 페이지 교체(아래를 보면 5를 넣어야하는데 가장 오래전에 참조한 3과 교체)
- LFU(Least Frequently Used) - 가장 적게 참조한 페이지 교체
1 | 2 | 3 | 1 | 2 | 4 | 1 | 2 | 5 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | |
3 | 3 | 3 | 3 | 3 | 3 | 5 | ||
4 | 4 | 4 | 4 | |||||
0 | 0 | 0 | x | x | o | x | x | o |
변수명 작성 규칙
- C언어 : 대소문자, 숫자, _ (첫 글자에 숫자 불가)
- Python : 대소문자, 숫자, _ (첫 글자에 숫자 불가)
- Java : 대소문자, 숫자, _, $ (첫 글자에 숫자 불가)
정보시스템 구축관리
소프트웨어 생명주기
- 나선형 모델
- 계획 / 위험/ 개발 / 평가
- 반복하며 개발, 위험관리 측면에서 본 모델
- V 모델
- 개발단계-단위테스트(정적/동적)
- 설계-통합테스트(상/하향식/빅뱅/백본)
- 기능명세-시스템테스트(기능/비기능)
- 요구사항-인수테스트(알파/베타)
네트워크 신기술
- RIP Routing Information Protocol: 최단 경로 탐색, 벡터 라우팅 프로토콜, 홉(거릿값)_15홉 이하
- OSPF Open Shortedt Path First Protocol : 89번 프로토콜 사용, ICP, 링크 상태 라우팅 알고리즘
- MQTT(Message Queuing ...) 경량 메세지 전송 프로토콜. IoT 환경에서 사용
- 스마트 그리드 : 전령망 효율적으로 사용
정보시스템
- 고가용성 - 사용하고 싶을 때 사용해야한다. 다수의 시스템 동시 연결하여 각각 업무 수행
- 스턱스넷 - 대단히 정교한 웜
스토리지 시스템
- DAS : Direct Attach System, 데이터 저장장치를 어댑터에 직접 연결(네트워크 디바이스 없이)
- NAS : Network 네트워크 이용
- SAM : 네트워크 광채널을 이용
블루투스 관련 공격
- 블루버그 - 블투 장비사이의 취약한 연결 관리를 악용
- 블루스나프 - 블투의 취약점을 활용하여 장비의 파일에 접근
- 블루재킹 - 블투를 이용하여 스팸메일처럼 메시지를 익명으로 퍼트림
- 블루프린팅 - 블투 공격장치의 검색 활동
DoS 공격 - 정보보안 3요소중 가용성을 떨어트리는 공격이다. 사용자들이 서비스를 이용할 수 없게끔 만드는 것
- Smurf Attack - IP & ICMP 특성을 이용한 공격
- Ping of Death - 규정 이상의 ICMP 패킷으로 시스템 마비
- Land Attack - 출발지 IP & 목적지 IP가 같은 패킷을 만들어 보냄
- TearDrop Attack - 재조합 가능한 fragement number 조작
- SYN Flooding - TCP 연경과정의 취약점 이용
- UDP Flooding - 다량의 UDP 패킷 전송
- Ping Flooding - 특정사이트에 매우 많은 IMCP echo를 보냄
간트 차트
- Work Break Structure, 시간선 차트
- PERT/CPM 네트워크
- 임계경로
- 수평막대 - 각 작업에 필요한 시간 및 날짜
PERT 차트
- 작업들 간의 상호 관련성, 결정경로, 경계시간, 자원 할당 등을 제시한다.
Secure 코딩
- SQL Injection - SQL 쿼리 삽입
- 크로스사이트 스크립트 - CSS 검증되지 않은 스크립트 입력값으로 인해 브라우저에서 악의적인 코드 실행
- 운영체제 명령어 삽입 - OS 명령어 조작
- 자원 삽입 - 스크립트 라이브러리 등을 삽입하여 다른 브라우저를 바라보게 하는것(자원을 과도하게 저장시키거나 하는 등의 공격이 아님)
암호화 알고리즘
- 대칭키 알고리즘 (많은 양 가능, 속도 빠름, 키만 있으면 복화하가 가능하기에 위험, 키 교환 필요)
- DES - 64bit,
- AES - 128bit
- 비대칭키 알고리즘 (적은 양, 속도 느림, 공개키/개인키)
암호화 방식
- 단방향
- 해시 - 입력데이터를 고정 길이의 해쉬 값으로 변환 (SHA, MD4. MD5, N-NASH)
- 양방향
- 대칭키(개인키, 비밀키) - 암호화, 복호화 시 동일한 개인키 사용(빠름, 알고리즘 단순, 키 교환 필요) (DES, AES, SEED, RC4)
- 비대칭키(공개키) - 암호화 시 사용자에게 공개된 공개키 사용, 복호화 시 비밀키 사용(속도 느림) (RSA, ECC)
리눅스 권한
- read:4/write:2/excute:0
- 파일 - 666
- 디렉토리 - 777
상향식 비용 산정 기법 중 LOC 기법에서 예측치를 구하기 위해 사용하는 항목 -> 기대치, 낙관치, 비관치 (모형치X)
소프트웨어 공학의 3R -> 재공학, 역공학, 재사용 (재개발X)
tcp wrapper - 접속 인가 여부를 점검해서 인가된 경우 접속 허용, 그 반대는 거부할 수 있는 접근 제어 유틸리티
보안적 취약점 점검
- 관리적 관점 - 보안 체계가 존재하는지 점검
- 기술적 관점 - 서버, 네트워크, PC 보안 점검 등
- 물리적 관점 - 출입 통제 관리, 화재 등
보안 솔루션
- IDS : 침입 탐지 시스템 (HIDS:호스트 기반 / NIDS:네트워크 기반. 모든 패킷 탐지)
접근 통제 정책
- MAC(Mandatory Access Control) 강제적 접근 통제 - 중앙에서 자원의 보안 레벨을 주고 사용자의 보안 취급 인자를 비교
- DAC(Discretionary Access Control) 임의적 접근 통제 - 자원의 소유자가 타인의 접근을 허용
- RBAC(Role Based Access Control) 역할기반 접근 통제 - 조직 내 개인 역할에 따라 허용
접근 제어 모델
- BLP 모델 - 기밀성, 최초의 수학모델, No Read Up, No Write Down
- BIBA 모델 - 무결성, No Write Up, No Read Down
비용산정 모델
- 전문가 감정 기법, 델파이 기법(전문가+조정자)
- LOC(Line of Code)
- 원시 코드 라인 수의 비관치(1), 낙관치(1), 기대치(4)를 측정하여 예측치를 구하여 비용을 산정함
- 예측치 = 비관치+낙관치+기대치*4 / 6
- COCOMO(Constructive Cost Model)모형
-
- 프로젝트를 완성하는데 필요한 man-month로 산정 결과 나타냄
- 보헴이 제안, 원시 코드 라인 수
- 비교적 작은 규모의 프로젝트의 비용 추정
- 유형 : 5만 라인 이하 -> 단순형(Organic) / 30만 라인 이하 -> 중간형(Semi-detached) / 30라인 이상 -> Embeded
개발유형에 따라 object, dynamic, function 3가지로 구분(X)
인증 - Authentication 시스템 접근 허용 전에 사용자의 신원 검증
인가 - Authorization 검증된 사용자에게 권한과 서비스 허용
계정관리 - Accountion 사용자의 자원에 대한 사용 정보를 모아서 과금, 감사 등에 사용
'자격증' 카테고리의 다른 글
NCP 시험 준비 - Compute (0) | 2023.08.01 |
---|---|
NCA 자격증 시험 요약 (0) | 2023.07.25 |
정보처리기사 (0) | 2023.04.21 |