수학 함수(math.h) 
 
double sin(double x) => sin 
double cos(double x) => cos 
double tan(double x) => tan 
double sqrt(double x); => x의 제곱근 
double pow(double x, double y) => xy 
double floor(double x) => 소수 버림 (반올림은 0.5를 더한 후 소수를 버리면 됩니다. )
double ceil(double x) => 소수를 버리고 정수 값을 1증가 
int abs(int n) => 절대 값 
long labs(long n) => 절대 값 
double fabs(double x) => 절대 값 
 
예제1) 기본적인 수학 함수의 사용 
#include
<stdio.h> 
#include
<math.h> 
int main() 
int r; 
for (r=0;r<=90;r+=10) 
printf("sin(%d도)=%f\t",r,sin(r*3.1416/180)); 
    printf("cos(%d도)=%f\t",r,cos(r*3.1416/180)); 
    printf("tan(%d도)=%f\n",r,tan(r*3.1416/180)); 
    printf("25의제곱근= %.2f\n", sqrt(25)); 
    printf("5의3제곱= %.2f\n", pow(5,3)); 
    printf("5.4의소수버림결과= %f\n", floor(5.4));
    printf("5.4의소수올림결과= %f\n", ceil(5.4)); 
    printf("-5.4의소수버림결과= %f\n", floor(-5.4)); 
    printf("-5.4의소수올림결과= %f\n", ceil(-5.4)); 
    printf("5의절대값= %d\n", abs(5)); 
    printf("-5의절대값= %d\n", abs(-5)); 
    printf("5.4의절대값= %f\n", fabs(5.4)); 
    printf("-5.4의절대값= %f\n", fabs(-5.4)); 
return 0; 
}
Posted by cyj4369
,
문자 함수(ctype.h) 
 
1) 문자 판단 함수 
isalnum(문자): 영문자 또는 숫자인 경우만 참을 리턴 
isalpha(문자): 문자가 영문자인 경우만 참을 리턴 
isdigit(문자): 문자가 숫자인 경우만 참을 리턴 
islower(문자): 문자가 영어 소문자인 경우만 참을 리턴 
isupper(문자): 문자가 영어 대문자인 경우만 참을 리턴 
ispunct(문자): 문자가 기호문자인 경우에만 참을 리턴 
isspace(문자): 문자가 스페이스인 경우에만 참을 리턴 
isascii(int c): c가 ASCII이면 참값을 리턴 
iscntrl(int c): c가 control 문자이면 참값을 리턴 
isprint(int c): c가 인쇄 가능한 문자이면 참값을 리턴 
예제7) 문자 판단 함수 
#include <stdio.h> 
#include <ctype.h> 
int main() 
    char ch = 'A'; 
    if(isalnum(ch)) 
    {    printf("영문자 또는 숫자임\n"); } 
    else 
    { printf("영문자 또는 숫자 아님\n"); } 
 
 

    if(isalpha(ch)) 
    {    printf("영문자임\n"); } 
    else 
    { printf("영문자 아님\n"); } 
 
 

    if(isdigit(ch)) 
    {    printf("숫자임\n"); } 
    else 
    { printf("숫자 아님\n"); } 
 
 

    if(islower(ch)) 
    {    printf("소문자임\n"); } 
    else 
    { printf("소문자 아님\n"); } 
 
 

    if(isupper(ch)) 
    {    printf("대문자임\n"); } 
    else 
    { printf("대문자 아님\n"); } 
 
 

    if(ispunct(ch)) 
    {    printf("기호문자\n"); } 
    else 
    { printf("기호문자 아님\n"); } 
 
 

    if(isspace(ch)) 
    {    printf("스페이스임\n"); } 
    else 
    { printf("스페이스 아님\n"); } 
 
 

    if(isascii(ch)) 
    {    printf("ASCII 문자임\n"); } 
    else 
    { printf("ASCII 문자아님\n"); } 
 
 

    if(iscntrl(ch)) 
    {    printf("제어문임\n"); } 
    else 
    { printf("제어문자 아님\n"); } 
 
 

    if(isprint(ch)) 
    {    printf("프린트 가능\n"); } 
    else 
    { printf("프린트 불가능\n"); } 
return 0; 
}

 
 

 
 

2) 문자 변경 함수 
toascii(char c): 문자를 아스키 코드 값으로 변경 
tolower(char c): c를 소문자로 변환하는 함수 
toupper(char c): c를 대문자로 변환하는 함수 
 
 

예제8) 문자 변경 함수 
#include <stdio.h> 
#include <ctype.h> 
int main() 
    char ch = 'A'; 
    printf("ch의 ASCII 값 %d\n", toascii(ch)); 
    printf("ch를 소문자로 변경\n"); 
    ch = tolower(ch); 
    printf("ch = %c\n", ch); 
    printf("ch를 대문자로 변경\n"); 
    ch = toupper(ch); 
    printf("ch = %c\n", ch); 
return 0; 
}
Posted by cyj4369
,
문자열 함수(string.h) 
 
모든 시간 함수의 원형은 time.h 헤더 파일에 선언되어 있으므로 시간 관련 함수를 사용하려면 반드시 time.h를 인클루드 해야 합니다. 
 
 

char *strcpy( char *strDestination, const char *strSource ); 
Source의 문자열을 Destination에 복사 
char *strncpy( char *strDest, const char *strSource, size_t count ); 
Source의 문자열을 Destination에 n 만큼 복사 
 
 

예제9) strcpy 
#include <stdio.h> 
#include <string.h> 
int main() 
    char str1[20] = "Good"; 
    char str2[20] = "Morning";
    char str3[20]; 
    strcpy(str3, str1); 
    printf("str3 = %s\n", str3); 
    strncpy(str3, str2, 4); 
    printf("str3 = %s\n", str3); 
