용's
데이터베이스가 나오기 전의 파일시스템은 중복된 정보들이 너무 많아서 이를 효율적으로 처리하기 힘들다는 단점이 존재. 따라서, 이러한 중복을 피해서 정보를 일원화하여 서로 관련성을 갖는 데이터의 집합을 모아놓은 것이 바로 데이터베이스(Database). 이러한 데이터베이스에는 일반적으로 데이터 항복의 각 값이 데이터베이스에 중복없이 한번만 기록될 때 데이터의 일관성이 유지된다고 한다(이러한 중복없이 데이터를 한번만 기록하기 위한 데이터베이스의 설계 이론을 정규화라 하고...) 하지만 항상 중복을 배제하기는 하지만 경우에 따라 불가피하게 중복을 허용하는 데이터가 있다. 이러한 것을 최소한의 중복 또는 통제된 중복이라고 한다. 즉, 정규화를 하면 데이터의 중복을 통제하여 중복이 최소화되도록 설계할 수 있다. ..
이번 N사 면접가서 굉장히 다양한 전공지식 질문을 받았는데... 대답 못한 질문이 대다수였지만 자꾸 생각나는 질문 하나를 이번 기회에 정리해보고자 한다. "프로세스간에 통신은 못하나요?" ※ 본 글은 한빛미디어의 "프로세스 간 통신 방법과 프로그램 작성" 문서 요약문이 되겠다. 운영체제 내에서 수행되는 프로세스들은 여러 가지 필요에 의해 서로 데이터를 주고 받을 필요가 있다. 데이터를 주고받는 프로세스들을 분류해보면 간단하고 짧은 메시지를 주고 받거나 복잡하고 긴 메시지를 주고받을 수 있고, 동일한 시스템의 프로세스끼리 통신을 하거나 서로 다른 시스템의 프로세스끼리 통신할 수 있다. 그리고 통신의 주체가 되는 양쪽 끝의 프로세스가 모두 사용자 프로세스일 수도 있고 한쪽이 시스템의 커널일 수도 있다. 간단..
가장 먼저 Pivot을 배열에서 하나 선택해서 Pivot을 기준으로 왼쪽에는 Pivot보다 작은 수가, 오른쪽에는 Pivot보다 큰 수가 정렬되도록 한다. 이를 위해 배열의 인덱스 0을 가르키는 Low(또는 Left)를 시작으로 인덱스를 하나씩 증가시키며 Pivot보다 큰 수를 찾는다. Left가 찾고 난 뒤, Right가 배열의 끝에서 점점 감소하며 Pivot보다 작은 수를 찾는다. 그러면 현재 Left는 Pivot보다 큰 수, Right는 Pivot보다 작은 수를 가르키고 있으므로 이 둘을 Swap한다. (위의 그림에서는 두 수를 모두 찾고 나서 swap하는 것이 아닌, 빈칸(Vac)이 생기는 곳에 곧바로 찾은 수를 넣고 있다. 예를 들면, Pivot으로 선택된 45가 있던 자리에 Vac이 생기고, ..