[정처기]정보처리기사 실기정리 1

정보처리기사 실기기정리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) : 단일 목적을 위해 처리하는 놈들끼리 묶임(연관성 높음, 좋은거)

출처: https://halfmoon.tistory.com/436