정보처리기사 실기기정리1
<무선통신기술(네트워크기술)>
- 피코넷(PICONET) : 블루투스나 UWB를 이용하여 수십미터 미만의 좁은 공간에 다수 장치들이 독립된 네트워크를 형성하는 무선통신기술
- UWB(Ultra Wide Band) : 500MHz~1GHz 초광대역폭의 초고속 무선통신기술(벽투시,차량충돌방지 등 사용)
- 지그비(Zigbee) : IEEE 802.15 기반의 저속/저전력 메시 네트워크 방식을 사용하는 IoT 표준기술
- MQTT : Message Queue Telemetry Transport :: IoT 장치, 텔레메트리 장비의 메시지큐를 전달하는 저전력 프로토콜
- Small Cell : Macro Cell과 대비되는 낮은 전송파워/높은 커버리지를 갖는 소형 기지국
- 애드혹네트워크 : 기지국 없이 이동 호스트들로 네트워크를 구성. 오지탐험, 전쟁터, 재난구조 등에 사용됨
- 메시네트워크 : Mesh Network :: 기존 무선랜의 한계를 극복하기 위해 만들어졌으며, 대규모 디바이스 네트워크에 최적화된 차세대 네트워크 기술
- 소켓 : 네트워크를 경우하는 프로세스 간 통신의 접속점으로 서버-클라이언트 사이에서 데이터를 송수신하는 기술
- NAT : Network Address Translation :: 여러 Host가 1개의 공인 IP를 사용하여 인터넷 접속하기 위해 네트워크 주소를 변환하는 기술
- EDI : Electronic Data Interchange :: 전자문서 교환, 기업간 발주, 송장 등 상업거래를 온라인으로 전달하는 방식
- WBAN : Wireless Body Area Network :: 체내 혹은 신체접촉 근거리 무선 네트워크
- MEC : Mobile Edge Computing/Cloud :: 모바일 기지국 + 분산 클라우드 컴퓨팅 = 모바일 코어망 혼잡도 ↓
<정적 테스트 유형>
- [리뷰] :(관기인워동) 전문가가 참여하여 산출물 결함 & 프로젝트 진행상황 검토
- 관리리뷰(Management Review) : 프로젝트 진행사항에 대해 관리자 관점에서 전반적 검토
- 기술리뷰(Technical Review) : 기술적 관점에서 변경사항 적절성이나 대안 등을 검토
- 인스펙션(Inspection) : 전문가, 팀이 검사를 수행하는 공식 검토 방법
- 워크쓰루(Walk Through) : 검토자료를 회의전에 배포해서 사전 검토 수행
- 동료검토(Peer Review) : 2~3명의 동료가 진행하는 검토 수행
[정적 분석] : 분석자동화 툴(Lower Case)로 정적테스트 수행
<분석 자동화 도구>
- Upper Case : 계획이나 요구도 등 상위수준을 다이어그램(DFD)으로 표현 및 UI 지원
- Lower Case : 정적∙동적 테스트, 시스템 명세서 및 소스코드 생성 지원
<조인 종류>
- Inner Join : NULL 출력 X
- Outer Join : NULL 출력 O(다 긁어옴)
- Left Outer Join : A 값 다 긁어옴(B에 NULL 존재)
- Right Outer Join : B 값 다 긁어옴(A에 NULL 존재), 첫 줄 기준점이 B가 되어야 함(나머지는 똑같게).
- Full Outer Join : A,B 값 다 긁어옴(A,B에 NULL 존재)
- Cross Join : A X B 출력(3 X 3 = 9개 레코드 출력), on조건 필요 없음
예시) select A.자격증번호 as 자격증번호, A.자격증명 as 자격증명, B.응시료 as 응시료 from 자격증 A left outer join 응시료 B on A.자격증번호 = B.자격증번호;
예시) select B.자격증번호 as 자격증번호, A.자격증명 as 자격증명, B.응시료 as 응시료 from 자격증 A right outer join 응시료 B on A.자격증번호 = B.자격증번호;
예시) Select A.자격증번호 as 자격증 번호, A.자격증명 as 자격증명, B.자격증번호 as 자격증 번호, B.응시료 as 응시료 from 자격증 A cross join 응시료 B;
<물리적 조인 종류> : 정중해
- 정렬합병조인(Sort Merge Join) : 조인대상이 넓어 두 테이블 선 정렬 후 합병하는 조인
- 중첩반복조인(Nested Loop Join) : 선행 테이블 액세스 먼저하고 후행 테이블 조인
- 해시조인(Hash Join) : 해시함수를 사용하여 조인
<JSON과 친구들>
- JSON(JavaScript Object Notation) : <속성-값 쌍>, <키-값 쌍>으로 이루어진 데이터 오브젝트를 휴먼리더블 텍스트 형태로 전달하는 개방형 표준 포맷으로, AJAX에서 많이 사용하고 XML을 대체하는 주요 데이터 포맷
- AJAX : Asynchronous Javascript And XML :: 웹앱에서 JS와 XML을 이용한 비동기식 통신 방법
- WSDL : Web Service Description Language :: 웹서비스의 웹서비스명, 포맷, 프로토콜명 등 상세정보(Description)을 XML 형태로 제공하는 언어
- XML : eXtensible Markup Language :: HTML의 단점을 보완한 마크업 언어로, 휴먼리더블 텍스트 형태로 마크업 포맷을 정의한 메타언어.
- XML + 언어 =WSDL
XML + 자바 = AJAX
XML + 프로토콜 = SOAP
XML + 대체 = JSON
XML + 검색 = UDDI
<REST와 친구들>
- REST : REpresentation(표준) State Transfer :: 웹과 같은 분산하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처
- CoAP : Constrained Application Protocol :: M2M IoT 장비간 비동기적으로 이벤트를 송수신하는 REST 기반의 IoT 프로토콜(M2M IoT: Machine to Machine 사물간 지능통신)
<REST 3요소> : 리메메
- 리소스(자원), 메서드(처리), 메시지
<요구사항 정의 절차> : 도분명확
- 요구사항 도출 : 수집된 요구사항을 구체적으로 표현
- 요구사항 분석 : 도출된 요구사항이 완전성/일관성을 갖추었는지 분석
- 요구사항 명세 : 문서화하는 단계(정형/비정형 명세)
- 요구사항 확인 및 검증 : 요구사항을 이해했는지 확인(Validation)하고 명세서의 완전성/일관성 검증(Verification)
<요구사항 명세기법>
- 정형 명세기법 : 수학적 언어/표기법으로 요구도 서술
- 비정형 명세기법 : 자연어 기반으로 요구도 서술
<요구사항 수집기법> : 델롤워설
- 델파이 기법 : 전문가의 경험적 지식으로 요구사항 수집
- 롤플레잉 : 각자 맡은 역할을 연기하면서 요구사항 수집
- 워크숍 : 단기간에 집중적으로 정보 획득하여 요구사항 수집
- 설문조사 : 설문지/여론조사 등 간접적 방법으로 요구사항 수집
<병행제어>
- 정의 : 다수 사용자, 다수 Tx환경에서 DB의 일관성/무결성 유지를 위해 상호작용을 제어하는 직렬화 기법
- 병행제어 종류(로다낙타)
- 로킹(Locking) : 한 자원당 한 Tx만 액세스 할 수 있도록 Lock 하여 Tx 순차적 진행을 보장하는 직렬화 기법
- 다중버전동시성제어(MVCC) : Multi Version Concurrency Control :: Tx의 타임스탬프(TS) vs 데이터의 TS를 비교 → 직렬성이 확보되는 Tx 채택
- 낙관적검증(Validation) : 일단 Tx 수행. 이후 처리가 적절한지 무결성 검증 후 DB 반영
- 타임스탬프순서(TS Ordering) : Tx수행직전 데이터에 TS 부여 → 부여된 시간에 따라 순차적으로 Tx 수행
- 병행제어 미보장시 문제점(갱현모연)
- 갱신손실(Lost Update) : 나중 Tx 결과 → 이전 Tx 결과를 덮어쓰기 하면서 오류 발생
- 현황파악 오류(Dirty Read) : Tx 중간 처리 결과를 다른 Tx가 참조하면서 오류 발생
- 모순성(Inconsistency) : 동시에 두 Tx가 실행되면서 DB 모순성 발생
- 연쇄복귀(Cascading Rollback) : 하나의 데이터를 다수 Tx가 공유 시, 한 Tx의 처리 취소명령이 씹히는 현상
<정규화> :: 원부이결다조
- 1NF : 원자값으로 구성 :: 한 레코드에 값 2개 들어있음
- 2NF : 부분함수 종속제거 :: A&B→D, B→C 관계
- 3NF : 이행함수 종속제거 :: A→B, B→C, A→C 관계
- BCNF : 결정자 함수이면서 후보키가 아닌 것 제거 :: A→B, B→C 관계이나 결정자함수면서 후보키 아닌 상태
- 4NF : 다치 종속 제거 :: A→B, A→C 관계(유일하게 튜플이 만들어내는 종속)
- 5NF : 조인 종속 제거 :: 조인되어있는거 분리
<DFD 흐름도 구성요소> : 처데데단
- 처리기(Process) : O로 표시
- 데이터 흐름(Data Flow) : →로 표시
- 데이터 저장소(Data Store) : =으로 표시
- 단말(Terminator) : ㅁ로 표시
<모델링 절차> : 요개논물
- 요구사항 분석 : 요구도 정의
- 개념 모델링 : 추상적 모델링. 주제영역과 핵심데이터 간 관계 정의
- 논리 모델링 : 관계(Relationship), 속성(Attribute), 키(Key) 등 도출
- 물리 모델링 : DBMS 특성(무일회보효)에 맞는 물리적 스키마 생성
<논리 데이터 모델링 종류> : 관계네
- 관계 데이터 모델 : 논리구조=테이블, 관계=1:1, 1:M, M:N
- 계층 데이터 모델 : 논리구조=트리, 관계=1:N
- 네트워크 데이터 모델 : 논리구조=그래프, 관계=N:M
<SW SDLC 단계> : 요설구테유
- 요구사항 분석 단계 : 요구도 정의
- 설계 단계 : 수행방법을 논리적으로 결정
- 구현 단계 : 실제 프로그램 작성 단계
- 테스트 단계 : 요구도 만족 여부 검사/평가
- 유지보수 단계 : 시스템이 인수되고 나서 발생하는 모든 활동
<ISO 9126 SW 품질특성> : 기신사유효이
- 기능성(Functionality) : 요구도 만족해?
- 신뢰성(Reliability) : 요구도 유지 가능해?(성고회)
- 성숙성 : 고장회피 가능?
- 고장허용성 : 고장버티기 가능?
- 회복성 : 데이터 복구 가능?
- 사용성(Usability) : 사용하기 쉬워?
- 유지보수성(Maintainability) : 변경 쉬워?
- 효율성(Efficiency) : 적은 자원으로도 성능 나와?
- 이식성(Portability) : 설치 쉬워?(적설대)
- 적용성(Adaptability) : 다른조치 없이 돌아가?
- 설치성(Installability) : 설치 쉬워?
- 대체성(Replaceability) : 다른 SW 대신 이거면 돼?
<자료구조 종류>
- PUSH/POP : 데이터 큐에 올리기/꺼내기
- 데크(Deque:Double Ended Queue) : 양쪽에서 큐 삽삭가능
- 선형리스트 : 배열
- 연결리스트 : 포인터
<자바문법>
- print/println차이 : 줄바꿈 X / 줄바꿈 O
- continue : 컨티뉴 만나면 다음 for문으로 건너 뜀
- %o %x %X : 8진수 16진수(소문자) 16진수(대문자)
- a[10][8]의 a.length는? : 10
- double num =(int) 135 /(int) 10은? : 13.0
- class Dog extends Animal : Dog(자식)가 Animal(부모) 클래스를 상속(class Animal로 정의되어있음)
- class Dog implements Animal : Dog(자식)가 Animal(부모) 인터페이스를 상속(Interface Animal로 정의됨) 최상단에서 부모 클래스의 멤버 메서드가 뭐가 있는지 편의상 명시적으로 보여주는 것이 목적
- 공식 1) new 구문의 오른쪽 클래스를 가장 먼저 읽는다.(생성자 리드과정)
- 공식 2) 부모클래스가 상속되있으면 부모클래스를 더 먼저 읽는다.(생성자 리드과정)
- 공식 3) 부모클래스를 읽는 과정에서 멤버메서드 이름이 클래스명(인자없어야됨)과 동일하면 생성자이므로 읽고(대소문 구별함), 인자가 있거나 이름이 다르면 메서드이므로 무시하고 건너뛴다.(생성자 리드과정)
- 공식 4) new 구문의 오른쪽에 선언한 포맷과 동일한 포맷으로 자식클래스의 멤버메서드 이름이 있으면 생성자이므로 읽고, 다르면 메서드이므로 무시하고 건너뛴다.(생성자 리드과정)
예를들어) parent p = new child()이면 자식클래스 생성자 리드시 child()를 읽고(포맷다르면 건너뜀)
parent p = new child(int 5)이면 자식클래스 생성자 리드시 child(5)이면 읽는다(포맷다르면 건너뜀)
new구문 왼쪽은 구조체처럼 묶어서 쓰려고 하는거(의미X) 무조건 오른쪽꺼 따라감
예를들어) 부모, 자식 둘 다 info가 있다고 할 때,
Parent p = new child(); -> p.info()는 child의 info 쓴다
child p = new child(); -> p.info()는 child의 info 쓴다
<V&V 테스트 종류>
- 검증(Verification) : 개발자 관점에서 명세서 보면서 논리적으로 체크(개발과정체크)
- 확인(Validation) : 사용자 관점에서 실제 TC를 만들어 기능 정상작동 체크(개발결과체크)
<메타데이터와 자료사전>
- 메타데이터 : 데이터의 의미 파악을 위한 데이터
- MDR : 메타데이터 레지스트리 :: 표준화된 메타데이터 관리를 위한 메타데이터용 DB
- 자료사전(DD) : 조직에 속해있는 다른 사용자들에게 특정 자료가 무엇을 의미하는지 알려주기 위한 문서
- = + () {} [] ** : 정의 연결 생략가능 반복 선택 주석
<인증기술> : 지소생특
- 지식 기반 인증 : ID/PW
- 소지 기반 인증 : 공인인증서, OTP
- 생체 기반 인증 : 지문, 홍채
- 특징 기반 인증 : 서명, 발걸음, 몸짓
<Tx 주요 특성> : ACID
- Tx 정의 : 더 이상 쪼갤 수 없는 작업의 기본단위로, 처리 결과가 All or Nothing으로 나뉨
- Atomicity(원자성) : 더 이상 쪼갤 수 없는 작업의 기본단위로, 처리 결과가 All or Nothing으로 나뉨
- Consistency(일관성) : Tx 성공시 DB는 항상 일관됨
- Isolation(격리성) : Tx 중간 연산 결과를 다른 Tx가 접근 불가함
- Durability(영속성) : 완료된 Tx의 DB는 영구 저장됨
<EAI 구성요소> : 어브비플메(어도비로 풀메)
- EAI : Enterprise Application Integration :: 기업에서 운영되는 이기종 플랫폼/APP을 연계(통합)해주는 솔루션
- 어댑터 : 데이터 입출력도구로 EAI의 핵심엔진
- 브로커 : 데이터 전송시 데이터 포맷, 소스코드 변환
- 비즈니스 워크플로우 : 기업 내의 workflow대로 업무처리
- EAI 플랫폼 : 이기종 시스템 간 애플리케이션 상호 운영
- 메시지 큐 : 비동기 메시지를 사용하는 응용프로그램간 데이터 전달
<EAI 구축유형> : 포허메하

