개발하면서
-
GoogleGuide(How Google Works)개발하면서/타인글보면서 2009. 11. 20. 13:03
제가 영어를 공부하고자 시작하였습니다. 종종 오역이 있을 수 있습니다. 꾸준히 노력해서 줄여야겠지요... 시간이 지나 양질의 번역글을 많이 썼으면 좋겠네요 : ) 잘못된 부분은 지적해주시면 인신공격빼고는 모두 달게 받겠습니다 : ) 이 페이지는 구글이 어떻게 어떻게 색인을 만들고 쿼리를 가공하여 문서를 보여주는것이 어떻게 하는지 궁금하지 않는 독자는 넘어가도 된다. 구글은 수천개의 저렴한 컴퓨터를 분산시켜서 일을합니다. 그래서 빠르게 병렬처리를 할수있는것이죠 : ) 병렬 처리는 많은 계산들을 동시에 수행하는것을 말하고, 데이터 처리속도를 크게 높일수있습니다. 구글만의 세가지 기술은 다음과 같습니다. 구글봇 - 웹 크롤러는 웹페이지를 찾고 내용을 가져옵니다. 색인기 - 모든 페이지의 단어를 정렬하고, 색인..
-
MessageFormat개발하면서/etc 2009. 11. 3. 23:42
필요는 사람을 집중하게 만든다. C에서 sprintf기능을 하는게 Java에 있는지 알아보던중, MessageFormat이라는것을 알게되었다. Java에서는 String의 개념이 있어서 '+'연산으로 다 가능해 그다지 쓸모는 없지만.....;; 그래도 알면 좋다는 신념아래 알아보기로 했다. //C의 sprintf는 char form[50] = "age : %d, area : %s\n"; char output[200]; sprintf(output, form, 26, "오산"); printf("output : %s\n", output); //뭐 이런식인데 Java의 MessageFormat은 String form = "age: {0}, area: {1}"; System.out.println(MessageFo..
-
crontab개발하면서/etc 2009. 10. 31. 02:30
cron은 일정간격으로 작업을 자동으로 수행하는 유틸리티를 말한다. 예를들어 일정한 시간간격으로 로그를 삭제한다던지, 일정 시간 간격으로 특정 쓰레드를 실행시켜야할때 사용되는것이다. cron이 할일을 정해주는것이 crontab이라고 할수있다. crontab의 명령어 crontab -e crontab을 작성하기 위한 명령어 crontab -l crontab을 보기 위한 명령어 crontab -r crontab을 지우기 위한 명령어 crontab 파일의 형식 * * * * * command 첫번째 : 분(0-59), 두번째 : 시(0-23) 세번째 : 일(1-31) 네번째 : 월(1-12) 다섯번째 : 요일(0-6) 예를들어 첫번째에 30이라고 한다면 매일 30분간격으로 지정한 command를 실행한다. 그..
-
Shift operation개발하면서/etc 2009. 10. 22. 23:23
shift연산이라하면 32비트 컴퓨터에서 32비트를 왼쪽 혹은 오른쪽으로 이동하는것을 말하고, 이동후 빈공간은 0으로 채워지는걸로만 알았는데. . . 무려 3개의 종류가 있었다......두둥....(이놈의 무지.....) 위키를보고 내 나름대로 정리해보려한다. 출처 URL은 Arithmetic shift, Logical shift, Circular shift Arithmetic shift 왼쪽로 이동한후 빈공간은 0으로 채워지고, 오른쪽 shift후 빈공간은 가장왼쪽비트(즉 부호비트)가 채워지게 된다. 즉 부호비트를 보호한다는것~!! 부호있는 수를 2로 나누거나(나머지는 버림), 부호없는 수를 2로 곱할때 유용하게 사용할수 있다. 왼쪽 시프트 할때는 overflow가 생길수도 있다~!! (CS, CP 레..
-
Condition variable 호출순서개발하면서/etc 2009. 10. 8. 21:16
지금 threadpool에 대해 공부하고 소스를 분석하고 있다. threadpool은 작업을 관리하는 스레드가 있고 작업을 하는 스레드가 있다. 작업관리 스레드가 wait상태의 작업을하는 스레드에게 signal을 보내서 일을 하게만든다 이 과정에서 signal과 wait간의 호출순서가 궁금해서 검색을 통해 아래 좋은 사이트를 검색하게 되었다. 출처 : kldp 질문 글을 이해하기 쉽게 그림으로 그려보고자 한다. signal을 받았다고 바로 작업을 수행하는것이 아니라, 신호 보내는 스레드에서 unlock을 한 후에 작업을 한다 그리고 cond_wait가 실행 되면 현재 lock되있는 mutex를 unlock하고 return 할때 다시 lock해준다. cond_signal을 실행할때 wait된게 없으면 아무..
-
경계없는TCP/IP 데이타, 임의로 경계단위로 수신하기개발하면서/etc 2009. 10. 6. 21:17
위 그림은 지금 하고 있는 프로젝트이다. 나중에도 도움이 될것 같아서 이렇게 글을 남긴다. 우선 그림에 대한 간략한 소개를 하면, Admanager는 DB를 일정간격으로 갱신여부를 감시하고, 갱신될 경우 그 데이타를 가져와서 Adserver로 전송하는 역할을 한다. Adserver는 받은 데이타를 가공하고 저장한뒤 사용자 접속시 해당 데이타를 뿌려주는 역할을한다. 여기서는 Admanager와 Adserver사이에 대해서만 얘기하기로 하자.Admanager에서 전송할 데이타는 탭 단위로 구분 되어있고, 마지막은 \n 이다. 즉, Admanager는 record 단위로 전송을 하고, Adserver는 record 단위로 처리를 해주면 되는것이다. 근데 이게 왜 문제가 될까 위의 그림을 보면 Adserver에..