return 0; 
 
 

}

 
 

char *strcat( char *strDestination, const char *strSource ); 
Source의 문자열을 Destination에 연결 
char *strncat( char *strDest, const char *strSource, size_t count ); 
Source의 문자열을 Destination에 n 만큼 연결 
 
char fruit[80] = "straw";
strcat(fruit, "berry"); 
 




예제10) strcat 
#include <stdio.h> 
#include <string.h> 
int main() 
    char str1[20] = "Good"; 
    char str2[20] = "Morning";
    char str3[20] = "\0"; 
    strcat(str3, str1); 
    printf("str3 = %s\n", str3); 
    strncat(str3, str2,4); 
    printf("str3 = %s\n", str3); 
return 0; 
 
 

}

 
 

int strcmp(const char *string1, const char *string2 ); 
string1과 string2를 비교해서 같으면 0 앞의 문자열이 크면 1 뒤의 문자열이 크면 -1을 반환, 대소문자를 구별함 
int strncmp( const char *string1, const char *string2, size_t count ); 
string1과 string2를 count 만큼 비교해서 같으면 0 앞의 문자열이 크면 1 뒤의 문자열이 크면 -1을 반환, 대소문자를 구별함 
int stricmp( const char *string1, const char *string2 ); 
string1과 string2를 비교해서 같으면 0 앞의 문자열이 크면 1 뒤의 문자열이 크면 -1을 반환, 대소문자를 구별하지 않음 
int _strnicmp( const char *string1, const char *string2, size_t count ); 
string1과 string2를 count 만큼 비교해서 같으면 0 앞의 문자열이 크면 1 뒤의 문자열이 크면 -1을 반환, 대소문자를 구별하지 않음 
 
 

예제11) strcmp 
#include <stdio.h> 
#include <string.h> 
int main() 
    char str1[20] = "Good"; 
    char str2[20] = "Morning"; 
    printf("%d\n", strcmp(str1, str2)); 
    strcpy(str2, "Good Morning"); 
    printf("%d\n", strncmp(str1, str2,4)); 
    strcpy(str2, "good"); 
    printf("%d\n", strcmp(str1, str2)); 
    printf("%d\n", stricmp(str1, str2)); 
    printf("%d\n", strnicmp(str1, str2,4)); 
return 0; 
}

 
 

char *strset( char *string, int c ); 
string 문자열을 c 문자로 채움 
char *strnset( char *string, int c, size_t count ); 
string 문자열 중 count에 해당하는 만큼 c 문자로 변경 
 
 

예제12) strset 
#include <string.h> 
#include <stdio.h> 
int main( ) 
char string[] = "Fill the string with something"; 
printf( "Before: %s\n", string ); 
strset( string, '*' ); 
printf( "After: %s\n", string ); 
strnset( string, '?', 4 ); 
printf( "After: %s\n", string ); 
return 0; 
 
 

}

 
 

strlwr( char *string ); 
string 문자열을 소 
예제13) strs 문자로 변경 
char * strupr( char *string ); 
string 문자열을 대문자로 변경 
size_t strlen( const char *string ); 
string 문자열의 글자 수 반환 
 
 

예제13) strlwr 
#include <string.h> 
#include <stdio.h> 
int main() 
char string[] = "Fill the string with something"; 
int location; 
printf("string의 소문자 %s\n", strlwr(string)); 
printf("string의 대문자 %s\n", strupr(string)); 
printf("string의 메모리 사이즈 %d\n", sizeof(string)); 
printf("string의 문자 수 %d\n", strlen(string)); 
return 0; 
 
 

}

 
 

char * strchr( const char *string, int c ); 
string에서 문자 c의 메모리 위치 반환 
char *strrchr( const char *string, int c ); 
string에서 문자 c의 메모리 위치 반환(뒤에서부터 검색) 
 
 

예제14) strchr를 이용해서 문자열에서 첫 번째 검색 위치를 찾아내는 프로그램 
#include <stdio.h> 
#include <string.h> 
int main() 
    char str[256] = "My name is Park Moon Seok"; 
char *ptr; 
    char ch; 
    int result; 
    while(1) 
    { 
        printf("찾고자 하는 문자를 입력하세요=>"); 
        ch = getchar(); 
        fflush(stdin); 
        printf("1. 앞에서 2. 뒤에서=>"); 
        menu = getchar(); 
        ptr = strchr(str, ch); 
        result = ptr - str + 1; 
 
 

            if(ptr != NULL ) 
            { 
    printf( "Result: 첫번째 %c 발견위치 = 앞에서 %d 번째\n", ch, result ); 
            } 
            else 
            { 
             printf( "Result:%c는 없습니다\n", ch ); 
            } 
    return 0; 
}