<ESB와 EAI 차이>
- ESB : Enterprise Service Bus :: 기업에서 운영되는 이기종 플랫폼/APP을 연계(통합)해주는 솔루션
- ESB : 전사 시스템(서비스) 통합, 메시지 버스만 사용
- EAI : Application 레벨의 통합, 포허메하 모두 사용
<이상현상> : 삽삭갱
- 이상현상(Anomaly) : 데이터를 DB에 저장할 때 데이터 중복으로 릴레이션 조작시 발생하는 이상현상
- 삽입이상 : 데이터가 삽입 실패하는 현상
- 삭제이상 : 데이터 삭제시 공유된 다른 데이터도 삭제되는 현상
- 갱신이상 : 데이터 업데이트 실패하는 현상
<스크럼기법>
- 스크럼 기법 : 매일매일 정해진 시간, 장소에서 짧게 미팅하는 것
- 백로그 : 요구도
- 스프린트 : 2~4주 짧은 개발기간
- 번다운차트(Burn Down Chart) : 남은 시간 대비 백로그를 그래픽으로 표현한 차트
<페이지 교체기법>
- FIFO(First IN First OUT) : 가장 먼저 들어와 가장 오래 있던 페이지 업데이트
- LRU(Least Recently Used) : 오랫동안 사용하지 않은 페이지 업데이트
- LFU(Least Frequently Used) : 참조한 횟수가 가장 적은 페이지 업데이트
<페이징기법 문제점과 해결방안> : 스워페
- 스레싱(Thrashing) : 계속적인 Page Fault로 인해 프로세스 처리시간<페이지 교체시간이 되는 현상
- 워킹 세트(Working Set) : 자주 참조되는 Page 집합을 주기억장치에 상주시켜 페이지 교체를 줄이는 기법
- 페이지 부재빈도(PFF) : Page-Fault Frequency :: PF율의 상/하한선을 정해 직접 PF율을 컨트롤하는 기법
<데이터 저장소>
- 데이터 웨어하우스(DW) : 다량의 데이터가 정제되어 저장되어있는 전사 통합 관리 DB로 다차원분석도구(OLAP)를 통해 효율적 의사결정이 가능.
- 데이터 마트(DM) : 특정 조직/특정 사용자가 관심있는 데이터를 담는 작은 규모의 데이터 웨어하우스.
- 디지털 아카이빙 : 장기보관이 필요한 데이터를 변환/압축/저장하여 DB화하는 작업
- 윈도함수 : OLAP 함수라고도 하며, DB를 OLAP 분석하기 위해 만들어진 표준 SQL에 추가된 함수
<OLAP 종류>
- OLAP : Online Analytical Processing :: DM 또는 DW에 저장되어있는 대용량 데이터를 고속으로 다차원 분석하는 SW
- MOLAP : 물리적 다차원 DB를 갖는 OLAP
- ROLAP : 서버-클라이언트의 관계형 DB를 갖는 OLAP
- HOLAP : OLAP(속도)+ROLAP(대용량)
- OLTP : Online Tx Processing :: OLAP에서 호스트가 DB에 액세스 후 빠르게 결과 리턴해주는 기술
<OLAP 연산> : 롤드슬다피
- Roll-Up : 구체적데이터 → 요약데이터 접근
- Drill-Down : 요약데이터 → 구체적데이터 접근(더 깊게 드릴다운)
- Slicing : 데이터큐브 중 1조각 열람
- Dicing : 다차원 값 연산
- Pivoting : Cross Table(다차원 테이블)의 차원 변경
<공유매체 다중접근방식>
- CSMA/CD 방식 : Collision Detection :: 유선 LAN에서 채널 사용중인지 체크 후 전송하는 방식
- CSMA/CA 방식 : Collision Avoidance :: 무선 LAN에서 아예 충돌자체를 회피하여 전송하는 방식
<비즈니스 연속성 용어>
- RTO(Recovery Time Objectives) : 롤백까지 걸리는 시간
- RPO(Recovery Point Objectives) : 롤백 목표 지점
- DRP(Disaster Recovery Plan) : 운영 불가시 대비책 수립
- DRS(Disaster Recovery System) : 통합 재난 복구센터
- DRS 유형 : Mirror Site(RTO 즉시), Hot Site(4시간 이내), Warm Site(수일~수주), Cold Site(수주~수개월)
- BCP(Business Continuity Plan) : 롤백에 대한 계획 수립
- BIA(Business Impact Analysis) : BCP 구축을 위한 장애시 영향성 분석
<라우팅 알고리즘>

