분류 전체보기
-
C Predefined Macros개발하면서/etc 2011. 6. 19. 21:42
#include int main() { printf("FILE:%s LINE :%d\n", __FILE__, __LINE__); printf("FILE:%s LINE :%d\n", __FILE__, __LINE__); printf("DATE : %s\n", __DATE__); printf("TIME : %s\n", __TIME__); return 0; } C에서 로그를 찍을 때 보다 더 많은 정보를 남기기 위한 Macro. 소스 예제는 ANSI 표준이고 아래 URL을 가면 MS에서 정의한 Macro들이 있다. 오호~ 이걸 이용해서 log4j 같이 로그 남기는 C library를 만들면 재밌을 것 같다 : ) Microsoft Predefined Macros
-
[컴퓨터/IT]프로그래머의길 멘토에게 묻다.살아가면서/책읽으면서 2011. 5. 11. 22:49
프로그래머의길멘토에게묻다 카테고리 컴퓨터/IT > 프로그래밍/언어 > 프로그래밍일반 지은이 데이브 후버 (인사이트, 2010년) 상세보기 이 책은 견습과정, 나같이 시작하는 단계의 사람에게 말하고 싶어하는 책이다. 이 책에서 말하고자 하는걸 나름대로 정리해보면 다음과 갈다. 1. 견습생은 돈, 지위가 주가 되는것이 아니라 기술습득에 온 힘을 쏟아 부어야한다. 2.. 장인이 되는것은 긴 여정이라고 생각하고 자신만의 지도를 그려서 다른사람의 말이나, 부, 명예에 흔들리지 않도록 해야한다. 3. 멘토를 찾아라. ( 주변에 그런 사람이 없다면, 커뮤니티나 메일링리스트에 가입을 해서 끊임없이 소통해야한다.) 4. 마지막으로 학습하는 방법들이 있다. (진작에 나왔으면 2년동안 삽질 안했을걸....ㅠ,ㅠ) 책 내용이..
-
[Redis] Persistence개발하면서/타인글보면서 2011. 4. 4. 23:32
Snapshotting Redis는 기본적으로 binary 파일, dump.rdb에 dataset의 snapshot을 저장한다.dataset에 최소 M번 변경된 경우에 매 N초마다 dataset을 저장할수 있게 Redis를 조절할 수 있다. 또는 당신이 SAVE, BGSAVE 명령어를 이용하여 수동으로 조절할수있다. key값들이 최소 1000번 변경된 경우에 60초마다 Redis가 자동으로 dataset을 disk에 백업하는 예는 다음과 같다. save 60 1000 이 전략은 아시다시피 snapshotting. 라고 한다. How it works 다음과 상황이 발생하면 Redis는 dataset을 디스크에 백업을 하게된다. Redis forks. 이젠 자식과 부모 프로세스 두개가 존재한다. 자식프로세스..
-
[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..