strrchr은 뒤에서부터 검색하게 되는데 위치를 리턴 하므로 문자가 하나만 있는 경우는 같은 결과가 나올 것이고 o를 검색하면 다르게 나올 것 입니다. 
예제15) strchr를 이용해서 문자열에서 o의 개수를 알아내는 프로그램 
#include <stdio.h> 
#include <string.h> 
int main() 
char str[256] = "My name is Park Moon Seok"; 
char *ptr = str; 
unsigned int i,count=0; 
for (i=0;i<strlen(str);i++) 
     { 
ptr = strchr(ptr,'M'); 
if (ptr == NULL) 
         { 
break; 
count++; 
         ptr ++; 
printf("입력한 문자열에는 o가 %d개 있습니다.\n",count); 
}

 
 

char *strstr( const char *string, const char *strCharSet ); 
string에서 문자열 strCharSet의 메모리 위치 반환 
strcmp는 전체 일치하는 문자열은 검색할 수 있지만 부분 일치는 알아낼 수 없습니다. 
부분 일치를 찾아 낼 때 사용하는 함수 입니다. 
char *strpbrk( const char *string, const char *strCharSet ); 
string에서 문자열 strCharSet 중 첫 번째 나오는 메모리 위치 반환 
예제16) strstr, strpbrk를 이용해서 문자열에서 문자열을 검색하는 프로그램 
#include <stdio.h> 
#include <string.h> 
int main() 
char str[256] = "My name is Park Moon Seok"; 
char *ptr; 
unsigned int result; 
ptr = strstr(str,"name"); 
         result = ptr - str + 1; 
if(ptr != NULL ) 
            { 
        printf( "Result: name 발견위치 = 앞에서 %d 번째\n", result ); 
            } 
            else 
            { 
             printf( "Result: name은 없습니다\n"); 
            } 
         ptr = strpbrk(str,"xyz"); 
         result = ptr - str + 1; 
if(ptr != NULL ) 
            { 
        printf( "Result: xyz 중 하나 발견위치 = 앞에서 %d 번째\n", result ); 
            } 
            else 
            { 
             printf( "Result: xyz는 없습니다\n"); 
            } 
    return 0; 
}

char *strtok(char *strToken, const char *strDelimit); 
strToken을 strDelimit 단위로 분할해주는 함수 
 
 

예제17) strtok를 이용해서 공백을 기준으로 분할하는 예제 
#include <string.h> 
#include <stdio.h> 
char string[] = "My name is Park Moon Seok"; 
char *token; 
int main( ) 
token = strtok(string," "); 
while( token != NULL ) 
printf( "%s\n", token ); 
     token = strtok(NULL, " "); 
return 0; 
}
Posted by cyj4369
,
메모리 관리 함수(memory.h) 
 
C에서는 메모리를 관리할 수 있는 함수를 제공합니다. 
1)memset 
void *memset(void *dest, int c, size_t count); 
dest을 c로 count 만큼 채워주는 함수 
일반적으로 c자리에 0을 이용해서 메모리를 초기화하는데 이용 
 
 

2)memcpy 
void *memcpy(void *dest, const void *src, size_t count ); 
dest 을 src의 내용으로 count 만큼 복사해 줌 
 
 

3)memmove 
void *memmove(void *dest, const void *src, size_t count); 
dest 을 src의 내용으로 count 만큼 복사해 줌 
 
 

예제20) 
#include
<memory.h> 
#include
<string.h> 
#include
<stdio.h> 
int main() 
    char str1[7] = "aabbcc"; 
printf( "이전 문자열: %s\n", str1 ); 
memcpy( str1 + 2, str1, 4 ); 
printf( "새로운문자열: %s\n", str1 ); 
strcpy( str1, "aabbcc" ); 
printf( "이전 문자열: %s\n", str1 ); 
memmove( str1 + 2, str1, 4 ); 
printf( "새로운문자열: %s\n", str1 ); 
    return 0; 
}
Posted by cyj4369
,
난수 함수(stdlib.h) 
 
난수(Random Number)란 무작위로 만들어지는 알 수 없는 값을 말합니다. 
어떤 값을 가지게 될 지 예측할 수 없는 수라는 뜻인데 이런 난수가 필요한 이유는 말 그대로 예측을 허용하지 않기 위해서입니다. 
 
 

int rand(void); 
void srand(unsigned int seed); 
 
 

rand 함수는 0~RAND_MAX 범위의 수 중에서 무작위로 한 수를 생성해 냅니다. 
RAND_MAX는 컴파일러에 따라 다르지만 일반적으로 32767(0x7ffff)로 정의되어 있습니다. 그래서 rand 함수를 호출하면 0부터 32767중의 임의의 정수 하나가 리턴 됩니다. 
 
 

예제2) 5개의 숫자를 랜덤하게 추출해주는 예제 
#include <stdio.h> 
#include <stdlib.h> 
int main() 
    int i; 
    printf("rand()의 결과는 0부터 %d까지의 랜덤한 수\n", RAND_MAX); 
    for(i=0; i<5; i++) 
    { 
        printf("[%d]번째 수: %d\n", i+1, rand()); 
    } 
    return 0; 
}

위의 예제는 5개의 랜덤한 수를 추출하지만 계속 수행해 보면 항상 동일한 결과를 출력합니다. 
rand 함수는 일정한 난수 생성 규칙(seed)에 따라 난수를 생성하는데 난수 생성 규칙이 항상 같기 때문에 난수가 생성되는 순서도 항상 같게 됩니다. 
난수 생성 규칙에 변화를 줄 수 있는 함수가 srand라는 함수입니다. 
srand는 난수 발생기에 난수를 발생시키는 시작점(seed)를 제공하며 난수 발생기는 이 시작점을 기준으로 하여 난수를 발생시키게 됩니다. 
따라서 시작점을 바꾸면 생성되는 난수도 달라집니다. 
즉 srand 함수의 매개변수로 정수 값을 넣어주면 생성되는 숫자가 달라지게 됩니다. 
그러나 이렇게 하더라도 시작점이 동일하면 생성되는 난수에는 일정한 규칙이 존재할 수밖에 없습니다. 
완전한 난수를 만들기 위해서는 난수 생성기에게 전달되는 시작점 또한 예측 불가능한 난수여야 합니다. 
이러한 이유로 시간 값을 시작점으로 사용한다면 완전한 난수를 만들 수 있습니다. 
따라서 위의 예제에 숫자를 추출해 내기 전에 
srand((unsigned)time(NULL)); 문장을 삽입하면 완전한 난수가 추출될 것 입니다. 
 
 

