Public/tip & tech 122

구글 성공 가져다준 핵심기술, 페이지랭크

몇 일 전 국내 유명 블로거의 구글 페이지랭크(PageRank)가 변경돼 블로거 사이에서 페이지랭크에 대한 관심이 증폭됐다. 구글을 세계 1위 검색 사이트로 만든 가장 강력한 무기인 페이지랭크에 대해 알아보자. 래리 페이지와 세르게이 브린이 구글을 창업한 1998년도만 해도 인터넷 검색의 최고 강자는 알타비스타(Altavista)였다. 1위 포털사이트인 야후도 알타비스타의 기술을 빌려다 사용하고 있었다. 당시 다른 검색 사이트와 마찬가지로 알타비스타도 페이지 내의 글을 가지고만 검색 결과에 나타나는 순위를 정했다. 알타비스타는 대략 다음과 같은 방법으로 웹페이지를 평가한 다음 점수를 부여해 검색 결과 순위를 결정했다. -제목에 해당 단어가 있으면 가중치가 붙는다. -굵게 처리 된 부분에 해당 단어가 있으..

Public/tip & tech 2009.06.04

이차원(2차원) 배열

char stack[10][100]; 이렇게 선언된 stack이라는 이차원 배열을 함수 안에서는 사용하는건 누구나 다 한다. 그런데 이렇게 선언된 배열을 함수의 인자로 넘길때 보통 헤매게 된다. 방법 1 > func(char stack[][100]) 게 넘겨 받는 방법이고 또다른 한가지는 방법 2 > func(char (*stack)[100]) 이다 넘겨 받은 데이터를 사용하는데 있어서 두가지 방법 사이의 차이점은 존재하지 않는다. 두개 모두 stack[i][j]와 같이 사용가능하고, 다만 함수안에서 이차원 배열을 포인팅 할려고 할때는 char (*temp_stact)[100]과 같이 선언하고 사용하면 된다 주의할점은 두번째 방법에서 괄로()를 빼먹으면 전혀 다른 의미가 되기 때문에 주의가 필요하다. p..

Public/tip & tech 2009.05.12

가변인자

잘 사용하지 않는 기술인데 에러 처리와 같은 부분에서는 상당히 편하게 사용될수 있다. #include void error( char *format, ... ) { va_list list; va_start( list, format ); while( *format != '\0' ) { // string if( *format == 's' ) { char* s = va_arg( list, char * ); printf( "[msg] strnig : %s\n", s ); } // integer else if( *format == 'd' ) { int d = va_arg( list, int ); printf( "[msg] integer : %d\n", d ); } *format++; } va_end( list );..

Public/tip & tech 2009.05.12

global(전역변수) & static(정적변수) variable

global 변수 : 선언과 동시에 모든 파일에서 접근 가능한 변수 static 변수 : 선언된 파일 안에서만 접근 가능 main.c sub1.c sub2.c 라는 파일 있다면 main.c에서 선언한 global 변수 g_val 은 sub1.c나 sub2.c에서도 접근 가능하다 그러나 main.c에서 선언한 s_val은 sub1.c나 sub2.c에서 접근할수 없다. 간단한 사용 예를 보면 (gloval 변수) ######################################################## main.c ---------------------------------------------------- int g_val = 10; main.c ---------------------------..

Public/tip & tech 2009.05.12

iconv 를 이용한 문자열 변환(utf-8)

리눅스에서 많은 함수들을 지원하지만 그중에서 iconv의 사용법에 대한 설명이다. iconv는 아래 예에서 든 캐릭터셋 이외에도 훨씬 많은 캐릭터간의 변환이 가능하다 #include size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft); 아래 예제는 utf-8에서 euc-kr로 변환하는 소스이다 #include #include #include #include int main() { char * sourceP = NULL; char * destP = NULL; char sourceBuffer[1024]; char destBuffer[1024]; int size1 = 0; int size2..

Public/tip & tech 2009.05.12