본문 바로가기
CS(computer science) 지식/정보처리기사 기반

정보처리기사 필기 2022년 04월 24일(2회) - 기반 요점 정리

by QueryJun 2023. 10. 23.

정보처리기사 기반 IT 전공

 

<GoF(Gang of Four) 디자인 패턴>

<이진 검색 알고리즘>

이진 탐색 동작 방식

1. 배열의 중간 값을 찾음

2. 중간 값과 검색 값을 비교

    2-1. 중간 값이 검색 값과 같으면 끝.

    2-2. 중간 값보다 검색 값이 크다면 오른쪽 구간을 탐색

    2-3. 중간 값보다 검색 값이 작다면 왼쪽 구간을 탐색

3.값을 찾거나 간격이 비었을 때까지 반복

 

<소프트웨어 공학>

<버전 관리 도구>

RCS(Revision Control System) - CVS와의 차이점은 소스 파일의 수정을 한 사람만으로 제한한다.

- 다수의 사용자가 동시에 파일 수정을 할 수 없도록 파일 잠금 방식으로 버전을 관리하는 도구이다.

- 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있다.

- 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스간 통신

 

RPC(Remote Procedure call) - 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스간 통신

 

<트리 순회 알고리즘>

전위 운행 (PreOrder) => Root, Left, Right 순서

중위 운행 (InOrder) => Left, Root, Right 순서

후위 운행 (PostOrder) => Left, Right, Root 순서

 

<단위 테스트 지원 도구>

  1. JUnit : Java 프로그래밍 언어에 사용되는 테스트 도구. 데이터를 테스트 한 다음 코드에 삽입
  2. NUnit : 모든 .net 언어에 널리 사용되는 단위 테스트 프레임 워크. 병렬로 실행할 수 있는 데이터 중심 테스트 지원
  3. JMockit : 오픈 소스 단위 테스트 도구. 기록 및 검증 구문으로 API를 Mocking 할 수 있음
  4. EMMA : 코드 분석 오픈 소스 툴 킷. JAVA 기반 이므로 외부 라이브러리 종속성이 없으며 소스 코드에 액세스 할 수 있음
  5. PHPUnit: PHP 프로그래머를 위한 단위 테스트 도구

<정규화 과정>

제1정규화 : 테이블 컬럼이 원자값(하나의 값)을 갖도록 테이블 분해

제2정규화 : 제1정규화를 만족하며, 완전 함수 종속을 만족, 기본키의 부분집합이 결정자가 되어서는 안되는 것

* [고객명, 나이, 매수종목] 컬럼이 존재할 경우 나이는 고객명에 종속되어 [고객명, 나이], [나이, 매수종목]

제3정규화 : 제2정규화를 만족하며, 이행적 함수종속 제거

* [고객정보, 매수종목, 주식가격] 컬럼이 존재할 경우 고객이 매수종목을 변경할때 주식가격도 변경이 필요하여 테이블을 분해하여 이행적 함수 종속 제거

BCNF 정규화 : 제3정규화를 만족하며 모든 결정자가 후보키가 되도록 테이블 분해

 

<트랜잭션의 특성>

- 원자성(Atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 함

- 일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함

- 격리성(Isolation, 고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함

- 영속성(Durability, 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨

반응형