또한 일정한 범위 안의 난수를 추출할 수 도 있습니다. 
가령 1부터 10까지의 난수 추출이라면 
rand() % 10 +1 이렇게 하면 됩니다. 
 
 

예제3) 1부터 100까지 짝수만 5개 추출하는 예제 
#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
int main() 
    int i; 
    srand((unsigned)time(NULL)); 
    for(i=0; i<5; i++) 
    { 
        printf("[%d]번째 수: %d\n", i+1, (rand()%50+1)*2); 
    } 
    return 0; 
}
Posted by cyj4369
,
이번 포스팅에서는 매직마우스의 기능을 확장 시켜 줄 수 있는 MagicPrefs라는 무료 어플리케이션을 소개해 드리도록 하겠습니다.



사이트에 접속해 좌에 위치하고 있는 다운로드 목록에서 버전에 맞는 MagicPrefs를 다운로드 합니다. (무료)


무료 어플리케이션임에도 이메일 등록이라던가 하는 별도의 정보 입력과정 없이 바로 다운로드가 진행 됩니다.

다운로드 된 파일을 실행하면 바로 MagicPrefs가 실행 되고 팝업이 생성 되는데요
간단한 안내 창이니 그냥 닫아주셔도 무방합니다.

파일이 실행 되면 메뉴바 우측에 아래와 같은 아이콘이 생성 됩니다.



여기까지가 MagicPrefs의 사용을 위한 설치과정의 끝 입니다.
여담 입니다만 MAC용 소프트웨어는 윈도우 소프트웨어보다 설치과정이 간단하게 끝나는 것들이 대부분이네요


그럼 이제부터 
매직마우스를 MagicPrefs와 함께 사용하기 위한 설정에 들어가도록 하겠습니다.

상단메뉴바에 생성된 MagicPrefs 아이콘을 클릭한 뒤 'PreFerences'를 선택 합니다.
애플 매직마우스 기능확장 맥북프로 아이맥 매직마우스 기능 확장



아래와 같은 설정창이 나타나며 각 항목의 대략적인 기능은 아래와 같습니다.
애플 매직마우스 기능확장 맥북프로 아이맥 매직마우스 기능 확장

1. Tracking Speed - 마우스 감도 조절 (우측으로 갈수록 빨라짐)
2. Touch Sensitivity - 매직마우스의 터치 감도 조절  (우측으로 갈수록 감도가 떨어짐)
3. Clicks & Taps - 매직마우스의 클릭과 터치를 활용한 설정 탭 이동
4. Swipes - 매직마우스의 쓸기와 관련된 설정 탭 이동
5. Drag, Pinch etc - 매직마우스의 드래그와 관련된 설정 탭 이동
6. Clicks - 1 ~ 4손가락을 이용한 클릭과 관련된 기능 설정 영역
7. Taps - 1 ~ 4손가락을 이용한 터치와 관련된 기능 설정 영역
8. 기능 설명에 대한 미리보기 창

MagicPrefs를 이용해 추가 설정이 가능한 매직마우스의 기능은 여러가지가 있지만
저는 3손가락 클릭으로 데스크탑(바탕화면)보기와 4손가락 클릭으로 스페이스 이동을 설정을 해 두었습니다.

사실 MagicPrefs를 사용해서 3손가락, 4손가락의 액션을 추가 한다고 해도
트랙패드의 다양함과 편리함을 따라가기에는 약산 부족한 감도 있고 특히 Swipe과 Drag에 관련된 설정은 잘 이루어 지지 않더군요... 하지만 이 어플을 통해서 매직마우스의 새로운 매력을 느끼기에는 충분 한 것 같습니다.

여러분들도 MagicPrefs를 이용해 매직마우스를 사용하는 또 다른 재미를 느껴보시기 바랍니다.

Posted by cyj4369
,
맥과 이클립스의 단축키가 충돌해서 불편할 경우가 많습니다. 이클립스의 가장 강점이라고 할 수 있는 ^(control) space가 맥의 우측상단에 있는 spotlight와 겹칩니다.



맥의
 환경설정에서 spotlight 선택하고 윈도우 하단에 있는 단축키 설정을 ^+커맨드+space로 바꿨습니다.
일단 일차적으로 맥과 이클립스의 충돌을 해결해봅니다.

'Development > eclipse' 카테고리의 다른 글

