이제 정보처리기사가 딱 10일 남았다.
여태까진 필기하면서 암기했는데 시간이 너무 오래걸리기도 하고 필기한것을 다시 리마인드 시킬겸 키워드로 정리좀 해보려고한다!
객체지향 분석 방법론 종류와 만든이
- OOSE (야콥슨)
-> 유스케이스에 의한 접근 방법 - OMT (럼바우)
-> 객체 모델링 -> 동적 모델링 -> 기능 모델링 순서로 진행 - ** 객체 모델링 ** 요구하는 객체를 찾고, 객체들 간의 관계 정의하여 ER 다이어그램을 만드는 과정까지 모델링 ** 동적 모델링 ** 시간의 흐름에 따라 객체들 사이의 제어흐름, 동작 순서 등의 동적인 행위를 표현하는 모델링 ** 기능 모델링 ** 자료 흐름도 (DFD) 활용하여 표현
프로젝트 관리 3대 요소
- 사람(People)
- 문제(Problem)
- 프로세스(Process)
비용산정 모형 분류
-> 비용산정 모형은 하향식 산정방법과 상향식 산정방법이 존재한다
- 하향식 산정방법 : 경험이 많은 전문가에게 비용산정 의뢰
- 전문가 판단
- 델파이 기법
- 상향식 산정방법 : 세부적인 요구사항과 기능에 따라 필요한 비용을 계산
- LoC
-> S/W 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법 - ex) 총라인 수가 50000라인, 프로그램의 월 평균 생산성이 200라인, 개발에 참여할 프로그래머가 10인 일 때, 개발 소요기간?
(50000/(200*10) = 25개월 - Man Month
- COCOMO 모형
-> 보헴이 제안한 것으로, 원시 프로그램의 규모인 LoC에 의한 비용 산정 기법임
비용 견적의 강도 분석 및 비용 견적의 유연성이 높아 소프트웨어 개발비 견적에 널리 통용 되고 있음반분리형(Semi-Detached)
: 30만 라인 이하 - 내장형(Embedded)
: 30만 라인 이상 - 조직형(Organic)
: 5만 라인 이하 - 풋남
-> Ralyeig-Norden 곡선의 노력 분포도 이용
-> SLIM : 렐리 노든 곡선과 풋남 예측 모형을 기초로 개발된 자동화 추정 기구 - 기능점수(FP; Function Point) 모형
-> 요인별 가중치를 합산하여 총 기능점수를 산출하며 총 기능점수와 영향도를 이용하여 기능점수를 구한 후 이를 이용해서 비용을 산정하는 기법
- LoC
일정관리 모델
-> 프로젝트가 일정 기한 내에 적절하게 완료될 수 있도록 관리하는 모델
- 종류
- 주공정법
: CPM 이용해서 일정 계산할 때, 임계경로 -> 제일 오래걸리는 경로 선택 - PERT : 일의 순서를 계획적으로 정리 비관, 중간, 낙관치
- 중요 연쇄 프로젝트 관리 존재
- 주공정법
위험관리
- 대응 전략
- 회피, 전가, 완화, 수용
로킹 기법
-> 트랜잭션이 사용하는 데이터 항목에 대하여 잠금을 설정한 트랜잭션이 해제 할때까지 독점적으로 사용할 수 있게 상호 배제 기능 제공
MQTT (Message Quewing Telemetry Transport)
-> IoT관련 프로토콜 : Publish / Subscribe 방식의 라이트 메세징을 전송하는 프로토콜
- 무선 LAN의 반이중방식 : CSMA/CA
- 유선 LAN의 반이중방식 : CSMA/CD
라우팅 프로토콜 알고리즘
- 거리 벡터 알고리즘
-> 목적지까지 최적 경로를 산출하기 위한 라우팅 프로토콜 알고리즘, 벨만-포드 알고리즘 사용 - 링크 상태 알고리즘
-> 라우팅 프로토콜 알고리즘, 링크 상태 정보를 모두 라우터에 전달하여 최단 경로 트리
절차형 SQL
- 프로시저
: 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합 - 사용자 정의함수
: 일련의 SQL 처리 수행, 수행 결과를 단일 값으로 반환 - 트리거
: 데이터 베이스에서 삽입, 갱신, 삭제등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
의존성 역전의 원칙
-> 실제 사용 관계는 바뀌지 않으며, 추상을 매개로 메세지를 주고받음으로써 관계를 최대한 느슨하게 만드는 원칙
지역성
- 시간 : 최근 사용되었던 기억장소들이 집중적으로 액세스
- 공간 : 일정 위치의 페이지를 집중적으로 액세스
- 순차 : 데이터가 순차적으로 액세스
OLAP (온라인 분석처리)
-> 데이터를 전략적인 정보로 변환, 의사결정을 지원하는역할
다단계 피드백 큐 (MLFQ)
-> FCFS(FIFO)와 라운드 로빈 스케줄링 기법 혼합한 알고리즘
자료 사전 기호
- = ~ 로 구성되어
- + 자료의 연결
- () 자료의 생략
- {} 자료의 반복
- [] 자료의 선택
- ** 자료의 주석
GRANT 명령
-> [그온투] GRANT 권한 ON 테이블 TO 사용자 WITH GRANT OPTION(다른 사람과 권한을 나누어 가질 수 있는 옵션)
결합도
-> 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모둘간의 상호 의존성을 의미
데 -> 스 -> 제 -> 외 -> 공 -> 내
결합도 낮은 순에서 높은 순임 ( 낮을 수록 높은 품질을 가짐)
병행 제어 기법
로 낙 타 다
- 로킹
- 낙관적 검증
- 타임 스탬프 순서
- 다중버전 동시 제어
대칭키 암호화 알고리즘
- DES : 1975 연방 표준국 (NIST)에서 발표
- SEED : 1999 한국 인터넷 진흥원 (KISA)
- AES : 2001 표준 기술 연구소(NIST)
- ARIA : 2004 국가정보원과 신학 연구협회
- IDEA : DES를 대체 하기 위한
- LFSR : 스트림 암호화 알고리즘
라우팅 프로토콜 ( 라우팅 프로토콜 알고리즘 과 헷갈 X)
- RIP(Routing Information Protocol)
-> 거리 벡터 라우팅 기반 - OSPF
-> 링크 상태 라우팅 기반 - BGP
-> TCP 연결을 통해 자치 시스템으로 라우팅 정보를 신뢰성 있게 전달
취약점 공격
- XSS (Cross Site Scripting) : 검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우, 사용자가 해당 웹 페이지를 열람함으로써 웹페이지에 포함된 부적절한 Script 수행되는 공격
- CSRF: Cross Site Request Forgery : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 되는 공격
- SQL 삽입 : SQL 구문을 삽입, 실행
루트킷 (RootKit) , 크라임 웨어 (Crimeware)
- 루트킷 : 시스템 침입 후 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이 목마 설치, 원격 접근 , 내부 사용 흔적 삭제 등 불법적인 해킹에 사용되는 기능을 제공하는 프로그램의 모음
- 크라임 웨어 : 온라인 상에서 범죄와 같은 불법적인 행위를 수행하기 위해 제작된 컴퓨터 프로그램, 공격용 툴 킷
분석 자동화 도구 CASE
- 상위 : 계획수립, 요구분석, 기본설계 단계를 다이어그램으로 표현
- 하위 : 구문 중심 편집 및 정적 동적 Test 지원
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터 타입[제약조건]
-> ALTER TABLE 부서 MODIFY 부서번호 INTEGER PRIMARY KEY
회복 기법
회로체그
- 로그 기반 회복기법
- 지연 갱신 : 트랜잭션이 완료되기 전까지 데이터 베이스 기록 하지 않음
- 즉각 갱신 : 반대로 바로 갱신함
- 체크 포인트 회복 기법 : 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원
- 그림자 페이징 회복 기법 : 복제본
TCL 명령어
- 커밋(Commit)
- 롤백(Rollback)
- 체크포인트(CheckPoint)
HIPO
- 가시적 도표 : System의 전체적인 기능과 흐름 보여주는 계층 구조
- 총체적 도표 : 입력, 처리, 출력에 대한 전반적인 정보를 제공
- 세부적 도표 : 기본 요소들을 상세히 기술
병행 제어 미보장 시 문제점
- 갱신 손실 : 먼저 실행된 트랜잭션의 결과는 나중에 실행된 트랜잭션이 덮어쓸 때발생
- 현황 파악오류 : 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생
- 모순성 : 두 트랜잭션이 동시에 실행되어 데이터 베이스의 일관성 결여
- 연쇄복귀 : 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지 않는다.
통합 테스트
-> 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 검증하는 테스트
- V 모델 (단 통 시 인)
선점형 , 비선점형 스케쥴링
- 선점형 : 하나의 프로세스가 CPU 차지하고 있을 때, 우선 순위가 높은 프로세스가 CPU 점유
- 알고리즘 : 라운드 로빈, SRT, 다단계 큐, 다단계 피드백 큐
- 비선점형 : 한 프로세스가 CPU 할당 받으면, CPU 변환까지 다른프로세스 CPU 점유 불가
- 알고리즘 : 우선순위, 기한부, FCFS, HRN, SJF
- SJF : 가장 작은 서비스 시간을 갖는 프로세스가 종료시 까지 자원을 점유
- HRN : SJF 의 약점인 기아현상을 보완
- 알고리즘 : 우선순위, 기한부, FCFS, HRN, SJF
데이터 베이스 암호화 방식
- API 방식 : Application
- TDE 방식 : DB 자체 암호화
분산데이터 베이스 비트코인 기반
-> 블록 체인
S/W 아키텍쳐 4+1 뷰
- 유스케이스 뷰 : 유스케이스 또는 아키텍쳐 도출, 다른 뷰를 검증하는데 사용
- 논리 뷰 : 시스템의 기능적인 요구 사항
- 프로세스 뷰 : 비기능적인 속성, 자원의 효율적인 사용, 병행동기, 비동기, 이벤트 처리
- 구현 뷰 : 개발 환경 안에서 정적인 S/W 모듈의 구성을 보여줌
- 배포 뷰 : 매핑
해시 함수 (Hash Function)
- 해시 함수 : 임의의 길이를 갖는 값을 입력 받으면 고정된 길의 값 출력
- SET : 온라인상의 안전한 거래를 위해 VISA와 Master Card 에서 개발
데이터 베이스 (데이터 베이스 문제는 쿼리만 써놓겠다 다시 보면서 이런 문제였겠네 생각)
- SELECT 학번 FROM 학생 WHERE 이름 LIKE '유%' ORDER BY 학년 DESC;
- SELECT A. 자격증번호 AS 자격증번호, A.자격증명 AS 자격증명, B.응시료 AS 응시료 FROM 자격증 Inner JOIN B ON A.자격증번호 = B. 자격증번호
- SELECT 특성,AVG(무게) AS 무게평균 FROM 행성 GROUP BY 특성;
대칭 키 암호 방식
- 블록 암호 방식 : DES, AES, SEED (긴 평문 암호화)
- 스트림 암호 방식 : RC4 (암호문 생성)
데이터 무결성
-> 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는다.
흐름제어, 정지대기 (TCP)
- 흐름 제어 (Flow Control)
: 과잉 패킷 입력, 패킷 분실 막도록 패킷의 흐름 조절 - 정지 대기
: 손실된 프레임 1개를 전송, 수신자의 응답 기다림
데이터 베이스 (데이터 베이스 문제는 쿼리만 써놓겠다 다시 보면서 이런 문제였겠네 생각)
- SELECT 학번, 이름 FROM 학생 WHERE 학년 in (3, 4)
- SELECT DISTINCT 학년 FROM R1; // DISTINCT(중복제거) 의 경우 동일한 튜플 제거
UI 품질 요구사항
- 신뢰성
- 성숙성
- 고장 허용성
- 회복성
재사용 종류
- 재공학 : 기존 S/W 버리지 않고 기능 개선 , 새로운 S/W 로 재활용
- 역공학 : S/W에 대한 대한 디버깅, 디컴파일 등의 분석을 통해 ~원리 알고리즘을 역으로 분석하여 재구성
- 재개발 : 완전히 새로운 System을 개발
데이터 베이스 (데이터 베이스 문제는 쿼리만 써놓겠다 다시 보면서 이런 문제였겠네 생각)
- CREATE INDEX 학번인덱스 ON 학생(학번);
인터페이스 감시 도구
- SCOUTER : 인터페이스 감시 기능
- JENNIFER : 성능을 모니터링하고 분석해주는 APM S/W
DataBase 암호화 방식
- API 방식
: 애플리케이션 레벨에서 암호화 - Plug in 방식
: 모듈이 db 서버에 설치, 부하 발생 가능 - TDE 방식
: DBMS 커널이 자체적으로 암 복호화 - Hybrid 방식
: API 방식과 Plug - in 방식 결합
해시 암호화 알고리즘
- MD5 : MD4를 개선, 1991년 R.rivest
- SHA-1 : 1993년 NSA에서 미 정보 표주
- SHA-256/384/512 : SHA의 한 종류, AES의 키 길이 128, 192, 256대응
- HAS-160 : 국내 표준 서명 알고리즘
TCP 의 특징
- 신뢰성 보장 : 패킷 손실, 중복, 순서 바뀜
- 연결 지향적 특징 : UDP는 비연결성, TCP는 연결지향
- 흐름 제어 : 송신, 수신 속도 일치
- 혼잡 제어 : 혼잡시 송신률 감속
데이터 베이스 (데이터 베이스 문제는 쿼리만 써놓겠다 다시 보면서 이런 문제였겠네 생각)
- SELECT * FROM 성적 ORDER BY 수학 DESC , 과학 DESC
페이지 교체 기법
- FIFO : 가장 먼저 들어와 가장 오래 있던 페이지 교체
- LRU : 사용된 시간 확인, 가장 오랫동안 사용되지 않은 페이지 선택 교체
- LFU : 참조 회수가 가장 적은 페이지 교체
보안 관련 기술 및 시스템
- DLP (Data Loss Prevention) : 조직 내부의 중요 자료가 외부로 빠져나가는 것을 탐지
- DRM (Digital Right Management) : 디지털 콘텐츠에 대한 관리정보를 지정
비대칭 키 암호화 알고리즘
- RSA : 1997년 3명 MIT 수학교수
- ECC : 1985년 ~사람이 RSA 암호 방식에 대한 대안
- ElGamal : 1984년에 제안한 공개키 알고리즘
UDP 프로토콜 간략히
- 비신뢰성
- 순서화되지 않은 데이터그램 서비스
- 실시간 응용 및 멀티캐스팅 기능
- 단순 헤더
보안 관련 용어
- 이블 트윈
- 난독화
- 랜섬웨어 : 악성코드의 한 종류로 감염된 시스템의 파일들을 암호화하여 복호화 못하도록함
데이터 베이스 (데이터 베이스 문제는 쿼리만 써놓겠다 다시 보면서 이런 문제였겠네 생각)
- SELECT A. 자격증명, B. 자격증 번호, B.응시료 FROM 자격증 A RIGHTJOIN 응시료 B ON B. 자격증번호 = A.자격증 번호
- 문법
-> SELECT A.컬럼, A.컬럼2 .. B.~ FROM 테이블 1 A RIGHT JOIN 테이블 2 B ON 조인조건 WHERE 검색조건
데이터 베이스 장애요소
- 실행 장애
- 시스템 장애
- 트랜잭션 장애
- 미디어 장애
국제 프로세스 품질 표준
- CMMI
-> S/W 개발 능력/성숙도 평가 및 프로세스 개선 활동의 지속적인 품질 개선 모델
S/W 공학의 법칙
- 브룩스의 법칙 : 지체되는 S/W 발 프로젝트에 인력을 추가하는 것은 개발을 늦출 뿐이다.
- 파레토의 법칙 : 80 대 20의 법칙, 결함 집중
- 롱테일의 법칙 : 사소해 보이는 80 % 의 다수가 20 % 의 소수 핵심보다도 뛰어난 가치 창출
Network 계층의 protocol
- IP : 송수신간의 패킷 단위로 데이터를 교환하는 넽,워크에서 정보를 주고 받음
- ARP : IP -> MAC
- RARP : MAC -> IP
- ICMP : IP 패킷 처리할 때 문제 발생 시 문제 알려줌
- IGMP : 인터넷 그룹관리 Protocol
- 라우팅 프로토콜
- 내부: RIP, OSPF
- 외부 : EGP, BGP
전송 계층과 응용 계층 사이에서 클라이언트와 서버간의 웹데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 Protocol
-> SSL/TLS
- IPSec : IP 계층에서 무결성과 인증 보장
- S - HTTP : 웹 상에서 네트워크 트래픽 암호화
EAI 구축 유형
포허메하
- Point to Point : 가장 기초적인 어플리케이션 통합 방법
- Hub and Spoke : 단일의 접점의 허브 시스템을 통하여 데이터 전송하는 중앙 집중식
- Message Bus : 어플리케이션 사이 미들웨어를 두어 연계하는 미들웨어 통합 방식
- 하이브리드 : 그룹 내부 hun and spoke, 그룹간에는 메세지 버스 사용