정보처리기사 기반 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 순서
<단위 테스트 지원 도구>
- JUnit : Java 프로그래밍 언어에 사용되는 테스트 도구. 데이터를 테스트 한 다음 코드에 삽입
- NUnit : 모든 .net 언어에 널리 사용되는 단위 테스트 프레임 워크. 병렬로 실행할 수 있는 데이터 중심 테스트 지원
- JMockit : 오픈 소스 단위 테스트 도구. 기록 및 검증 구문으로 API를 Mocking 할 수 있음
- EMMA : 코드 분석 오픈 소스 툴 킷. JAVA 기반 이므로 외부 라이브러리 종속성이 없으며 소스 코드에 액세스 할 수 있음
- PHPUnit: PHP 프로그래머를 위한 단위 테스트 도구
<정규화 과정>
제1정규화 : 테이블 컬럼이 원자값(하나의 값)을 갖도록 테이블 분해
제2정규화 : 제1정규화를 만족하며, 완전 함수 종속을 만족, 기본키의 부분집합이 결정자가 되어서는 안되는 것
* [고객명, 나이, 매수종목] 컬럼이 존재할 경우 나이는 고객명에 종속되어 [고객명, 나이], [나이, 매수종목]
제3정규화 : 제2정규화를 만족하며, 이행적 함수종속 제거
* [고객정보, 매수종목, 주식가격] 컬럼이 존재할 경우 고객이 매수종목을 변경할때 주식가격도 변경이 필요하여 테이블을 분해하여 이행적 함수 종속 제거
BCNF 정규화 : 제3정규화를 만족하며 모든 결정자가 후보키가 되도록 테이블 분해
<트랜잭션의 특성>
- 원자성(Atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 함
- 일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함
- 격리성(Isolation, 고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
- 영속성(Durability, 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