[jsp에서 onClick 이벤트 정리]  (0) 2011.11.26
[eclipse, tomcat, oracle 설치]  (0) 2011.11.20
[파레트]  (0) 2011.10.26
Posted by cyj4369
,

  • 공부벌레들에게 잘 해주십시오. 나중에 그 사람 밑에서 일하게 될 수도 있습니다.
  • 목적없는 공부는 기억에 해가 될 뿐이며, 머리속에 들어온 어떤 것도 간직하지 못한다.
  • 지금 잠을 자면 꿈을 꾸지만 지금 공부하면 꿈을 이룬다.
  • 늦었다고 생각될 때가 가장 빠른 때다.
  • 공부는 시간이 부족해서 못하는 것이 아니라 노력이 부족해서 못한다.
  • 미래에 투자하는 사람은 현실에 충실한 사람이다.
  • 고통이 없으면 얻는 것도 없다.
  • 노력의 댓가는 이유없이 사라지지 않는다.
  • 오늘 걷지 않으면 내일은 뛰어야 한다.
  • 꿈이 바로 앞에 있는데, 당신은 왜 팔을 뻗지 않는가?
  • 구르는 돌은 이끼가 끼지 않고 연습은 완벽을 만든다.
  • 공부가 인생의 전부는 아니다. 그러나 인생의 전부도 아닌 공부 하나도 제대로 하지 못한다면 과연 무슨 일을 할 수 있겠는가?
  • 남을 이기려 하기 전에 나부터 이겨라
  • 실패는 용서해도 포기는 용서 못한다.
  • 오늘 걷지 않으면, 내일 뛰어야 한다.
  • 오늘 나의 의무를 다하지 않았다면 오늘 하루는 끝난 것이 아니다.
  • 오늘 헛되이 보낸 하루는 내일 다시 돌아오지 않는다.
  • 젊을 때에 배움을 소홀히 하는 자는 과거를 상실하고 미래도 없다.
  • 공부할 때의 어려움은 잠깐이지만 성공한 후의 즐거움은 일평생이다.
  • 공부는 시간이 부족한 것이 아니라 노력이 부족한 것이다.
  • 천천히 가는 것을 두려워하지 말고 멈추어 서는 것을 두려워하라.
  • 불가능이란 노력하지 않는자의 변명이다.
  • 생각하는대로 살지 않으면 사는대로 생각하게 된다.
  • 아무 대가 없이 얻을 수 있는 것은 아무 가치 없는 것 뿐이다.
  • '할 수 없다’고 생각하는 것은 '하기 싫다’고 다짐하는 것과 같다. 
  • 가장 위대한 자는 자신의 감정을 참을 줄 아는 사람이다. 
  • 자신과의 싸움에서 지는 사람은 아무것도 할 수 없다. 
  • 내가 꿈을 이루면 난 다시 누군가의 꿈이 된다. 
  • 열정 없는 삶은 의미가 없다. 
  • 젊다면 뛰어야 한다. 
  • 배우려고 하는 학생은 부끄러워해서는 안 된다.
  • 자신이 하는 일을 재미없어 하는 사람치고 성공하는 사람 못 봤다.
  • 평온한 바다는 결코 유능한 뱃사람을 만들 수 없다.
  • 문제는 목적지에 얼마나 빨리 가느냐가 아니라, 그 목적지가 어디냐는 것이다.
  • 재미가 없다면, 왜 그걸 하고 있는 건가? 
  • 성공의 비결은 목적을 향해 시종일관하는 것이다.
  • 그간 우리에게 가장 큰 피해를 끼친 말은 바로 ‘지금껏 항상 그렇게 해왔어’라는 말이다.
  • 성공이란 한 가지밖에 없다. 당신의 인생을 당신의 뜻대로 사는 바로 그것이다. 
  • 성공은 수고의 보상이라는 것을 기억하라.
  • 어떤 가치있는 행동을 하지 아니한 날,그날은 잃은 날이다.
  • 가시에 찔리지 않고서는 장미꽃을 모을 수가 없다.
  • 한가한 인간은 고여 있는 물이 썩는 것과도 같다.
  • 살아 있는 실패작은 죽은 걸작보다 낫다.
  • 태만을 즐기고 있을 때는 태만함을 느끼지 못한다.
  • 학문의 최대의 적은 자기 마음속에 있는 유혹이다.
  • 적당주의자가 되지 말라. 그것은 세상에서 가장 위험한 것이다.
  • 천재란 인내에 대한 위대한 자질 이외에는 아무것도 아니다.
  • 청년기는 대실수이다. 장년기는 투쟁이다. 그리고 노년기는 후회이다.
  • 우리의 인내가 우리의 힘보다 더 많은 것을 성취할 것이다.
  • 목적 없이 존재하는 것은 아무 것도 없다. 
  • 탐구하여 찾아질 수 없을 정도로 어려운 문제는 존재하지 않는다.
  • 돈은 중요하지 않다. 내일 죽더라도 후회하지 않을 일을 하라
Posted by cyj4369
,
밀크 초콜렛이 뇌의 활동을 활발하게 한다는 연구결과가 있다.

미국 휠릴 제수이트 대학의 브라이언 라우덴부시 박사는 초콜렛에 함유된 많은 물질들이 일종의 흥분제 역할을 하면서 집중력과 주의력을 높이고 정신활동을 왕성하게 한다고 밝혔다.

라우덴부시 박사는실험자를 네 그룹으로 나눠 세 그룹에게는 각각 85g의 밀크초콜렛과 초콜렛과 캐러브를 먹게하고 한 그룹은 아무것도 먹지 않은 상태에서 기억력과 집중력, 반응속도와 문제해결 능력을 시험한 결과 밀크 초콜렛을 먹은 그룹이 다른 그룹보다 기억력이 월등히 높아진 것으로 드러났다고 밝혔다.

또 초콜렛에 함유된 성분들이 포도당 분해와 혈액의 순환을 도와주고 이것이 지적인 능력을 향상시킨다고 라우덴 부시 박사는 밝혔다.
 


초콜렛의 긍정적 효능

