리눅스에서 시스템의 전반적인 로그를 보여주는 /var/log/messages 가 존재함은 다 알것입니다. 하지만 우분투 12.04LTS를 설치하고 나서 로그를 볼려고 찾아보니 없더군요... 그래서 찾아보니 우분투에서 10.x부터 syslog 데몬인 rsyslogd에 무개를 실어감으로 인해 디폴트 값으로 /var/log/messages가 주석처리 되어있더군요. 치명적인 에러에 대한 로그는 /var/log/syslog 에 쓰여지고 info, notice, warn 에 대한 정보는 출력이 되지 않습니다. config 파일의 주석을 풀어줌으로써 기존과 같이 /var/log/messages를 사용할 수 있습니다. $ sudo vi /etc/rsyslog.d/50-default.conf를 통해 conf 파일을 열어..
↓ 읽기 전 아래의 손가락 버튼 눌러주는 센스^^ 이전 글에서 클라우드 컴퓨팅(Cloud Computing)이 무엇인지에 대해서 알아보았습니다. 이전 글 링크 : 2014/04/05 - [클라우드&오픈스택/클라우드] - 클라우드 컴퓨팅이란? 클라우드 컴퓨팅을 구현을 좀 더 편리하게 하기 위해서 클라우드 플랫폼이 생겨났고 그 중 가장 대표적인 것은 클라우드스택(CloudStack)과 오픈스택(OpenStack)입니다. 이번글에서는 클라우드계에서 가장 핫한 오픈소스 클라우드 플랫폼, 오픈스택(OpenStack)에 대해서 알아보겠습니다. 오픈스택(OpenStack)을 한 줄로 요약하자면, 오픈스택은 컴퓨터 하드웨어 위에 인프라를 서비스로 제공하게 해주는 Infrastructure as a Service(Iaa..
PC를 이용하다 기억에 남는 장면을 이미지 파일로 간직하는 방법은 여러 가지가 있지만, 우선 가장 간단한 방법은 윈도우 운영체제에서 기본적으로 제공하는 '캡처 도구' 소프트웨어를 이용하는 것이다. 이를 이용해 전체화면, 창, 사각형 등의 범위를 정해 캡처가 가능하다. 다만, 간편하긴 하지만 전반적인 기능이 너무 단순하고 캡처한 이미지를 편집하는 기능이 거의 없다시피 한 것이 아쉽다. 편집 기능이라고 해 봐야 펜 도구를 이용해 이미지 위에 간단한 메모를 할 수 있는 정도다. 이 외에도 화면 캡처를 돕는 다양한 소프트웨어가 나와있는데, 일부 제품은 기능이 부실하고, 또 일부 제품은 기능은 많은데 이 때문에 사용법이 복잡하고 시스템 자원을 많이 차지하기도 한다. 다양한 캡처 방식을 지원하면서 직관적인 편집 기..
읽기 전 손가락 눌러주는 센스 감사합니다^^ 요즘시대에 거의 모든 사람이 컴퓨터, 노트북, 태블릿PC, 스마트폰 중 하나 이상을 소유하고 있습니다. 각 가정에 컴퓨터나 노트북 둘 중 하나는 거의 한대씩은 있을 것입니다. 컴퓨터 게임, 서류작성, 인터넷 검색, 인터넷 쇼핑 등 많은 목적으로 사람들이 컴퓨터를 사용하고 있을 것입니다. 옛날이야 바이러스, 악성코드에 대해 사람들이 잘 알지도 못했고 백신을 사용하지도 심지어 백신의 존재조차도 몰랐습니다. 기업에서나 백신을 깔았을까 일반 사용자들은 전혀 무지했죠. 하지만 많은 사건들이 생기고 안철수박사께서 무료 V3를 배포함으로써 사람들이 점차 백신의 중요성을 느끼고 개인용 무료백신을 사용하기 시작했습니다. 요즘에는 다들 컴퓨터를 새로 사거나 포맷을 하고 나서 백..
힙정렬(Heap Sort)은 힙(Heap)이라는 특수한 자료구조를 사용하는 정렬 알고리즘이다. 힙은 최소힙(Minimum Heap)과 최대힙(Maximum Heap)이 있는데 값이 저장되는 방향만 반대일 뿐 성질은 똑같다. 우선 힙(heap)에 대해서 설명하면, 힙은 이진트리(Binary Tree)로서 맨 아래 층을 제외하고는 완전히 채워져 있고 맨 아래층은 왼쪽부터 꽉 채워져 있다(nearly complete binary tree). 힙은 최소힙, 최대힙에 따라 다음의 성질을 가지고 있다. 최소힙(minimum heap)의 성질각 노드의 값은 자신의 자식의 값보다 작다. 최대힙(maximum heap)의 성질각 노드의 값은 자신의 자식의 값보다 크다. 위의 그림은 최대힙(maximum heap)의 예를..
퀵정렬(Quick Sort)는 평균적으로 좋은 성능을 가져 현장에서 가장 많이 쓰이는 정렬 알고리즘이다. 최악의 경우(Worst-Case) Θ(n^2)의 시간복잡도를 가져 Θ(nlogn)의 시간복잡도를 가지는 병합정렬, 힙정렬보다 성능이 안좋아보일 수 있으나 평균적인 성능은 어떤 정렬에도 뒤떨어지지 않는다. 퀵정렬(Quick Sort)는 배열의 한 원소를 기준(피봇, pivot)으로 삼아 피봇보다 작은 수들은 피봇의 앞으로, 피봇보다 큰 수들은 피봇의 뒤로 보낸다. 정렬되지 않은 피봇의 좌우는 재귀적으로 문제를 해결하여 배열 전체가 정렬이 되도록 한다. 예를 들어 설명하면 다음과 같다. 이 예는 배열의 젤 뒷원소를 피봇으로 삼아 퀵정렬(Quick Sort)를 수행하는 경우이다. 피봇인 15보다 작은 수들..
병합정렬/합병정렬(Merge Sort)는 먼저 입력을 반으로 나눈다. 이렇게 나눈 전반부와 후반부를 각각 독립적으로 정렬한다. 마지막으로 정렬된 두 부분을 합쳐서, 즉 병합하여 정렬된 배열을 얻는다. 여기서 전반부를 정렬할 때도 역시 반으로 나눈 다음 정렬해서 병합한다. 즉, 원래의 정렬 문제와 성격이 똑같고 단지 크기만 반으로 줄었을 뿐이다. 후반부에 대한 정렬도 마찬가지다. 병합정렬은 자신에 비해 크기가 반인 문제를 두개 푼 다음, 이들을 병합하는 일을 재귀적으로 반복한다. 위 그림의 예를 살펴보면 초기 배열 A = { 5, 2, 4, 7, 1, 3, 2, 6} 이다. 병합정렬의 전반부, 후반부 정렬이 재귀적으로 반복되면서 배열의 원소가 하나씩 남을때 까지 쪼개진다. 그리고 각각 병합을 하면서 정렬이..
삽입정렬(Insertion Sort)는 이미 정렬되어 있는 i 개 짜리 배열에 하나의 원소를 더 더하여 정렬된 i+1개 짜리 배열을 만드는 과정을 반복한다. 선택정렬(Selection Sort)과 버블정렬(Bubble Sort)이 n개짜리 배열로부터 시작하여 그 크기를 하나씩 줄여나가는데 반하여, 삽입정렬은 1개짜리 배열로부터 시작하여 그 크기를 하나씩 늘려가는 정렬이다. 위의 예제를 살펴보면 배열 A[]에서 루프문을 통해 i가 두번째 원소 부터 배열의 끝 원소까지 루프문을 돌면서 A[i]번째의 원소를 자리에 알맞게 넣는다. i가 두번째 원소를 가리킬때 A[2]인 10의 자리는 A[1]인 29와 위치가 바껴야 하므로 자리가 교체된다. i가 세번째 원소를 가르킬때 A[3]인 14의 위치는 A[1]인 10 ..