- Static : 미리 정적으로 경로정보 라우터에 저장하여 중개
- Dynamic : 그때그때 동적으로 최적경로를 계산하여 변경
- IGP : Internal Gateway Protocol
- EGP : External Gateway Protocol
- Distance-Vector 알고리즘 : 벨만-포드 알고리즘을 이용하여 목적지까지 거리와 방향 결정하는 알고리즘
- Linked-State 알고리즘 : Dijkstra 알고리즘을 이용하여 최단 경로 트리를 구성하는 알고리즘
- Path-Vector 알고리즘 : 거리가 아닌 가장 짧은 경로와 방향을 결정하는 알고리즘
- RIP : Routing Information Protocol :: UDP에서 사용(AS 내에서 사용, 15홉 제한)
- OSPF : Open Shortest Path First :: Flooding(변경내역 있을때만 전송)에서 사용
- BGP : Border Gateway Protocol :: TCP에서 사용(AS 상호간 데이터 전송)
<디지털 저작권 관리>

- 클리어링 하우스 : DRM 정산소
- 패키저 : 콘텐츠+메타데이터로 배포가능한 단위
- DRM컨트롤러 : 다운받은 콘텐츠 이용권한 통제
- 보안컨테이너 : 안전하게 유통하는 유통망
<절차형 SQL> : 프사트
- 프로시저 : 쿼리의 집합
- 사용자 정의함수 : 쿼리의 집합 + 단일값 리턴
- 트리거 : 삽삭갱 이벤트 발생시 자동으로 관련 작업이 실행되는 절차형 SQL
<객체지향 설계원칙> : SOLID
- S Single Responsibility Principle : 단일책임의 원칙 :: 1클래스당 1목적(1책임)으로 설계
- O Open Close Principle : 개방 폐쇄의 원칙 :: 구성요소는 확장에는 열려있고 변경에는 닫혀있도록 설계
- L Liskov Substitution Principle : 리스코프 치환의 원칙 :: 하위클래스는 언제든지 상위클래스로 치환가능
- I Interface Segregation Principle : 인터페이스 분리의 원칙 :: 사용하지 않는 IF는 구현 X
- D Dependency Inversion Principle : 의존성 역전의 원칙 :: 의존관계는 최대한 느슨하게 하여 추상을 매개로 메시지 교환
<방향그래프>
- 방향그래프 : 정점을 연결하는 선에 방향이 있는 그래프(E:Edge 간선, N:Node 정점)
- 최대 E : n(n-1) & 복잡도 V = E - N + 2(맥케이브 순환복잡도라고 함)
<형상관리>
- git : 리누스 토발즈가 리눅스 커널 개발을 위해 만든 분산형 형상관리 시스템
<지역성> : 시공순
- 시간 지역성 : 최근 사용된 메모리만 계속 액세스
- 공간 지역성 : 특정 페이지만 계속 액세스
- 순차 지역성 : 데이터가 항상 순차적으로 액세스
- 온톨로지(Ontology) : 실세계에 존재하는 모든 정보를 컴퓨터가 이해할 수 있도록 서술해놓은 개념화 명세서
- 시맨틱웹(Semantic Web) : 정보를 온톨로지 형태로 표현하고 이를 컴퓨터가 처리하도록 하는 지능형 웹
<스케줄링 종류>
[선점형 스케줄링] : RS2ML :: 우선순위 높은 놈이 있으면 할당 뺏김
- RR(Round Robin) : ms단위로 공평하게 시분할 할당(Context Switching)
- SRT(Shortest Remaining Time) : 처리까지 남은시간 짧은거 먼저
- MLQ(Multi Level Queue) : 우선순위 높은거 먼저
- MLFQ(Multi Level Feedback Queue) : FIFO + RR(처음엔 FIFO, 나중엔 RR)
[비선점형 스케줄링] : 삐뽀삐뽀 성훈이 DP에 잡혀가요 :: 작업 종료까지 할당 안뺏김
- FIFO(First In First Out) : 먼저온거 먼저
- SJF(Shortest Job First) : 빨리 끝나는거 먼저
- HRN(Highest Response Ratio Next) : SJF 하다가 오래 기다린거 먼저
- Deadline : 시일 촉박한거 먼저
- Priority : 우선순위 높은거 먼저
<일방향 암호 방식>
- MAC : Message Authentication Code :: 메시지 인증 코드로 암호인증(키 사용 O)
- MDC : Modification Detection Code :: 변경 감지 코드로 암호인증(키 사용 X)
<암호화 알고리즘>