1. 우울한 기분을 띄어준다. -카페인
2. 사고력을 좋게하고 이뇨작용을 돕는다. -데오브로민
3. 신경을 부드럽게 하고 피로를 풀어준다. -당분
4. 만복감을 주어 과식을 방지한다. -당분
5. 정신을 안정시키고 집중력을 높인다. -카카오향
6. 실연을 치료한다. -페닐에칠아민
7. 암.노화 방지 -에피카테킨, 카테킨, 탄닌, 카카오폴리페놀
8. 위산을 조절해준다. -카테킨
9. 알코올을 분해한다. -흑당, 타우린, 카테킨
10. 충치를 예방한다. -카카오폴리페놀
11. 감기를 예방하고 알레르기를 억제한다. -카카오폴리페놀
12. 콜레스테롤의 걱정을 없애준다. -올레인산, 스테아린산
13. 조난사고에서 인명을 구해준다. -당분+코코아버터
14.종합영양식. -설탕, 탄수화물, 전분질, 섬유질, 코코아버터, 유지, 식물성 유지, 단백질, 탄닌, 미네랄.. 기타
15. 몸속의 상태를 조절해준다. -리그닌
16. 고혈압과 뇌졸증을 예방해준다. -칼륨
17. 뼈를 만들고 튼튼하게 한다. -칼슘, 마그네슘, 인
18. 빈혈을 예방해준다. -철분
19. 근육을 좋게한다. -단백질

Posted by cyj4369
,

“모바일, 빅데이터, 소셜.” 시장 조사 전문 업체 가트너가 2012년 주목할 만한 기술로 선정한 ‘전략기술’을 요약하면 이렇다. 분석과 클라우드가 강조됐던 2011년 전망과는 사뭇 다르다.

가트너는 매년 10월 향후 기업들이 비즈니스를 하는데 있어 중대한 영향을 끼칠지 모르는 잠재력을 가진 ‘전략기술’ 10가지를 소개한다. 올해도 10월16일(현지기준) 올랜도에서 열린 ‘심포지엄/IT엑스포 2011’ 행사를 통해 향후 미래를 밝힐 기술에 대해 발표했다.

가트너가 꼽은 2012년 전략기술들은 미디어 태블릿, 모바일 애플리케이션, 소셜, 사물 기반 인터넷, 앱 스토어, 차세대 분석 기술, 빅데이터, 인 메모리 컴퓨팅, 저전력 서버, 클라우드 컴퓨팅 등의 키워드로 대표된다.


이번 전략기술은 2011년과 비교해 많은 변화가 일어났다. 우선 2011년 전략기술에서 1위였던 클라우드 컴퓨팅이 10위로 순위가 급격히 떨어졌다. 동영상, 유비쿼터스 컴퓨팅, 패브릭 기반 인프라 컴퓨터 관련 이슈는 이번 전망에서 제외됐다.

그 대신 모바일 관련 기술이 상위 부분을 차지했다. 스마트폰, 태블릿 등 모바일 기기가 비교적 보편화되면서 관련 기술에 대한 기업들의 높아진 관심이 반영된 듯 하다.

저전력 서버 등 에너지 절약 이슈가 새로 등장했다. 스마트 그리드, 그린IT 등으로 효율적인 에너지 절감 열풍이 불고 있는 가운데 가트너도 효율적인 에너지 사용에 대한 관심을 나타냈다.

분석 관련 이슈는 어김없이 재등장했다. 차세대 분석, 빅데이터 같은 분석 관련 보편적인 이슈부터 시작해 소셜과 모바일이 결합해 ‘상황인식 바탕의 소셜 사용자 경험 기술’, ‘사물 기반 인터넷’ 등 분석을 바탕으로 한 주목되는 기술이 새로이 등장했다. 분석 기술의 중요성은 2012년에도 이어질 것으로 보인다.

가트너가 주목한 2012년 전략 기술을 좀 더 자세히 살펴보자.

1. 미디어 태블릿 그 이후

얼마전 가트너는 ‘아이패드 이후의 컴퓨팅 미래는 어떻게 되나’라는 주제의 특별 보고서를 통해 미디어 태블릿이 향후 PC 시장에 영향을 미칠 것이라고 분석했다. 이는 이번 전망에서도 고스란히 나타났다.

가트너는 “스마트폰, 태블릿 등 다양한 모바일 기기가 등장하면서 사용자들은 언제 어디서나 모바일 컴퓨팅을 통해 원하는 데이터에 접속할 수 있게 됐다” 라며 “이런 현상은 2015년까지 계속될 것”이라고 내다봤다. 또한 “특히 미디어 태블릿의 등장은 기업과 사용자, 비즈니스 영역에 걸쳐 많은 변화를 가져다 줄 것”이라고 분석했다.

이어 가트너는 “우선 기업들은 곧 다가올 직원들이 모바일 기기를 업무와 개인생활을 넘나들며 근무하는 환경을 지원해야 할 것”이라며 “이 과정에서 기업은 비용, 사회관계, 기업사업목표, 위험 관리 등의 비즈니스 관리 도구를 미리 준비할 필요가 있다”라고 강조했다.

즉, 발전한 모바일 기기 등을 통해 직원들의 근무 경계가 모호해지기 때문에 미디어 태블릿 이후를 준비할 수 있는 기술을 기업이 대비해야 한다는 얘기다. 이런 기술들은 모바일 중심으로 애플리케이션이 개발되는 방향으로 이뤄질 것이라고 가트너는 덧붙였다.

2. 모바일 중심의 애플리케이션과 인터페이스

지난 20년 동안 사용자 인터페이스는 계속해서 변화했다. 미디어 태블릿이 등장하면서 터치 중심으로 사용자 인터페이스가 변한 게 한 예다.

가트너는 “마우스와 키보드 중심의 ‘클릭’ 위주의 사용자 인터페이스가 미디어 태블릿 중심의 ‘터치’로 변화하고 있기 때문에 이와 관련해서 애플리케이션 개발이 이뤄질 것으로 보인다”라며 “결국 애플리케이션은 점점 모바일에 익숙해지는 방향으로 변화할 것”이라고 전망했다.

다양한 모바일 기기에서 애플리케이션을 활용할 수 있게 기존 애플리케이션이 더 가볍고 친 모바일 적으로 개발될 것이라고 본 것이다. 특히 음성인식과 모션인식 기능 등이 포함돼 다양한 애플리케이션이 등장할 것이라고 예측을 내놨다.

