개발하면서
-
[Redis] Internals개발하면서/타인글보면서 2011. 4. 2. 00:35
Redis의 소스코드는 매우 크지 않다. (2.2 release에서는 2만라인밖에 안됩니다.) 그리고 우리는 최대한 단순하고 쉽게 이해하도록 하기 위해 엄청 노력했다.하지만 우리는 Redis의 내부 동작을 설명하는 몇개의 문서가 있다. Redis의 동적 문자열 문자열은 Redis의 기본적인 블럭 단위이다.Redis는 key-value 저장소이다. Redis의 모든 key는 문자열이며 value 또한 단순한 문자열 이다.List, Set, 정렬 Set, Hash이나 더 복잡한 value도 문자열로 구성 되어있다. Hacking Strings 페이지는 Redis의 문자열의 세부적인 구현을 어떻게 했는지 설명했다. Redis Virtual Memory 가상메모리 구현에 대해 자세히 설명한 문서가 있다. 경고 ..
-
[Algorithm]merge sort개발하면서/Algorithm,DS,PS 2011. 3. 13. 10:22
merge sort의 기본 개념은 아래 그림과 같습니다. 정렬되지 않은 데이타가 들어오면 쪼갤수 없을때까지 쪼갠다음에 합치면서 정렬을 해나가는 알고리즘입니다. 대부분 예제 소스에는 재귀함수로 merge sort를 구현했는데, 재귀함수로 안해도 되지않을까.....라는 생각이 시작이었습니다. 쪼갤수 없을때까지 쪼개는과정이 불필요하다는 생각이 들었고, 그래서 제가 구현한 소스에는 처음부터 끝까지 돌면서 처음에는 두개씩 정렬, 그 다음에는 네개, 그 다음에는 8개. 이런식으로 정렬을 수행합니다. 재귀함수를 안쓰다보니 추가 메모리가 필요하네요;;(안쓰고도 가능한게 있으면 알려주세요) 아래는 구현한 소스입니다. int merge_sort(void *data, int max, int data_size, cmp t_c..
-
[Algorithm] Heap sort개발하면서/Algorithm,DS,PS 2011. 2. 28. 21:32
Heap sort란 Heap 자료구조를 이용해서 sort하는 방법입니다. 우선 Heap에 대해 알아야겠죠? http://dol9.tistory.com/129 전에 포스팅한게 있네요 : ) root에는 max값 혹은, min값이 있습니다. 정렬이 안된 데이타를 heap 구조로 만들고, root의 값 하나꺼내고 heap구조 재정렬하고 root의 값 하나꺼내고 정렬하고, 이를 반복하면 정렬된 데이타가 생성됩니다. 단순한 방법이네요;;; 아래는 지금 두줄 설명한것을 코딩한것입니다. 생각한것을 막힘없이 구현할수 있도록 많이 짜보고 피드백 받고 수정하는 일련의 과정을 반복해야겠지요... // default max heap~!! int heap_sort(void *data, int max, int data_size,..
-
git Server를 만들어보자~!!개발하면서/etc 2011. 1. 31. 23:19
Ubuntu 9.10에 git Server를 만들어보겠습니다. gitHub를 이용해서 push, pull할수 있겠지만 무료로 사용할경우 private repository를 이용할수 없습니다. 그래서 자체적으로 서버를 만들어서 git의 private repository를 갖고 싶었습니다. (단순하죠.....허허) 그래서 찾은게 gitosis입니다. 나중을 위해 적어놓습니다~!! sudo apt-get install git-core cd ~/src git clone git://eagain.net/gitosis.git cd gitosis sudo apt-get install python-setuptools sudo python setup.py install sudo adduser --system --disab..
-
콘솔 프로그래밍(.exe) 서비스 등록하기개발하면서/etc 2011. 1. 23. 22:32
google에 "콘솔 exe 서비스 등록" 을 검색하면 수두록 나오지만, 몇번의 삽질이 있었기때문에. . . ㅋㅋ 정리하고자 합니다. 우선 콘솔 프로그래밍을 서비스에 등록하기위해서는 두개의 파일이 필요합니다.( instsrv.exe, srvany.exe) 파일입니다. instsrv.exe는 서비스를 등록, 삭제하는 기능이고 srvany.exe는 서비스관리자와의 통신과 제어를 처리합니다. instsrv.exe는 WINDOWSHOME/system32 에 설치하시고, srvany.exe는 콘솔 프로그래밍 폴더와 같이 위치시킵니다. 등록은 위 그림과 같이 합니다. instsrv [Service_name] [Service path] 서비스 삭제는 아래 그림입니다. regedit를 실행하고 아래 그림나온대로 이동합..