- 대칭키 암호화 알고리즘 : 암호화와 복호화에 같은 암호키를 쓰는 알고리즘
- 비대칭키(공개키) 암호화 알고리즘: 암호화와 복호화에 다른 암호키를 쓰는 알고리즘
- 해시암호화 알고리즘 : 해시함수를 이용하여 해시값을 생성하는 알고리즘
- 블록 암호화 방식 : 고정된 길이의 입력 블록을 고정된 길이의 출력 블록으로 변환하는 방식
- 스트림 암호화 방식 : 무한으로 이어지는 유사난수를 비트단위로 암호화하는 방식
- DES : 70년대 미국 NIST&IBM
- AES : 2001년 미국 NIST
- SEED : 한국 KISA
- ARIA : 한국 국정원
- RC4 : XOR연산으로 바이트단위 처리(최초)
- LFSR : Linear Feedback Shift Register :: XOR연산 후 비트 단위를 시프트 시켜 암호화(널리 사용)
- 디피헬만 : 이산대수난제(최초)
- RSA : 큰인수의 곱을 소인수분해
- ECC : 타원곡선
- Elgamal : 이산대수난제(업버전)
- MD5 : MD4 업버전 모델 - 128bit 해시값 생성
- SHA-1 : DSA(전자서명 알고리즘)에서 사용 - 160bit 해시값 생성
- SHA-256/384/512 : SHA-1 대체 & AES 사용 - 256/384/512 bit 해시값 생성
- HAS-160 : KCDSA(국내표준전자서명알고리즘)에서 사용
<개발 모델>
- 내용합치기 : CBD, 매시업
- 일정관리모델 : CPM, CCPM, PERT
- 품질평가모델 : CMM(I), SPICE
- SW비용산정모델 : LoC, PUTNAM, COCOMO
- SA 비용평가모델(CEM) :(SACAA, 사카) SAAM, ATAM, CBAM, ADR, ARID
- SDLC 모델 :(폭프나반) 폭포수, 프로토타입, 나선형, 반복적
- SW 개발방법론 :(구정컴객애제) 구조적, 정보공학, 컴포넌트기반, 객체지향, 애자일, 제품계열 방법론
- 마이클 형제 : 5 Force, 6 Sigma
- 매시업 : 웹에서 제공되는 정보&서비스를 조합해 새로운 만드는 애플리케이션 기술(CBD는 뒤에 서술)
- CPM : 자원제약고려 X하여 일정 계산
- CCPM : 자원제약고려 O하여 일정 계산
- PERT : 3중추정(Best/Worst/Median) 후 일정계산
- CMM(I) :(초관정정최) 5레벨로 SW개발 성숙도 평가
- 초기화단계(1인캐리), 관리단계(프로세스정의), 정의단계(프로세스활용), 정량적관리단계(프로세스통제), 최적화단계(신기술도입)
- LoC : 라인수대로 비용 산정, 원시코드수의 3점추정 후 비용 계산
- Man Month = LoC / 프로그래머당 월간생산성
- 프로젝트 기간 = Man Month / 프로젝트 인력
- PUTNAM : 베트남 인력시장, SDLC 단계별 필요인원을 산정하여 비용 산정하는 모델
- COCOMO :(조반임) 보헴이 제안한 프로그램 규모에 따른 비용산정비용(LoC와 비슷)
- 조직형(Organic Mode) : 라인수 ~50k
- 반분리형(Semi-Detached Mode) : 라인수 50k~300k
- 임베디드형(Embedded Mode) : 라인수 300k~
- SAAM : 기능성+변경용이성 관점에서의 CEM(Cost Evaluation Model)
- ATAM : SA 품질 속성 관점에서의 CEM
- CBAM : ATAM의 경제적 요구도 만족 관점에서의 CEM
- ADR : SA 구성요소간 응집도 관점에서의 CEM
- ARID : SA 구성요소 중 특정부분의 품질 관점에서의 CEM
- 폭포수 모델 : 각 단계를 완벽하게 구현하고 넘어가는 개발방법론(백도 불가)
- 프로토타입 모델 : 핵심기능을 프로토타입으로 만들고 고객의 피드백은 반영하는 형태의 개발방법론
- 나선형 모델 : 위험을 최소화하기 위해 점진적으로 완벽하게 구현하는 개발방법론
- 반복적 모델 : 구축대상을 반복적으로 개발하여 성숙도를 높이는 개발방법론
- 구조적 방법론(SD) : Structural Development :: 시스템을 기능단위로 묶어 개발하는 방법론(절차지향)
- 정보공학 방법론(IED) : Information Engineering Development :: 정보시스템 등 대형 프로젝트 개발을 위해 주기를 갖고 개발하는 방법론
- 컴포넌트기반방법론(CBD) : Component Based Development :: 컴포넌트를 조립해 하나의 응용 프로그램 개발
- 객체지향 방법론(OOD) : Object Oriented Development :: 객체를 기본단위로 사람이 세상을 바라보는 방식으로 개발
- 애자일 방법론(AD) : Agile Development :: 사람 중심의 빨리, 일단 개발 - SCRUM, XP
- 제품계열 방법론(PLD) : Product Line Development :: 임베디드 SW 개발을 위해 특정 제품에 필요한 기능 개발
- 5 Force : 마이클 포터, 경쟁강도 분석
- 6 Sigma : 마이클 해리, 품질 관리 기법
<회복기법> : 로체그
- 로그기반 Recovery
- 지연갱신 : Tx 끝나기 전엔 DB 반영 X
- 즉각갱신 : TX 중간에 DB 반영 O
- Checkpoint Recovery : 장애 발생시 Checkpoint 이전으로 롤백
- 그림자 페이징 Recovery : Tx 수행 전 데이터 백업 후 문제발생시 롤백
<DB 객체 종류> : 다오디토보
- DAO : Data Access Object :: 추상화하여 정보은닉하는 추상 객체
- DTO : Data Transfer Object :: 가변클래스를 갖는 객체
- VO : Value Object :: 고정클래스를 갖는 객체
<메모리 단편화 해결방법>
[단편화 종류]
- 메모리 단편화 : 메모리 분할 할당/사용/반납시 할당안돼 못쓴 짤짤이
- 내부 단편화 : 할당된 메모리에 프로세스 적재후 남은 짤짤이
[메모리 분산 할당 방법] : 페세페세
- Paging 기법 : 크기 동일하게 자르기
- Segmentation 기법 : 크기 가변적으로 자르기
- Paging/Segmentation 기법 : 하이브리드
[메모리 단편화 해결방법] : 버통압
- BMA : 버디메모리 할당 기법 :: 2n크기로 잘라 할당
- 통합(Coalescing) : 인접 단편화 영역 합치기
- 압축(Compaction) : 전체 단편화 영역 합치기
<HIPO 차트> : 가총세
- 정의 : Hierarchy Input Process Output 차트, IPO 현황을 계층적으로 보여주는 차트
- 가시적 도표 : 전체 Tree 보여줌
- 총체적 도표 : IPO 정보 보여줌
- 세부적 도표 : 디테일까지 보여줌
<DB 무결성 종류> : 개참속사키
- 개체 무결성 : PK ≠ NULL
- 참조 무결성 : 참조키값 = PK or NULL
- 속성 무결성 : 속성값 규칙준수
- 사용자 무결성 : 사용자 요구도준수
- 키 무결성 : 1튜플 당 1키값(중복 X)
<파이썬 문법>
- append(3) : 맨 뒤에 3 추가
- pop : 맨 뒤에 값 삭제
- remove : 특정 값 삭제
- a.extend(b) : a 맨 뒤에 b 값 합치기
- insert(0,3) : 0번째 자리에 3 추가
- range(0,2) : 0,1까지만 for문 수행
- end='' : 줄바꿈 안함
- // 와 % : 몫과 나머지
- a=[1,2,3,4,5]의 print(a[::-2]) : [5,3,1]이 출력됨, 꺽쇠 빼먹지 말 것
<RAID Level>
- RAID 정의 : 여러 하드디스크를 배열로 구성하여 데이터블록을 디스크들에 분산저장하는 기술
- 0레벨 : 스트라이핑 구현
- 1레벨 : 미러링 구현
- 2레벨 : 스트라이핑+해밍코드 패리티 사용
- 3레벨 : 3개이상 디스크로 패리티 단순제공(Dedicated)
- 4레벨 : 4개이상 디스크로 패리티 단순제공(Dedicated)
- 5레벨 : 3개이상 디스크로 패리티 배분(Distributed)
- 6레벨 : 4개이상 디스크로 패리티 배분(Distributed)
<기업 IT 서비스>
- ITIL : IT Infra Library :: 영국 정부의 IT 서비스 표준 참고문서
- ITSM : IT Service Management :: 사용자가 만족할 수 있는 서비스를 제공하는 고객중심의 IT서비스 관리기법
- SLA : Service Level Agreement :: ITSM을 이용하는 고객-서비스 제공자 간 서비스 공급 계약조건
- SLO : Service Level Objective :: SLA 공급 계약조건에 명시되어있는 서비스수준 목표
- SLI : Service Level Indicator :: ITSM 서비스 수준 평가 척도
<커널 종류>
- 마이크로 커널 : 전통 OS는 사용자 영역에 배치, HW 추상화를 최소화한 커널(임베디드용)
- 모놀리식 커널 : HW위에 가상계층(플랫폼)을 두어 복잡한 APP들을 동적 실행시키기 위한 커널
<테스트 종류> : 단통시인
- 단위테스트 : 단위모듈 테스트
- 통합테스트 : 모듈간 인터페이스 테스트
- 시스템테스트 : 시스템 전체 테스트
- 인수테스트 : 계약상 요구도 만족 테스트
<메모리 반입 기법>
- 예상 반입 기법(Static) : 메모리 미리 다 반영
- 요구 반입 기법(Dynamic) : 그때그때 반영
<기계학습(머신러닝) 유형>
- 지도학습 : 입력 X에 대한 출력 목표 Y 직접 제시(랜덤포레스트, 회귀분석)
- 비지도학습 : 입력 X에 대한 출력 목표 Y 추론(K-Means Clustering, 주성분 분석)
- 강화학습 : 입력 X에 대한 포상을 기억하고 스스로 학습(Q-Learning, 몬테카를로 트리 탐색)
- 딥러닝 : 인공신경망을 통해 인공지능을 만드는 머신러닝의 한 종류
- 합성곱 신경망(CNN) : Convolution Neural Network :: 컨볼루젼과 샘플링을 반복하면서 차원을 축소
- 순환 신경망(RNN) : Recurrent Neural Network :: 이전 순서의 은닉노드값을 다음 순서의 Input으로 활용하여 데이터흐름을 학습
- 심층신경망(DNN) : Deep Neural Network :: 입출력값 사이에 Hidden Layer를 심어 비선형 모델링이 가능
<4+1뷰> : 유논프구배
- 유스케이스뷰 : 다른 뷰 검증
- 논리뷰 : 요구사항 설명
- 프로세스 뷰 : 이벤트 처리/자원 사용 표현
- 구현 뷰 : 정적 모듈 구성
- 배포뷰 : 아키텍처안에서 컴포넌트 배치를 보여줌
<쿼츠 크론 표현식> : 초분시일월요연
- 연(년도)은 생략가능
- ? : 해당항목 미사용(요일에서 많이 사용함)
- 0/10 : 0분에서 10분단위로 시작
- 6L : 매달 마지막 토요일에 시작
<DB 고립화 수준> : 다른 Tx가 데이터 무결성을 해치지 않기 위해 잠금을 설정하는 정도
- Read Uncommitted : 언커밋된 데이터 r--
- Read Committed : 커밋된 데이터만 r--
- Repeatable Read : 데이터 연산중이면 종료까지 접근 불가
- Serializable Read : 데이터 영역 순차적으로 읽고 있으면 영역 전체 접근 불가
<결합도> : Coupling ::(내공외제스자) 모듈 외부의 상호의존성
- 내용 결합도 : 내용(변수&기능) 겹침(연관성 높음, 나쁜거)
- 공통 결합도 : 전역변수 겹침
- 외부 결합도 : 프로토콜 겹침
- 제어 결합도 : 제어요소 겹침
- 스탬프 결합도 : 자료구조 겹침
- 자료 결합도 : 전달되는 파라메터만 겹침(연관성 낮음, 좋은거)
<응집도> : Cohension ::(우논시절통순기) 모듈 내부의 상호의존성
- 우연적 응집도(Coincidental) : 우연히 묶임(연관성 낮음, 나쁜거)
- 논리적 응집도(Logical) : 비슷한 성격끼리 묶임
- 시간적 응집도(Temporal) : 같은 시간에 처리하는 놈들끼리 묶임
- 절차적 응집도(Procedural) : 순차적으로 처리하는 놈들끼리 묶임
- 통신적 응집도(Communication) : 같은 입출력끼리 묶임
- 순차적 응집도(Sequential) : A 아웃풋 → B 인풋으로 전달하는 놈들끼리 묶임
- 기능적 응집도(Functional) : 단일 목적을 위해 처리하는 놈들끼리 묶임(연관성 높음, 좋은거)
'자기계발 도전하기' 카테고리의 다른 글
| [데이터 사이언티스트 특강] 메타코드M 데이터 사이언티스트 직무 특강_대기업 계열사 모빌리티 관련 업계 (0) | 2024.05.18 |
|---|---|
| [취업] 3C4P 자소서 전략 feat.면접왕 이형 (1) | 2024.05.03 |
| [통계] 초보자들을 위한 통계 용어 한줄 정리 (0) | 2024.03.14 |
| [ADSP] 3과목 데이터 분석 문제 및 답안 (0) | 2024.03.11 |
| [월드코인] AI 관련 투자 feat.알트먼의 월드코인 (0) | 2024.02.24 |