실제로 벤더들은 다양한 모바일 기기를 지원하는 애플리케이션을 개발하고 있으며, 각 기기에 최적화될 수 있는 기술적인 개발을 계속해나가고 있다. 한 예로 웹 애플리케이션 개발을 통해 어떤 모바일 기기에서든지 편하게 사용할 수 있게 사용자 인터페이스를 만들고 있다.

가트너는 “최근 어플리케이션 개발 추세는 다양한 플랫폼에서 사용될 수 있는 환경을 필수로 하고 있다”라며 “HTML5의 등장은 장기적인 의미에서 크로스 플랫폼 환경을 지원할 것으로 보인다”라고 분석했다.

3. 상황인식과 소셜이 결합된 사용자 경험

상황인식과 소셜이 결합돼 새로운 시너지를 만들것이라는 주장도 계속됐다. 지난번 전략기술에서도 가트너는 최종 소비자나 대상의 환경, 활동 연결성, 선호도에 대한 정보를 파악할 수 있는 상황인식 컴퓨팅을 통해 최종 소비자에게 가장 적절하고 맞춤화된 콘텐츠, 제품, 서비스를 제공하는 기술이 각광받을 것이라고 전망했다.

여기서 더 나아가 이제는 트위터, 페이스북 같은 소셜 네트워크 서비스가 상황인식과 결합돼 최종 사용자에 대한 더욱 구체적인 정보를 파악할 수 있게 돼고, 이를 활용한 기술이 더욱 발전할 것이라고 가트너는 내다봤다.

가트너 분석을 들어보자. “최종 사용자가 사용하는 모바일, 소셜서비스 등을 통해 최종 사용자에 대한 정보를 파악한 뒤 이를 바탕으로 서비스를 지원하는 기술이 성행할 것으로 보인다. 2013년까지는 모바일 기기를 통해 알아낼 수 있는 위치 기반 정보를 바탕으로 신분, 시간 위치 같은 타깃형 상황 인식 애플리케이션이 개발될 것이다. 여기서 더 나아가 미래엔 행위, 요구, 습관 등을 파악한 일상형 상황인식 애플리케이션의 기능이 개발될 것이며, 결국 최종 시대가 올 것이다.”

4. 사물 인터넷(IoT)

기존 분석 기술에 소셜네트워크 서비스가 결합돼 나타난 새로운 기술이다. 최근 소셜 네트워크 서비스를 바탕으로 한 커뮤니케이션이 증가하고 있다. 동시에 기업들은 ‘소통’에 관심을 가지게 됐다.

사물 인터넷은 과거 사람에게 국한됐던 소통이 사물에게까지 확대된 경우를 나타내는 개념이다. 즉, 사람이 사물과 소통해 사물에 대한 정보를 얻고, 그들이 무엇을 필요로 하는지, 그래서 사물이 어떤 행동을 취해야 하는지 알려준다는 것이다.

가트너는 “모바일 장치에 내장된 센서나, 이미지 인식 기술 등이 등장하면서 인터넷 망이 사물에게까지 확대됐고, 사람은 이제 사물과의 커뮤니케이션을 할 수 있게 됐다”라며 “센서와 지능이 결합된 소비자 장치는 계속해서 등장하고, 사물의 정보는 인터넷 망을 통해 계속 전달될 것이며, 이와 관련된 기술은 앞으로 더욱 발전할 것으로 보인다”라고 밝혔다.

가트너는 사물 인터넷에 필요한 핵심 기능으로 다음 3가지를 꼽으면서 이와 관련된 기술이 발전할 것으로 분석했다.

  • 내장 센서 : 장소나 시간 변화 등 주변 환경 변화를 감지할 수 있는 센서가 모바일에 탑재되면서 사람은 사물과 의사소통 할 수 있게 될 것이다.
  • 이미지 인식 : 건물, 장소, 로고, 사람, 사물 등을 인식할 수 있는 기술이 발전하고 있다. 특히 카메라가 장착된 스마트폰은 관련 기술 개발을 더욱 가속화할 것으로 본다.
  • 근거리무선통신(NFC) : NFC를 기반의 결제 환경은 사용자가 언제, 어디서, 무엇을 했는지를 파악할 수 있게 한다. 이와 같은 결제 환경이 발달하면 결제 정보에 따라 주변 정보를 파악할 수 있는 가능성도 커진다. 결국 이런 정보를 통해 사용자는 사물에 대한 정보를 더 빠르게 파악할 수 있게 될 것이고 이는 의료, 건강 등 다양한 산업부문에서 효율적인 서비스를 제공할 것으로 보인다.

5. 앱스토어와 마켓플레이스

모바일 기술 관련해서 빠질 수 없는 부문이다. 가트너는 “2014년이 되면 700억에 달하는 애플리케이션이 안드로이드마켓과 앱스토어 등 애플리케이션 마켓에서 다운로드 될 것으로 보이며 이는 사용자 중심의 환경을 만들 것으로 분석된다”라며 “기업들은 애플리케이션 마켓에 관심을 가질 필요가 있다”라고 주장했다.

애플리케이션 마켓이 성장하면서 기업이 제공하던 서비스를 사용자가 누려야 했던 환경에서 사용자가 적극적으로 서비스를 요구하고 개선할 수 있는 환경이 됐다고 본 셈이다. 이 과정에서 애플리케이션 마켓은 제공자와 사용자를 이어주는 중개 서비스로서의 역할을 할 것이라고 가트너는 분석했다.

