[기출] 정보처리기사 실기 2020년 1회 정리

생성일:

5 분 소요

XML

  • 웹브라우저 간 HTML 문법이 호환되지 않는 문제와 SGML의 복잡함을 해결하기 위하여 개발된 다목적 마크업 언어이다.
  • 다른 목적의 마크업 언어를 만드는데 사용된다
  • 유니코드 기반으로 다국어를 지원한다
  • 텍스트 형식의 데이터 포맷으로 다양한 플랫폼과 시스템에서 활용할 수 있다.
  • 사용자가 직접 문서의 태그를 정의할 수 있으며, 다른 사용자가 정의한 태그를 사용할 수 있다.
  • 트리 구조로 구성되어 있어 상위 태그는 여러 개의 하위 태그를 가질 수 있다.
  • 모든 태그는 종료 태그를 가져야 하며, 시작 태그와 종료 태그의 요소명은 동일해야 한다

JSON

  • 속성-값 쌍(attribute-value pairs)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷이다.
  • AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷이다.
  • 언어 독립형 데이터 포맷으로 다양한 프로그래밍 언어에서 사용되고 있다.

헤더(머릿말) - 2과목. 릴리즈 노트 작성

(참고 : https://m.blog.naver.com/hann726/222026606910)

릴리즈 노트

  • 개발 과정에서 정리된 릴리즈 정보를 소프트웨어의 최종 사용자인 고객과 공유하기 위한 문서
  • 소프트웨어 출시 후 개선된 작업이 있을 때마다 관련 내용을 릴리즈 노트에 담아 제공

일반적으로 포함되는 항목

  • Header(머릿말) : 릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜, 릴리즈 노트 날짜, 릴리즈 노트 버전 등
  • 개요 : 소프트웨어 및 변경사항 전체에 대한 간략한 내용
  • 목적 : 해당 릴리즈 버전에서의 새로운 기능이나 수정된 기능의 목록과 릴리즈 노트의 목적에 대한 간략한 개요
  • 문제요약 : 수정된 버그에 대한 간략한 설명 또는 릴리즈 추가 항목에 대한 요약
  • 재현 항목 : 버그 발견에 대한 과정 설명
  • 수정/개선 내용 : 버그를 수정/개선한 내용을 간단히 설명
  • 사용자 영향도 : 사용자가 다른 기능들을 사용하는데 있어 해당 릴리즈 버전에서의 기능 변화가 미칠 수 있는 영향에 대한 설명
  • SW 지원 영향도 : 해당 릴리즈 버전에서의 기능 변화가 다른 응용 프로그램들을 지원하는 프로세스에 미칠 수 있는 영향에 대한 설명
  • 노트 : SW/HW 설치 항목, 업그레이드, 소프트웨어 문서화에 대한 참고 항목
  • 면책조항 : 회사 및 소프트웨어와 관련하여 참조할 사항
  • 연락처 : 사용자 지원 및 문의 응대를 위한 연락처 정보

MD5

128비트 암호화 해시 함수이다. RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용된다. 1991년에 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안한 것.

원자성, 고립성(독립성) - 데이터베이스 트랜잭션의 4가지 속성

  • 원자성 : 트랜잭션은 연산들을 전부 실행하든지 전혀 실행하지 않아야 한다. 일부만 실행해서는 안된다.
  • 고립성(독립성) : 트랜잭션 실행 도중의 연산 결과는 다른 트랜잭션에서 접근할 수 없다
  • 일관성 : 트랜잭션이 성공적으로 실행되면 데이터베이스 상태는 모순되지 않고 일관된 상태가 된다.
  • 지속성 : 트랜잭션이 성공했을 경우 영구적으로 반영되어야 한다.

구문, 의미, 타이밍

*프로토콜의 3요소

  • 구문(syntax) : 데이터를 어떻게 구성할 지에 대한 형식, 구체적인 코딩 방법, 신호 레벨 등에 대한 형식을 규정
  • 의미(semantic) : 데이터에 대하여 구체적으로 어떻게 제어할 것인지에 대한 처리 방법과 에러가 발생했을 떄 어떻게 처리할 것인가에 대한 정보를 포함한다.
  • 타이밍(timing) : 통신이 이루어질 때 데이터를 주고 받을 속도에 대한 조절과 여러 데이터가 동시에 통신을 해야 할 경우 순서 관리를 위한 기법을 포함한다.

*프로토콜 - 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다.

결합도와 응집도

모듈의 기능적 독립성은 소프트웨어를 구성하는 각 모듈의 기능이 서로 독립됨을 의미하는 것으로, 모듈이 하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용을 배제함으로써 이루어진다. 모듈의 독립성을 높이지 위해서는 결합도는 약하게, 응집도는 강하게 만들어야 한다.

Lank Attack (랜드 어택)

*패킷의 출발지 주소나 포트를 임의로 변경하여 출발지와 목적지 주소(또는 포트)를 동일하게 함으로써 공격 대상 컴퓨터의 실행 속도를 느리게 하거나 동작을 마비시켜 서비스 거부 상태에 빠지도록 하는 공격 방법.

*패킷(packet) - 네트워크 전송의 용량 단위. 전송될 때 서로 교환되는 실제의 내용물로, 조각조각 분할된 파일 데이터에 주소와 에러 데이터 등이 기록된다.

물리 계층

OSI 7계층 중 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의하는 계층

OSI 7 레이어

(참고 : https://m.blog.naver.com/PostView.nhn?blogId=wlsdml1103&logNo=220935550458&proxyReferer=https:%2F%2Fwww.google.com%2F)

  1. 물리 계층 : ‘하위 계층’이면서, 소프트웨어와는 가장 거리가 먼 계층. 7계층부터 2계층을 거쳐 캡슐화가 완료된 데이터를 전기 신호로 바꾸어 전송하는 역할. 전송 데이터 단위는 비트(Bit)이다. 관련된 장비로는 ‘리피터’와 ‘허브’가 있다.
  2. 데이터링크 계층 : 2계층인 데이터링크 계층은 물리적인 링크를 통해 ‘노드 대 노드’ 즉, 인접한 두 장치간의 신뢰성있는 정보 전송을 감독한다. 물리 계층에서 받은 전기적 신호(비트 데이터)를 3계층인 네트워크 계층에서 사용할 수 있도록 오류를 검출 및 수정하여 오류가 없는 통신 채널로 변화시킨다. Mac과 LAN이 이에 해당. 관련된 장비로는 ‘스위치’와 ‘브릿지’가 있다.
  3. 네트워크 계층 : 3계층. 다중 네트워크 링크에서 패킷을 발신지로부터 목적지까지 전달할 책임을 가지고 있다. 대표적인 프로토콜은 IP(Internet Protocol)이며 관련된 장비인 ‘라우터’를 통해 IP주소를 이용하여 다른 네트워크상의 컴퓨터와 패킷을 주고 받을 수 있는 최적의 경로를 탐색한다.
  4. 전송 계층 : 4계층. 메시지 발신지와 목적지 간의 에러를 관리한다. 전송이 유효한지 확인하고 실패한 패킷은 다시 보내는 등 신뢰성있고 정확한 데이터 전송을 담당한다. 대표적인 프로토콜로는 TCP와 UDP가 있다. TCP는 연결지향성 프로토콜(신뢰성 보장)이고 UDP는 비연결지향성 프로토콜(비신뢰적).
  5. 세션 계층 : 5계층. 포트연결이라고도 불리며 통신 장치간의 상호작용을 설정하고 동기화한다. 호스트간의 최초연결을 가능하게 하며, 통신 중 세션 이상 상태(연결 끊김)상태를 복구하여 적절한 상태에서 통신이 이루어질 수 있도록 한다. (응용간의 질서 제어). 대표적 프로토콜로는 SSH, TLS가 있다.
  6. 표현 계층 : 6계층. 운영체제의 한 부분으로, 송신할때는 컴퓨터가 관리하는 방식으로 데이터를 변환하고 수신받을때는 유저가 볼 수 있는 방식으로 데이터를 변환시키는 과정을 담당한다(번역). 데이터의 인코딩, 디코딩, 암호화, 코드변환 등을 수행한다.
  7. 응용 계층 : 7계층. 사용자와 가장 밀접한 관계를 지닌다. 사용자가 네트워크에 접근할 수 있도록 도와주는 계층으로, 흔히 아는 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스라 생각하면 된다. 대표적인 프로토콜로는 Telnet(텔넷), FTP, SMTP, HTTP 등이 있다.

데이터 마이닝

많은 데이터 가운데 숨겨져 있는 유용한 상관관계를 발견하여 미래에 실행 가능한 정보를 추출해내고 의사 결정에 이용하는 과정을 말한다.

살충제 패러독스 - 애플리케이션 테스트 기본원리

동일한 테스트 케이스로 동일한 테스트를 반복하면 더이상 결함이 발견되지 않으므로 테스트 케이스를 지속적으로 개선해야 한다

비선점형 스케줄링 HRN의 우선순위 계산식

*우선 순위 = (대기 시간 + 서비스 시간) / 서비스 시간

*숫자가 클수록 우선순위가 높다

스케쥴링 : 프로세스가 생성되어 실행될 때 자원을 해당 프로세스에 할당하는 작업

  • 비선점형 스케줄링
    • 이미 할당된 자원을 다른 프로세스가 강탈할 수 없다.
    • 응답시간의 예측이 편하며, 일괄처리 방식에 적합하다.
    • 단점으로는 덜 중요한 작업이 자원을 할당받으면 중요한 작업이 와도 먼저 처리될 수 없다.
    • 종류 : HRN, SJF, FCFS, 우선순위, 기한부

LOC기법(원시 코드 라인 수)의 계산식

  • 개발 기간 = 노력(인월) / 투입 인원
  • 개발 비용 = 노력(인월) x 단위 비용
  • 노력(인월) = 개발 기간 x 투입 인원
  • 생산성 = LOC / 노력(인월)

예) 총 라인이 30000 라인, 개발자 5명, 인당 월평균 300라인을 개발할 때, 예상되는 시간은?

→ (30000 / 5) / 300 = 20개월

애플리케이션 성능 측정 요소 4가지

  1. 처리량 : 일정 시간 내에 애플리케이션이 처리하는 일의 양
  2. 응답 시간 : 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간
  3. 경과 시간 : 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
  4. 자원 사용률 : 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU 사용량, 메모리 사용량, 네트워크 사용량 등 자원 사용률

비정규화

시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 *정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 행위이다.

반정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있다.

  • 방법
    • 테이블 통합
    • 테이블 분할
    • 중복 테이블 추가 - 집계 테이블의 추가, 진행 테이블의 추가, 특정 부분만을 포함하는 테이블의 추가
    • 중복 속성 추가 등,,

*정규화 - 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정.(데이터의 중복을 줄이고 무결성을 높임)

정규화 과정: 비정규 릴레이션 -(도메인이 원자값)→ 1NF -(부분적 함수 종속 제거)→ 2NF -(이행적 함수 종속 제거)→ 3NF -(결정자이면서 후보키가 아닌 것 제거)→ BCNF -(다치 종속)→ 4NF -(조인 종속성 이용)→ 5NF

팬인, 팬아웃

  • 팬인 : 어떤 모듈을 제어(호출)하는 모듈의 수 (상위 모듈 수)
  • 팬아웃 : 어떤 모듈에 의해 제어(호율)되는 모듈의 수 (하위 모듈 수)

시스템의 복잡도를 최적화하려면 팬인은 높게, 팬아웃은 낮게 설계해야 한다.

댓글남기기