이전글 - 해슁(Hashing) / 해쉬 알고리즘 / 해쉬 함수 충동 해결(Collision Resolution)에는 크게 두 가지 방법이 있다. 첫 번째는 체이닝(Chaining)으로 해쉬 테이블의 각 주소가 연결 리스트의 헤더 역활을 하고, 여기에 해당 주소로 들어오는 원소들이 연결 리스트(Linked List)로 매달린다. 두 번째는 개방 주소 방법인데, 체이닝처럼 추가 공간을 사용하지 않고 해쉬 테이블 안에서 충돌을 해결한다. 원래 들어갈 자리가 아니더라도 테이블의 다른 자리를 찾아 들어가게 된다. ① 체이닝(Chaining) 체이닝에서는 같은 주소로 해슁되는 원소를 모두 하나의 연결 리스트에 매달아 관리한다. 위 의 그림처럼 h(39) = h(13) = 0 인 경우 해쉬테이블의 0 인덱스는 39..
해쉬 테이블(Hash Tables) 일반적인 검색트리는 원소 하나를 저장하고 검색하는 데 평균적으로 의 시간이 걸리고, 최악의 경우 의 시간이 걸린다. 저장된 자료의 양에 상관없이 원소 하나를 저장·검색하는 데 항상 상수 시간에 가능하게 할 수 없는지 사람들은 요구하게 되었고, 이 꿈을 실현한 것이 해시 테이블이다. 해시 테이블은 자료의 저장·검색에 있어 극단적인 효율에 다다른 자료구조이다. 해시(Hash) 테이블은 원소의 값에 의해 결정되는 자료구조이다. 즉, 저장된 자료와의 비교를 통해 자리를 찾지 않고 단 한번의 계산으로 자리를 찾는다. 해쉬 함수 임의의 원소를 해시 테이블에 저장하려면 먼저 해당 원소의 해시값을 계산한다. 해시값은 해시 함수에 의해 계산된다. 해시 함수는 키값을 입력으로 받아 해시..
↓ 읽기전 손가락 꾹~ 은 오류해결의 지름길!!! 배틀필드3가 무료이벤트를 진행하면서 호기심에 다운받아 보았습니다. 하지만 오류투성이더군요. PunkBuster 지원팀에서도 오류해결 방법을 잘 모르는 것 같더군요... 게임을 3~5분정도하면 계속 튕기고.. 인터넷을 뒤져보아도 딱히 해결책이 없는 것 같아서 삽질 끝에 해결을 했습니다. 그래서 다른 분들도 삽질하지않도록 오류를 정리해서 올리겠습니다. 윈도우7, 윈도우8, 윈도우8.1 환경에서 배틀필드3 혹은 배틀필드4를 실행하실때의 오류입니다. 윈도우7/8/8.1 에서 배틀필드3를 실행하면 아래의 그림처럼 DirectX Error 오류가 뜹니다. 위 오류내용은 그래픽카드를 ADM계열을 쓰느냐 NVDIA계열을 쓰느냐에 따라 다르게 표시됩니다. 내용은 중요한 ..
윈도우 8, 8.1 에서 로그인 시 기본 설정으로 비밀번호를 입력하게 되어 있습니다. 가정에서 처럼 외부의 접근이 자주 있지 않은 곳에서는 자동로그인 설정으로 번거로움을 없앨 수 있습니다. 윈도우 바탕화면에서 "윈도우키 + R" 을 누르면 실행창이 열립니다.작업표시줄 왼쪽의 윈도우 그림의 오른쪽 클릭하셔서 "실행(R)"을 누르셔도 됩니다. (8.1만 가능) 실행 창이 열리면 위의 그림 처럼 "netplwiz" 를 입력하시고 "확인"을 누릅니다. 확인을 누르시면 위의 그림처럼 "사용자 계정" 창이 나타납니다."사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음(E)"의 체크를 해제하시고 "적용"을 누르시면 됩니다. 적용을 누르시면 위의 그림처럼 "자동 로그인" 창이 뜨며 "암호, 암호확인" 창에 로..
한국인터넷진흥원(이하 KISA)이 MS가 배포한 인터넷 익스플로러(이하 IE) 보안 업데이트를 반드시 적용하라고 당부했다. 최근 IE는 신규 취약점이 발견돼 해외에서 공격 사례가 보도된 바 있다. 이번 업데이트는 IE 모든 버전(6~11)이 대상이며, 최근 지원을 종료한 윈도 XP도 해당된다. 일반적으로 IE 보안 업데이트는 자동으로 적용되지만, 사용자가 자동 업데이트 설정을 비활성화하는 등 보안 업데이트 설치가 어려운 경우에는 '시작>모든 프로그램>Windows Update'를 직접 실행해 업데이트해야 한다.*윈도 자동 업데이트 실행 방법: (1) 시작>모든 프로그램>Windows Update 실행 혹은 (2) MS 홈페이지(http://go.microsoft.com/fwlink/?LinkID=4074..
↓ 읽기 전 손가락 클릭은 센스^^* 이번 해 지난 4월 17일에 OpenStack 의 9번째 릴리즈 IceHouse 가 나왔습니다. 이번 글에서는 DevStack을 이용하여 OpenStack IceHouse 구축에 대해서 다루어보겠습니다. 설치 환경 (Test environment) Host OS : Ubuntu 14.04LTS Desktop OpenStack Release : IceHouse 설치할 서비스 (The services deployed) 1. Compute (Nova) 2. Network (Neutron) 3. Object Storage (Swift) 4. Image Storage (Glance) 5. Block Storage (Cinder) 6. Identity (Keystone) 7. ..
DevStack 으로 OpenStack IceHouse 를 설치 중 다음과 같은 에러에 부딪혔습니다. [ERROR] /home/stack/devstack/functions-common:599git call failed: [git clone git://git.openstack.org/openstack* ~~] 그냥 git 다운로더가 소스를 제대로 받지 못하여 생기는 경우입니다.그냥 될때까지 ./stack.sh 를 반복하면 되는 문제입니다. 혹은 테스트 환경에서 git 프로토콜이 막혀서 생기는 현상일 수 도 있습니다.데브스택의 Git base 를 git 프로토콜에서 https 프로토콜로 변경하여 주면됩니다. $ vim local.confdevstack/stackrc 에서 98번째 라인을 보면 디폴트로 git..
우분투에서 update 를 하기위해 apt-get update 를 치면 Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable) 와 같이 에러가 뜨면서 업데이트가 제대로 안되는 에러가 발생하는 경우는 Ubuntu Software Server 와 같이 apt를 사용하는 어플리케이션이 실행 중일 때 발생하는 에러입니다. $ sudo rm /var/lib/apt/lists/lock 를 쳐줌으로써 apt 사용이 lock 된 것을 풀고 다시 실행하면 정상적으로 됩니다. $ sudo apt-get update