가트너는 “이런 이유로 기업들은 이런 환경을 지원하고 준비할 수 있는 능력을 키워야 한다”라고 지적했다.

6. 차세대 분석

가트너가 지난번 전략기술로 다뤘던 부분이다. 당시 가트너는 모바일 단말을 포함한 컴퓨팅 능력 증대와 연결성 향상이 기업들의 비즈니스 의사결정방식에 변화를 가져오고 있다고 말했다. 2012년에는 기존 분석에서 더 나아가 다음과 같은 3가지 핵심 차원을 중심으로 성장해 나갈 것이라고 가트너는 전망했다.

  • 기존의 오프라인 분석에서 인-라인 분석으로 흐름이 변할 것이다.
  • 과거 데이터 분석을 바탕으로 미래에 발생할 수 있는 가능성을 시뮬레이션 할 수 있는 기능이 보강되고, 여러 시스템을 통해 실시간 분석하는 기술이 개발될 것이다.
  • 향후 3년간 분석은 문자, 영상 등 다양하고 복잡한 정보를 빠른 시간 안에 분석할 수 있는 기술에 집중될 것이며 이를 위해 클라우드를 활용한 분석 기술이 등장할 것이다.

가트너는 “2012년 관련 분석은 ‘협업’ 부문에 집중돼 더욱 발전할 것”이라고 내다봤다.

7. 빅데이터

모든 분석의 근원이다. 최근 2년 들어 데이터가 갑자기 폭발적으로 증가하면서 ‘빅데이터’라는 개념이 등장했다.

가트너는 “빅데이터가 증가함에 따라 전통적인 데이터 분석 기술로서는 이를 감당할 수 없을 것이므로, 빅 데이터 볼륨을 감당하고 관리할 수 있고, 나아가 더 빠르게 분석할 수 있는 기술들이 대거 등장할 것”이라며 “데이터베이스관리시스템(DBMS)에서 맵 리듀싱 기술이 발달할 것으로 보이며, 단일 데이터웨어하우스 모델을 대체하는 데이터웨어하우스가 각광받을 것”이라고 전망했다.

8. 인 메모리 컴퓨팅

빅 데이터가 각광 받자 인 메모리 컴퓨팅 기술에도 관심이 모아지고 있다. 기업들은 빅 데이너를 어떻게 분석할 지에도 관심을 가지고 있지만, 얼마나 빨리 분석할 지에 대해서도 관심을 가지고 있다.

가트너는 “실시간 대용량 데이터 분석에 대한 기업의 요구가 점점 높아지고 있다”라며 “이를 해결하기 위한 기술이 2012년엔 주목받을 것으로 보인다”라고 말했다. 인 메모리 컴퓨팅 기술이 각광받게 된다는 얘기다.

가트너 설명은 이렇다. “다양한 소비자 기기와 IT 시스템에서 플래시 메모리가 매우 다양하게 활용되고 있다. 이 같은 기술은 분석에도 적용돼 향후 분석은 인 메모리 컴퓨팅 기술을 바탕으로 이뤄질 것으로 보인다. 방대한 양의 빅데이터를 서버 메인 메모리에 보관하지 않고 실시간으로 분석하는 ‘인 메모리 컴퓨팅’ 기술이 분석 시장에서 두각을 보일 것이다. 기존 디스크 기반 모델보다 더 빠르고 쉽게 데이터 분석이 이뤄지기 때문에 기업들이 이와 관련 기술을 선호할 것으로 보인다.”

9. 저전럭 서버

에너지의 효율적인 사용은 언제나 기업이 관심을 갖고 있는 문제다. 2010 전략 기술에서 가트너는 ‘그린IT’를 내세우며 관련 기술의 중요성을 언급한 바 있다. 이번 전략 기술에서는 저전력 서버라는 다소 구체적인 분야를 내세우며 에너지 효율에 대해 언급했다.

분석 관련 기술이 중요해지면 이를 위한 서버 활용성도 높아지기 마련이다. 저전력 프로세스는 현재 다양한 모바일 기기에서 활용되고 있다. 이를 바탕으로 에너지를 적게 사용하면서 서버를 활용하는 기술도 등장했다.

가트너는 “저전력 서버는 현재 서버 보다 적어도 30배 이상의 프로세스를 선보이며 에너지 절감 효과도 가져다 주며, 서버에 가중되는 부담을 줄여 에너지 절감효과를 봄과 동시에 처리속도에 개선도 일어나고 있다”라며 “2012년에는 이같은 저전력 서버 관련 기술이 더욱 늘어날 것으로 보인다”라고 전망했다.

10. 클라우드 컴퓨팅

가트너가 3번 연속 전략기술로 채택한 중요한 기술이다. 가트너는 “오라클, IBM, SAP 등이 많은 기업들이 클라우드 기술 관련 개발을 더욱 확대시켜 나가고 있으며, 기업의 이런 움직임은 소비자에게도 전달 될 것으로 보인다”라며 “기업이 2011년에는 프라이빗 클라우드와 파블릿 클라우드를 중심으로 클라우드 컴퓨팅 기술을 발전시켰다면, 2012년에는 하이브리드 클라우드 컴퓨팅 기술이 관심을 받을 것”이라고 내다봤다.

이번 전망을 내놓으면서 칼 클론치 가트너 부사장은 “소셜 네트워크 서비스와 비정형 데이터를 기업들이 어떻게 관리하고 분석할 것인지 등이 중요해졌다”라며 “동시에 다양한 모바일 기기가 등장하는 만큼 이와 관련된 애플리케이션 관련 기술이 어떻게 발전할지 주목된다”라고 밝혔다.

Posted by cyj4369
,