C++ 개발자라면 한 번은 사용한다는 Boost는 C++ 표준 위원회 사람들이 대거 참여하여 개발되고 있는 라이브러리이다. C++의 추가 표준 라이브러리인 TR1도 이 라이브러리를 기반으로 만들어졌다.
Boost의 라이브러리 중에는 헤더파일만을 사용하는 것도 있지만, 사용하기 전에 build를 해주어야 하는 라이브러리들이 있다. Boost에서 zlib를 사용하기 위해서는 이 과정을 거쳐야 한다.
Boost는 bjam이라는 자체적인 build module을 이용하여 라이브러리를 build 한다. 따라서 Boost를 설치하고 사용하기 위해서는 bjam이 있어야 하고, build 옵션을 알아두면 된다.
(http://www.boost.org/) URL에서 Boost의 최신 패키지를 받을 수 있다.
Boost를 build하기 전에 bjam 프로그램이 필요하므로 다음과 같은 방법으로 bjam.exe 파일을 생성한다.
1. Boost의 하위 폴더인 .\tools\jam 폴더로 이동한다.
2. build_dist.bat을 실행한다. (build)
3. 빌드 완료 후, 생성된 stage의 하위 폴더 bin.ntx86로 이동을 하면 bjam.exe 파일이 생성되어 있는 것을 확인할 수 있다.
[표 1] Boost의 build module인 bjam.exe 생성하는 방법
생성된 bjam.exe 파일을 통해 Boost를 build하기 위해 Boost의 최상위 폴더로 복사한다.
Boost의 build 방식에는 크게 두 가지로 구분할 수 있다. install 방식과 stage 방식이다. install의 경우에는 헤더파일과 컴파일된 라이브러리 파일을 아예 새로운 폴더에 생성하는 방식이고, stage의 경우에는 현재 boost 폴더에 있는 헤더 파일을 그대로 이용하고 컴파일된 라이브러리 파일만을 생성하는 것이다.
Ÿ install의 경우
bjam.exe –prefix=”C:\Lib\Boost” install
Ÿ stage의 경우
bjam.exe –stagedir=”.\stage” stage
[표 2] install과 stage 옵션 설정 명령어 예
다음으로 알아볼 것은 build-type 옵션이다.
build-type에는 minimal과 complete 옵션을 사용할 수 있다. 그리고 추가적으로 release와 debug 옵션을 줄 수 있다.
bjam.exe –build-type=complete release debug install
bjam.exe –build-type=complete release stage
bjam.exe release debug stage
[표 3] build-type 옵션 설정 예제
-tooset 옵션의 경우에는 Visual C++을 이용하기 때문에 msvc로 설정한다.
마지막으로 가장 중요한 iostream 라이브러리에서 사용하는 외부 라이브러리 build 이다. 이미지 압축을 위해 사용할 zlib를 다운로드(http://www.zlib.net/)하고 다음과 같이 설정한 후 build를 수행한다.
1. 다운로드 받은 라이브러리를 적당한 경로에 압축을 풀고, 해당 경로를 환경변수로 설정한다.
set ZLIB_SOURCE=”C:\Lib\zlib”
2. Boost를 build 한다.
[표 4] zlib 빌드 옵션 예
Boost의 build가 끝나면 Visual studio 2008에서 다음과 같이 boost의 헤더파일과 라이브러리를 추가하면 프로젝트에서 Boost 라이브러리를 사용할 수 있다.
2009년 10월 9일 금요일
2009년 8월 29일 토요일
[MFC]버튼에 마우스가 올라가 있을때 툴팁을 띄우는 방법입니다
버튼에 마우스가 올라가 있을때 툴팁을 띄우는 방법입니다.
1. 버튼이 속한 다이얼로그등의 클래스 안에 CToolTipCtrl 클래스 객체를 생성합니다.
EX) CToolTipCtrl m_ToolTip;
2. OnInitDialog() 함수안에서 초기화를 해줍니다.
m_ToolTip.Create(this); //. 생성
m_ToolTip.AddTool(GetDlgItem( ID입력 ), "어떤 작업을 수행합니다."); //. 툴팁추가
m_ToolTip.SetTipBkColor(RGB(0, 0, 0)); //. 배경색
m_ToolTip.SetTipTextColor(RGB(255, 255, 255)); //. 텍스트색
3. PreTranslateMessage(MSG* pMsg) 에서 m_ToolTip.RelayEvent(pMsg); 를 적용합니다.
1. 버튼이 속한 다이얼로그등의 클래스 안에 CToolTipCtrl 클래스 객체를 생성합니다.
EX) CToolTipCtrl m_ToolTip;
2. OnInitDialog() 함수안에서 초기화를 해줍니다.
m_ToolTip.Create(this); //. 생성
m_ToolTip.AddTool(GetDlgItem( ID입력 ), "어떤 작업을 수행합니다."); //. 툴팁추가
m_ToolTip.SetTipBkColor(RGB(0, 0, 0)); //. 배경색
m_ToolTip.SetTipTextColor(RGB(255, 255, 255)); //. 텍스트색
3. PreTranslateMessage(MSG* pMsg) 에서 m_ToolTip.RelayEvent(pMsg); 를 적용합니다.
2009년 8월 21일 금요일
[ API ] CreateWindow 함수
CreateWindow함수는 오버랩드, 팝업, 차일드 윈도우를 생성한다. 지정한 윈도우 클래스, 윈도우 타이틀, 윈도우 스타일, 그리고 윈도우의 초기위치와 크기를 지정한다( 위치와 크기는 옵션입니다. 그렇게 해도되고 안해도 상관없는.. ). 그리고 생성할 윈도우의 parent(부모)나 owner(부모가 없는 메인윈도우)를 지정하고 또한 윈도우의 메뉴도 지정한다.
CreateWindow가 지원하는 스타일에 확장 윈도우 스타일을 추가하려면 CreateWindowEx 함수를 사용한다.
Syntax : 구조
HWND CreateWindow( LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);
Parameters( 매개변수, 인자, 파라미터 )
lpClassName
[입력용변수] NULL로 끝나는 문자열이나 이전의 RegisterClass 또는 RegisterClassEx로 인해 생성된 atom클래스의 포인터.
( 잠깐 atom에 대해서 설명드리자면 시스템이 유지하는 문자테이블을 뜻합니다. 이에대한 자세한 자료는 관련정보를 찾아보세요.. 여기서 설명드리기엔 너무 길어질것 같으니.. 그리고 대게 여기 매개변수에는 "string" 이런식으로 지정하는게 대부분이므로 atom에 대한 해석은 제외하겠습니다 )
만일 lpClassName이 문자열이면, 그것을 윈도우 클래스 이름으로 지정한다. 클래스 이름엔 RegisterClass 나 RegisterClassEx 함수로 registered(등록된)된 이름이 가능하며, 등록된 모듈 클래스는 대게 윈도우를 생성하는 모듈을 지원한다. 그 클래스 이름은 시스템 클래스 이름들에 이미 정의되어 있다. 시스템 클래스 이름들의 리스트를 살펴보려면 Remarks section 을 참고하라.
lpWindowName
[입력용변수] 윈도우 이름을 지정하는 NULL로 끝나는 문자열 포인터. 만일 윈도우 스타일에 타이틀바를 지정했을경우, lpWindowName가 윈도우 타이틀바에 표시된다. 컨트롤, 버턴들, 체크박스들, 스타틱컨트롤들을 CreateWindow로 생성할때 lpWindowName은 컨트롤의 텍스트로 지정된다. SS_ICON스타일로 스타틱 컨트롤을 생성했을땐 lpWindowName은 아이콘 이름이나 식별자로 사용된다. 식별자를 명시하려면 "#num" 구조를 사용한다.
dwStyle
[입력용변수] 생성될 윈도우의 스타일을 지정. 이 파라미터(매개변수)는 Remark 섹션에서 설명하는 윈도우 스타일들, 컨트롤 스타일들과 함께 사용된다.
x
[입력용변수] 윈도우의 초기 수평위치를 지정. 오버랩드(overlapped)나 팝업(pop-up)윈도우는, x파라미터가 화면 좌표의 윈도우의 상단-왼쪽 코너의 초기 x-좌표를 의미한다. 차일드 윈도우는 x는 부모 윈도우의 client영역(작업영역)의 상대적인 상단-왼쪽 코너를 뜻한다. 이 파라미터를 CW_USEDEFAULT로 설정하면, y파라미터를 무시하고 시스템이 윈도우의 상단-왼쪽 코너를 기본값으로 지정한다. CW_USEDEFAULT는 오버랩드 윈도우들에게만 적용되며 만일 팝업, 차일드 윈도우에 지정을 하면 x와 y파라미터는 0 으로 설정된다.
y
[입력용변수] 윈도우의 초기 수직위치를 지정. 오버랩드나 팝업윈도우는 y파라미터가 화면좌표의 윈도우 상단-왼쪽코너 초기y-좌표를 의미하고, 차일드 윈도우의 y는 부모윈도우의 client영역의 상대적인 상단-왼쪽 코너 초기 y-좌표를 뜻한다.
리스트박스의 y는 부모윈도우의 작업역역으로부터 리스트박스 작업영역의 상단-왼쪽 코너 초기 y-좌표가 된다. 만일 오버랩드 윈도우에 WS_VISIBLE 스타일을 bit set(설정)하고 x 파라미터를 CW_USEDEFALUT로 설정했다면, 시스템은 y파라미터를 무시한다.
nWidth
[입력용변수] 윈도우의 가로너비를 지정. 오버랩드 윈도우에선 nWidth는 화면좌표, 또는 CW_USEDEFAULT를 지정한다. CW_USEDEFAULT를 지정하면, 시스템이 알아서 윈도우의 너비와 높이를 지정한다. 만일 팝업 또는 차일드 윈도우에 이 플래그가 지정되면 nWidth와 nHeight는 0으로 설정된다.
nHeight
[입력용변수] 윈도우의 높이를 지정. 오버랩드 윈도우에선 nHeight는 윈도우의 화면좌표의 높이를 지정한다. 만일 nWidth가 CW_USEDEFAULT로 설정되었다면 시스템은 이 값을 무시한다.
hWndParent
[입력용변수] 생성할 윈도우의 부모 또는 소유자 윈도우핸들. 차일드나 소유된 윈도우를 생성하려면 올바른 윈도우 핸들의 정보를 준다. 이 파라미터는 팝업윈도우에도 적용된다.
Windows 2000/XP : message-only윈도우를 생성하기 위해, HWND_MESSAGE 플래그나 현재 실행중인 message-only 윈도우의 핸들의 정보를 준다.(참고로 message-only윈도우란 보이지는 않고 메시지만 받기 위한 용도로 2000부터 지원되는 윈도우 입니다 )
hMenu
[입력용변수]메뉴의 핸들이나, 윈도우 스타일에 의존적인 차일드 윈도우 식별자를 명시한다. 오버랩드나 팝업윈도우의 hMenu는 윈도우에 사용될 수 있는 메뉴인지 확인한다(윈도우 클래스의 메뉴가 NULL이 사용되었는지 확인한다는 뜻). 차일드 윈도우의 hMenu는 차일드-윈도우 식별자를 명시하며, 부모윈도우에게 통지메시지를 보낼 다이얼로그박스컨트롤의 정수값을 명시한다. 응용프로그램은 차일드-윈도우의 식별자를 검사한다( 같은 부모윈도우에 대한 유한 차일드 윈도우 식별자인지 ).
hInstance
[입력용변수] Windows 98/98/Me : 결합될 윈도우 모듈의 인스턴스 핸들.
Windows NT/2000/XP : 이 값은 무시됨.
lpParam
[입력용변수] lpParam 파라미터에 CREATESTRUCT 구조체를 담아 윈도우의 WM_CREATE메시지로 전달하기위한 값의 포인터. 만일 multiple-document interface( MDI ) 클라이언트 윈도우를 CreateWindow로 생성할땐, lpParam엔 CLIENTCREATESTRUCT 구조체의 포인터를 넣는다.
CreateWindow가 지원하는 스타일에 확장 윈도우 스타일을 추가하려면 CreateWindowEx 함수를 사용한다.
Syntax : 구조
HWND CreateWindow( LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);
Parameters( 매개변수, 인자, 파라미터 )
lpClassName
[입력용변수] NULL로 끝나는 문자열이나 이전의 RegisterClass 또는 RegisterClassEx로 인해 생성된 atom클래스의 포인터.
( 잠깐 atom에 대해서 설명드리자면 시스템이 유지하는 문자테이블을 뜻합니다. 이에대한 자세한 자료는 관련정보를 찾아보세요.. 여기서 설명드리기엔 너무 길어질것 같으니.. 그리고 대게 여기 매개변수에는 "string" 이런식으로 지정하는게 대부분이므로 atom에 대한 해석은 제외하겠습니다 )
만일 lpClassName이 문자열이면, 그것을 윈도우 클래스 이름으로 지정한다. 클래스 이름엔 RegisterClass 나 RegisterClassEx 함수로 registered(등록된)된 이름이 가능하며, 등록된 모듈 클래스는 대게 윈도우를 생성하는 모듈을 지원한다. 그 클래스 이름은 시스템 클래스 이름들에 이미 정의되어 있다. 시스템 클래스 이름들의 리스트를 살펴보려면 Remarks section 을 참고하라.
lpWindowName
[입력용변수] 윈도우 이름을 지정하는 NULL로 끝나는 문자열 포인터. 만일 윈도우 스타일에 타이틀바를 지정했을경우, lpWindowName가 윈도우 타이틀바에 표시된다. 컨트롤, 버턴들, 체크박스들, 스타틱컨트롤들을 CreateWindow로 생성할때 lpWindowName은 컨트롤의 텍스트로 지정된다. SS_ICON스타일로 스타틱 컨트롤을 생성했을땐 lpWindowName은 아이콘 이름이나 식별자로 사용된다. 식별자를 명시하려면 "#num" 구조를 사용한다.
dwStyle
[입력용변수] 생성될 윈도우의 스타일을 지정. 이 파라미터(매개변수)는 Remark 섹션에서 설명하는 윈도우 스타일들, 컨트롤 스타일들과 함께 사용된다.
x
[입력용변수] 윈도우의 초기 수평위치를 지정. 오버랩드(overlapped)나 팝업(pop-up)윈도우는, x파라미터가 화면 좌표의 윈도우의 상단-왼쪽 코너의 초기 x-좌표를 의미한다. 차일드 윈도우는 x는 부모 윈도우의 client영역(작업영역)의 상대적인 상단-왼쪽 코너를 뜻한다. 이 파라미터를 CW_USEDEFAULT로 설정하면, y파라미터를 무시하고 시스템이 윈도우의 상단-왼쪽 코너를 기본값으로 지정한다. CW_USEDEFAULT는 오버랩드 윈도우들에게만 적용되며 만일 팝업, 차일드 윈도우에 지정을 하면 x와 y파라미터는 0 으로 설정된다.
y
[입력용변수] 윈도우의 초기 수직위치를 지정. 오버랩드나 팝업윈도우는 y파라미터가 화면좌표의 윈도우 상단-왼쪽코너 초기y-좌표를 의미하고, 차일드 윈도우의 y는 부모윈도우의 client영역의 상대적인 상단-왼쪽 코너 초기 y-좌표를 뜻한다.
리스트박스의 y는 부모윈도우의 작업역역으로부터 리스트박스 작업영역의 상단-왼쪽 코너 초기 y-좌표가 된다. 만일 오버랩드 윈도우에 WS_VISIBLE 스타일을 bit set(설정)하고 x 파라미터를 CW_USEDEFALUT로 설정했다면, 시스템은 y파라미터를 무시한다.
nWidth
[입력용변수] 윈도우의 가로너비를 지정. 오버랩드 윈도우에선 nWidth는 화면좌표, 또는 CW_USEDEFAULT를 지정한다. CW_USEDEFAULT를 지정하면, 시스템이 알아서 윈도우의 너비와 높이를 지정한다. 만일 팝업 또는 차일드 윈도우에 이 플래그가 지정되면 nWidth와 nHeight는 0으로 설정된다.
nHeight
[입력용변수] 윈도우의 높이를 지정. 오버랩드 윈도우에선 nHeight는 윈도우의 화면좌표의 높이를 지정한다. 만일 nWidth가 CW_USEDEFAULT로 설정되었다면 시스템은 이 값을 무시한다.
hWndParent
[입력용변수] 생성할 윈도우의 부모 또는 소유자 윈도우핸들. 차일드나 소유된 윈도우를 생성하려면 올바른 윈도우 핸들의 정보를 준다. 이 파라미터는 팝업윈도우에도 적용된다.
Windows 2000/XP : message-only윈도우를 생성하기 위해, HWND_MESSAGE 플래그나 현재 실행중인 message-only 윈도우의 핸들의 정보를 준다.(참고로 message-only윈도우란 보이지는 않고 메시지만 받기 위한 용도로 2000부터 지원되는 윈도우 입니다 )
hMenu
[입력용변수]메뉴의 핸들이나, 윈도우 스타일에 의존적인 차일드 윈도우 식별자를 명시한다. 오버랩드나 팝업윈도우의 hMenu는 윈도우에 사용될 수 있는 메뉴인지 확인한다(윈도우 클래스의 메뉴가 NULL이 사용되었는지 확인한다는 뜻). 차일드 윈도우의 hMenu는 차일드-윈도우 식별자를 명시하며, 부모윈도우에게 통지메시지를 보낼 다이얼로그박스컨트롤의 정수값을 명시한다. 응용프로그램은 차일드-윈도우의 식별자를 검사한다( 같은 부모윈도우에 대한 유한 차일드 윈도우 식별자인지 ).
hInstance
[입력용변수] Windows 98/98/Me : 결합될 윈도우 모듈의 인스턴스 핸들.
Windows NT/2000/XP : 이 값은 무시됨.
lpParam
[입력용변수] lpParam 파라미터에 CREATESTRUCT 구조체를 담아 윈도우의 WM_CREATE메시지로 전달하기위한 값의 포인터. 만일 multiple-document interface( MDI ) 클라이언트 윈도우를 CreateWindow로 생성할땐, lpParam엔 CLIENTCREATESTRUCT 구조체의 포인터를 넣는다.
2009년 8월 19일 수요일
얼굴로 병알아보기
● 눈 밑 기미
→ 피가 탁하다
눈 밑은 다른 부위보다 피부가 얇아서 혈액 색깔이 그대로 드러나는데, 눈 주위의 검은 기미는 피가 탁하다는 얘기다. 혈액순환 장애, 비뇨기와 생식기를 관장하는 신장 기능 저하가 그 원인. 신장이 약해지면 호르몬 분비가 원활하지 않아 눈 밑에 다크서클이 생기고, 전체적인 얼굴색도 칙칙해 보인다.
● 부은 눈꺼풀
→ 신장, 위장 장애
잠자기 전 물을 마시지도 않았는데 아침에 눈꺼풀이 부어 있다면 체내 수분 순환에 탈이 났다는 증거다. 신장이나 위장, 심장 장애 등을 의심할 수 있다. ‘다리가 천근만근이다’, ‘입 안이 바짝 마른다’, ‘소변을 시원하게 못 보고 자주 마렵다’ 등의 증상이 나타난다. 특히 대변이 묽고 식욕 부진이 찾아오면 위장, 발이 자주 붓는다면 심장 기능을 검진해봐야 한다.
● 아래 눈꺼풀 안쪽이 하얗다
→ 대표적인 빈혈 증상
아래 눈꺼풀을 살짝 뒤집으면 점막에 많은 실핏줄이 보이는데, 만약 이것이 흐리다면 빈혈이다. 앉았다가 일어설 때 어지럽다면 틀림없이 아래 눈꺼풀 안쪽이 하얄 것이다. 여성은 월경으로 빈혈에 걸리기 쉽기 때문에 아래 눈꺼풀을 자주 뒤집어보고 확인해보는 것이 좋다.
● 눈물이 줄줄 흐른다
→ 간장이 약하거나 자율신경 이상
가만히 있어도 눈물이 줄줄 흐른다면 간이 약해졌을 가능성이 높다. 눈은 간장과 밀접한 관련이 있어, 간에 이상이 생기면 눈도 제 기능을 못한다. 운동과 수면 부족, 과도한 스트레스로 인해 눈물샘을 자극하는 자율신경 기능이 떨어져도 이 같은 증상을 일으킬 수 있다.
● 눈꺼풀에 생긴 작은 알갱이
→ 콜레스테롤 과다
간혹 눈꺼풀에 좁쌀 같은 부스럼이 볼록 솟아오르는 때가 있다. 눈을 많이 사용해 충혈이 되었거나, 눈에 이물질이 들어가 자극을 주었을 때, 눈 주위의 혈액순환이 나빠져 지방질이 뭉친 것이다. 충분한 휴식을 취하면 자연히 없어지는데, 계속 재발하면 콜레스테롤이 과다하다는 신호로 여기고 식생활을 점검해보는 것이 좋다.
● 콧방울을 실룩거린다
→ 호흡 곤란
평상시 호흡할 땐 코를 움직이지 않지만, 호흡이 곤란하면 콧방울을 실룩거리게 된다. 폐렴이나 기관지염, 천식, 감기 등으로 호흡기의 기능이 약해진 사람은 콧방울을 실룩거리는 경우가 많다. 습관이 될 수 있으므로 감기 등의 증상이 나타나면 바로 처방한다.
● 코에 생긴 뾰루지
→ 폐, 대장에 이상
폐나 폐와 함께 움직이는 대장에 문제가 생기지 않았나 의심해봐야 한다. 배변은 호흡과 연관이 깊은데, 이는 변을 볼 때 숨을 멈췄다 내쉬었다 하면 배변이 촉진된다는 사실에서도 잘 알 수 있다. 따라서 기관지 천식 등 호흡기가 약한 사람은 변비로 고생할 확률이 높다.
● 빨간 코
→ 간장에 혈액이 고여 있다
코끝이 항상 빨갛게 부어 있으면 과음이나 심한 운동, 혈관 운동 장애 등으로 간장에 혈액이 고여 있다는 신호다. 이런 상태가 오래 지속되면 코가 울퉁불퉁하고 커진다. 간장이 좋지 않은 사람은 손바닥도 빨갛다.
● 잦은 코피
→ 위장이 약하다
미미한 자극에도 코피가 터진다면 위장을 점검해보자. 위장이 약한 사람은 영양분 흡수가 원활하지 않아 근육 조직이 약하다. 잇몸에서 피가 잘 나고, 멍이 잘 생기며, 혈관도 물러 찢어지기 쉽다. 간혹 아이들이 몸에 열이 많을 때 코피를 자주 터뜨리는데, 이는 대뇌가 완전히 발달하지 않아서 체온 조절이 잘 안 되기 때문이므로 걱정하지 않아도 된다.
● 입가 뾰루지
→ 위장이 약하다
입이나 턱에 뾰루지, 습진이 생기는 사람은 대개 위장이 허약하다. 입가의 부스럼은 위장 점막의 염증이 의심되는 징후다. 모두에게 적용되는 건 아니지만, 대개 입이 큰 사람은 위장이 튼튼하고, 입이 작은 사람은 위장이 허약하고 편식하는 경향이 있다.
● 입아귀가 잘 헌다
→ 위염
입아귀(위아래 입술이 만나는 이음매)가 헐거나 빨갛게 짓무르면 위염이 의심된다. 음식을 제대로 씹지 않고 삼키거나 과식을 하면 위벽이 헐고, 입아귀도 헌다. 위염이 있으면 가끔 식욕을 억제하지 못하기도 하는데, 가짜 식욕이므로 주의해야 한다. 매운 음식도 금물. 위액이 부족해져 위장이 마르고, 열이 생겨 입아귀가 헌다.
● 창백한 입술
→ 빈혈
입술은 입 안 점막과 하나로 연결되어 있는데, 점막은 표피가 얇기 때문에 혈액 색깔이 그대로 비친다. 따라서 붉어야 건강한 입술. 입술이 창백하다면 혈액이 붉지 않다는 말로, 혈색소가 부족해 빈혈을 일으킨다.
● 입술이 거칠다
→ 당뇨, 체온 상승
입술이 건조해지는 것은 체온이 상승했기 때문. 미열이 나고 손발이 뜨거워지는 등의 증상이 나타난다. 당뇨가 있으면 체온이 올라가 입술이 건조해지고, 만성위염으로 침이 줄어 까칠해진다. 노화나 피로로 몸에 수분이 부족해도 마찬가지. 이때 입술에 침을 바르거나 손으로 뜯는 것은 금물. 주위의 살아 있는 조직도 함께 뜯겨 상태가 더 악화된다.
● 구내염
→ 면역력 저하
입 안 점막에 생기는 염증은 면역력이 떨어졌다는 적신호다. 사람의 침에 들어 있는 항균물질은 세균이나 바이러스의 침입을 막아주는데, 만약 면역력이 떨어져 항균물질의 저항력이 약해지면 점막이 세균에 감염돼 구내염이 생긴다. 과식이나 스트레스로 인해 위장에 염증이 생겼을 때도 구내염에 걸리기 쉽다.
● 혀에 생긴 균열
→ 수분 부족, 허약 체질
혀 중앙에 있는 정중선은 건강한 사람에게서 흔히 볼 수 있다. 정중선이 아닌 곳에 균열이 생겼다면 몸속에 수분이 부족하다는 뜻이다. 젊은 사람이 혀가 갈라지고, 입 안이 자꾸 마른다면 허약 체질이거나 과로로 체력이 많이 소모된 거라고 보면 된다.
● 설태가 두껍다
→ 위장 장애
설태(혓바닥에 끼는 하얀 찌꺼기 같은 물질)는 주로 혀 세포의 각질이 변해서 생기는 것으로, 건강한 사람은 하얀 이끼처럼 낀다. 설태가 두껍다면 위장에 소화되지 못한 음식물이나 수분이 가득 쌓여 있다는 뜻. 설태가 노란색을 띠면 열이 있다는 것이고, 보라색은 혈액순환 장애, 검은색은 몸이 냉하거나 체력이 극도로 저하돼 있음을 가리킨다.
● 충치
→ 골다공증에 걸리기 쉽다
하루에 3번, 식후 3분 이내, 3분 동안 양치질을 하는 ‘333운동’을 잘 지키는데도 유난히 충치가 많은 사람이 있다. 이런 사람들은 대체로 뼈가 약하다. 뼈가 약하면 충치뿐만 아니라 골다공증도 잘 생긴다. 신장이 약해도 치아 발육이 떨어져 충치균에 쉽게 점령당할 수 있다.
● 빨갛게 부은 잇몸
→ 위염, 쌓인 피로
먼저 위장의 염증이 의심된다. 이가 흔들리고 입 냄새가 심하다면 치아나 잇몸 질환에 걸렸을 가능성도 있다. 피로로 인한 면역력 저하 역시 잇몸 질환을 초래한다. ‘애를 낳았더니 이가 부실해졌어’, ‘피곤하니까 이까지 덜덜거리는 것 같아’ 등의 얘기가 바로 이런 의미다.
● 잇몸에서 피가 난다
→ 위장이 약하다
잇몸 질환뿐 아니라 위장이 허약해도 양치질을 할 때 피가 날 수 있다. 위장이 약하면 소화 흡수 능력이 떨어져 영양이 부족해지고, 혈관이 약해져 사소한 자극으로도 출혈이 일어난다. 위장을 튼튼히 하려면 꼭꼭 씹어 먹는 습관을 갖자.
● 청년 탈모증
→ 동물성 지방 과다 섭취
청년 탈모증은 식생활과 밀접한 관련이 있다. 버터나 고기 등 동물성 지방을 너무 많이 섭취하면 남성호르몬이 과다 분비돼 생식기 기능이 떨어진다. 생식기를 관장하는 곳은 신장. 따라서 젊은 나이에 대머리가 되었다면 신장이 약하다고 볼 수 있고, 동시에 성적 기능이나 정자 수도 줄어들었을 가능성이 높다.
● 갑작스러운 탈모
→ 스트레스
환절기에는 머리카락이 한 움큼씩 빠진다고 해도 자연스러운 현상이므로 걱정할 필요가 없다. 하지만 머리를 감을 때 등 평상시에도 눈에 띄게 빠진다면 주의해야 한다. 특히 가느다란 머리카락이 빠진다면, 성장이 완전히 끝나기 전에 빠졌다는 것이므로 탈모를 의심해봐야 한다. 신장 기능 약화, 영양 불균형에서 오는 빈혈, 정신적인 스트레스 등이 원인이다.
● 머리카락이 가늘어졌다
→ 빈혈, 노화 현상
중년으로 접어들면 머리카락이 힘없이 가늘어지는 경우가 많다. 나이가 들어 신장의 에너지가 약해지고, 호르몬의 분비가 줄어들면서 머리카락도 탄력을 잃기 때문이다. 젊은 나이인데도 머리카락이 가늘다면, 빈혈이나 신장병 여부를 검사해봐야 한다.
● 새치
→ 신장이 약하다
새치의 양과 시기는 유전적인 영향이 크다. 머리가 하얗게 셌다고 해도 머릿결이 윤택하고 찰랑찰랑하다면 건강에는 큰 문제가 없다. 그러나 10~20대부터 흰머리가 눈에 띄거나, 30대에 이미 백발이 성성하다면 유전이라기보다는 신체 이변에서 오는 ‘조로(나이에 비해 빨리 늙는 것) 현상’일 수 있다. 새치는 신장이 약해서 나타나는 증상이다.
건강|손이 알려주는 10가지 건강 신호
붉디붉은 내 손바닥 손은 눈과 함께 간의 상태를 알아볼 수 있는 중요한 지표가 된다. 평소 왕성한 혈액순환을 자랑하던 붉은 손바닥이 사실은 약해진 간 기능을 열렬히 외치는 사인이었던 것. 손바닥이 다른 사람보다 심하게 붉다면 방치하지 말고 당장 병원을 찾아가자. 호르몬의 불균형에서 오는 ‘수장홍반(手掌紅班)’일 가능성이 크다. 수장홍반은 간경변의 대표 증세. 손목과 만나는 손바닥 가장자리에 붉은 반점이 있고 점차 그 반점이 손가락 가까이로 번지는 것이 특징이다. 손바닥의 붉기만큼 당신의 간도 힘들어하고 있다.
오동통한 내 손가락~ 신체의 어느 부위건 과하면 좋지 않다. 손가락이 통통하다는 것은 무엇을 뜻하는가? 몸에 살이 많다는 것이다. 전문 용어로 콜레스테롤 수치가 높은 사람이다. 살이 찌면 손가락도 찐다. 눈에 띌 정도로 통통한 손가락의 주인은 콜레스테롤의 조용한 위협을 감지하지 못하고 있다는 증거다. 높은 콜레스테롤 수치는 고지혈증의 원인 중 하나. 특히 손마디에 살이 많다면 가족성 고지혈증의 가능성이 있으니 평소 식이요법과 운동을 통해 적절한 체중을 유지하도록 노력해야 한다.
손톱에 물이 고인다? 대부분의 사람은 손톱의 표면이 볼록한 굴곡을 이루고 있다. 하지만 철분이 부족한 사람은 손톱의 중간 부분이 움푹 들어간 숟가락 형상을 띤다. 특별한 이유 없이 피곤하거나 힘이 없고, 빈혈로 고생하는 경우가 많으므로 철분 보충제를 섭취할 필요가 있다. 철분 결핍은 손톱을 약하게 만들어 손톱의 두께가 얇아지고 부분적으로 깨지기도 한다. 스스로 철분이 부족하다고 생각하는 사람은 철분 흡수를 방해하는 녹차, 홍차, 커피 등 카페인이 들어간 음식은 피하는 것이 좋다.
손가락이 곤봉형이다? 손끝으로 갈수록 손가락이 굵어지고 끝이 뭉툭한 모양이라면 폐암 같은 심각한 질환을 의심해봐야 한다. 또는 폐를 둘러싸고 있는 흉막, 간 등을 보호하는 복막, 심장을 보호하는 복막 등 중피에 종양이 발생하는 중피종도 고려해야 한다. 폐에 종양이 생기면 몸이 필요로 하는 양보다 10배 정도 많은 콜라겐 분해 성분 PGE2가 생성되는데, 바로 이 과도한 PGE2의 생성이 손가락 끝을 굵고 뭉툭하게 만드는 것. 손가락이 점점 이상하게 변해간다면 신체 어딘가에 이상이 있다는 신호이니 주저 말고 병원을 찾자.
손톱이 푸르스름하다? 다른 사람과 비교해봤을 때 손톱이 조금이라도 푸르스름하다면 심장병을 의심해보자. 응급 상황에서 체내 산소량이 얼마나 되는지 알 수 있는 가장 쉬운 방법 중 하나가 손톱, 발톱, 입술색을 확인하는 것이다. 핑크빛 대신 푸른빛을 띤다면 체내 산소 수치가 낮다는 뜻이다. ‘청색증’이라고도 하는 이 증상은 혈액 내 산소량이 충분치 못할 때, 즉 혈액의 흐름이 원활하지 못할 때 나타나는 것. 이 증상은 심장병이 있을 가능성을 보여주는 위험 신호다. 단, 청색증이라고 선명한 파란색을 띠는 것이 아니라 혈액 공급이 원활할 때 나타나는 붉은빛보다 덜 밝은 빛으로 나타난다는 점을 명심하자.
손톱에 하얀 점이 생겼다? 흔히 영양 결핍 때문으로 알고 있는 손톱의 하얀 점은 손톱에서 나타나는 거품의 일종. 손톱에 작은 거품이 생겼다면 류머티즘성 관절염의 신호일 수 있다. 특별한 이상이 없더라도 손발톱에 이런 것이 많이 나타난다면 관절염의 가능성이 더 높다는 뜻이니 평소에 신경 써야 한다.
손가락에 혹이 생겼어요 손가락에 육안으로 볼 수 있는 혹이 생겼다는 것은 일종의 뼈 종양이고, 뼈 종양이 있으면 살짝 건드리기만 해도 아프다. ‘헤베르덴 결절’이라 불리는 이런 종양은 다행히 육안으로 확인하기 쉽다. 또 손가락에 생긴 뼈 종양은 골반이나 무릎과 같이 신체의 관절에도 골관절염이 있을 수 있다는 반증이므로 종양이 확인되면 손가락뿐만 아니라 신체의 골관절을 면밀히 검사하는 것이 좋다.
투톤 손톱 딱 보기에도 수상하다. 손톱의 반은 하얀색을 띠지만 나머지 반이 갈색이라면 신장이 안 좋다는 뜻. 단백질이 분해되면서 생성된 암모니아가 요소로 전환돼 소변과 함께 몸 밖으로 배출돼야 하는데, 신장의 기능이 원활하지 못하면 몸속에 쌓인 요소가 피부와 손톱에 남아 나타나는 증상이다.
손에 땀이 많이 난다면? 다한증이라고 불리는 손에 땀이 많이 나는 증상은 손 관련 질환 중 가장 많이 알려진 대표 질환이다. 다한증은 남성보다 여성에게 많이 발병하는데, 그 원인은 아직 정확하게 밝혀지지 않았다. 다만 갑상선에 이상이 있을 때 나타나는 증상이라고만 알려져 있다. 혈액 속에 갑상선호르몬의 농도가 높아지면 손바닥에 열이 많아지고 땀이 나는 것. 갑상선에 이상이 생기면 무기력증과 피로감뿐 아니라 더 큰 병을 불러올 수 있으므로 하루빨리 전문 치료를 받는 것이 좋다.
손이 점점 커져요 몸에 비례해 손이 크다면 뇌하수체에 이상이 있다는 것이다. 손뿐만 아니라 발, 입술, 코, 귀 등 신체 말단의 특정 부위가 크다면 말단비대증의 위험이 높다. 뇌 사상하부 밑에 위치한 뇌하수체는 각종 호르몬선의 호르몬 분비량과 시간을 조절하는데, 뇌하수체 종양으로 인해 기능 항진이 일어나면 거인증, 말단비대증 등이 생길 수 있는 것. 모든 호르몬 이상 증세가 그렇지만 말단비대증은 합병증을 유발하기 때문에 더욱더 위험하다. 다행히 종양의 크기가 작을수록 완치율도 높다.
→ 피가 탁하다
눈 밑은 다른 부위보다 피부가 얇아서 혈액 색깔이 그대로 드러나는데, 눈 주위의 검은 기미는 피가 탁하다는 얘기다. 혈액순환 장애, 비뇨기와 생식기를 관장하는 신장 기능 저하가 그 원인. 신장이 약해지면 호르몬 분비가 원활하지 않아 눈 밑에 다크서클이 생기고, 전체적인 얼굴색도 칙칙해 보인다.
● 부은 눈꺼풀
→ 신장, 위장 장애
잠자기 전 물을 마시지도 않았는데 아침에 눈꺼풀이 부어 있다면 체내 수분 순환에 탈이 났다는 증거다. 신장이나 위장, 심장 장애 등을 의심할 수 있다. ‘다리가 천근만근이다’, ‘입 안이 바짝 마른다’, ‘소변을 시원하게 못 보고 자주 마렵다’ 등의 증상이 나타난다. 특히 대변이 묽고 식욕 부진이 찾아오면 위장, 발이 자주 붓는다면 심장 기능을 검진해봐야 한다.
● 아래 눈꺼풀 안쪽이 하얗다
→ 대표적인 빈혈 증상
아래 눈꺼풀을 살짝 뒤집으면 점막에 많은 실핏줄이 보이는데, 만약 이것이 흐리다면 빈혈이다. 앉았다가 일어설 때 어지럽다면 틀림없이 아래 눈꺼풀 안쪽이 하얄 것이다. 여성은 월경으로 빈혈에 걸리기 쉽기 때문에 아래 눈꺼풀을 자주 뒤집어보고 확인해보는 것이 좋다.
● 눈물이 줄줄 흐른다
→ 간장이 약하거나 자율신경 이상
가만히 있어도 눈물이 줄줄 흐른다면 간이 약해졌을 가능성이 높다. 눈은 간장과 밀접한 관련이 있어, 간에 이상이 생기면 눈도 제 기능을 못한다. 운동과 수면 부족, 과도한 스트레스로 인해 눈물샘을 자극하는 자율신경 기능이 떨어져도 이 같은 증상을 일으킬 수 있다.
● 눈꺼풀에 생긴 작은 알갱이
→ 콜레스테롤 과다
간혹 눈꺼풀에 좁쌀 같은 부스럼이 볼록 솟아오르는 때가 있다. 눈을 많이 사용해 충혈이 되었거나, 눈에 이물질이 들어가 자극을 주었을 때, 눈 주위의 혈액순환이 나빠져 지방질이 뭉친 것이다. 충분한 휴식을 취하면 자연히 없어지는데, 계속 재발하면 콜레스테롤이 과다하다는 신호로 여기고 식생활을 점검해보는 것이 좋다.
● 콧방울을 실룩거린다
→ 호흡 곤란
평상시 호흡할 땐 코를 움직이지 않지만, 호흡이 곤란하면 콧방울을 실룩거리게 된다. 폐렴이나 기관지염, 천식, 감기 등으로 호흡기의 기능이 약해진 사람은 콧방울을 실룩거리는 경우가 많다. 습관이 될 수 있으므로 감기 등의 증상이 나타나면 바로 처방한다.
● 코에 생긴 뾰루지
→ 폐, 대장에 이상
폐나 폐와 함께 움직이는 대장에 문제가 생기지 않았나 의심해봐야 한다. 배변은 호흡과 연관이 깊은데, 이는 변을 볼 때 숨을 멈췄다 내쉬었다 하면 배변이 촉진된다는 사실에서도 잘 알 수 있다. 따라서 기관지 천식 등 호흡기가 약한 사람은 변비로 고생할 확률이 높다.
● 빨간 코
→ 간장에 혈액이 고여 있다
코끝이 항상 빨갛게 부어 있으면 과음이나 심한 운동, 혈관 운동 장애 등으로 간장에 혈액이 고여 있다는 신호다. 이런 상태가 오래 지속되면 코가 울퉁불퉁하고 커진다. 간장이 좋지 않은 사람은 손바닥도 빨갛다.
● 잦은 코피
→ 위장이 약하다
미미한 자극에도 코피가 터진다면 위장을 점검해보자. 위장이 약한 사람은 영양분 흡수가 원활하지 않아 근육 조직이 약하다. 잇몸에서 피가 잘 나고, 멍이 잘 생기며, 혈관도 물러 찢어지기 쉽다. 간혹 아이들이 몸에 열이 많을 때 코피를 자주 터뜨리는데, 이는 대뇌가 완전히 발달하지 않아서 체온 조절이 잘 안 되기 때문이므로 걱정하지 않아도 된다.
● 입가 뾰루지
→ 위장이 약하다
입이나 턱에 뾰루지, 습진이 생기는 사람은 대개 위장이 허약하다. 입가의 부스럼은 위장 점막의 염증이 의심되는 징후다. 모두에게 적용되는 건 아니지만, 대개 입이 큰 사람은 위장이 튼튼하고, 입이 작은 사람은 위장이 허약하고 편식하는 경향이 있다.
● 입아귀가 잘 헌다
→ 위염
입아귀(위아래 입술이 만나는 이음매)가 헐거나 빨갛게 짓무르면 위염이 의심된다. 음식을 제대로 씹지 않고 삼키거나 과식을 하면 위벽이 헐고, 입아귀도 헌다. 위염이 있으면 가끔 식욕을 억제하지 못하기도 하는데, 가짜 식욕이므로 주의해야 한다. 매운 음식도 금물. 위액이 부족해져 위장이 마르고, 열이 생겨 입아귀가 헌다.
● 창백한 입술
→ 빈혈
입술은 입 안 점막과 하나로 연결되어 있는데, 점막은 표피가 얇기 때문에 혈액 색깔이 그대로 비친다. 따라서 붉어야 건강한 입술. 입술이 창백하다면 혈액이 붉지 않다는 말로, 혈색소가 부족해 빈혈을 일으킨다.
● 입술이 거칠다
→ 당뇨, 체온 상승
입술이 건조해지는 것은 체온이 상승했기 때문. 미열이 나고 손발이 뜨거워지는 등의 증상이 나타난다. 당뇨가 있으면 체온이 올라가 입술이 건조해지고, 만성위염으로 침이 줄어 까칠해진다. 노화나 피로로 몸에 수분이 부족해도 마찬가지. 이때 입술에 침을 바르거나 손으로 뜯는 것은 금물. 주위의 살아 있는 조직도 함께 뜯겨 상태가 더 악화된다.
● 구내염
→ 면역력 저하
입 안 점막에 생기는 염증은 면역력이 떨어졌다는 적신호다. 사람의 침에 들어 있는 항균물질은 세균이나 바이러스의 침입을 막아주는데, 만약 면역력이 떨어져 항균물질의 저항력이 약해지면 점막이 세균에 감염돼 구내염이 생긴다. 과식이나 스트레스로 인해 위장에 염증이 생겼을 때도 구내염에 걸리기 쉽다.
● 혀에 생긴 균열
→ 수분 부족, 허약 체질
혀 중앙에 있는 정중선은 건강한 사람에게서 흔히 볼 수 있다. 정중선이 아닌 곳에 균열이 생겼다면 몸속에 수분이 부족하다는 뜻이다. 젊은 사람이 혀가 갈라지고, 입 안이 자꾸 마른다면 허약 체질이거나 과로로 체력이 많이 소모된 거라고 보면 된다.
● 설태가 두껍다
→ 위장 장애
설태(혓바닥에 끼는 하얀 찌꺼기 같은 물질)는 주로 혀 세포의 각질이 변해서 생기는 것으로, 건강한 사람은 하얀 이끼처럼 낀다. 설태가 두껍다면 위장에 소화되지 못한 음식물이나 수분이 가득 쌓여 있다는 뜻. 설태가 노란색을 띠면 열이 있다는 것이고, 보라색은 혈액순환 장애, 검은색은 몸이 냉하거나 체력이 극도로 저하돼 있음을 가리킨다.
● 충치
→ 골다공증에 걸리기 쉽다
하루에 3번, 식후 3분 이내, 3분 동안 양치질을 하는 ‘333운동’을 잘 지키는데도 유난히 충치가 많은 사람이 있다. 이런 사람들은 대체로 뼈가 약하다. 뼈가 약하면 충치뿐만 아니라 골다공증도 잘 생긴다. 신장이 약해도 치아 발육이 떨어져 충치균에 쉽게 점령당할 수 있다.
● 빨갛게 부은 잇몸
→ 위염, 쌓인 피로
먼저 위장의 염증이 의심된다. 이가 흔들리고 입 냄새가 심하다면 치아나 잇몸 질환에 걸렸을 가능성도 있다. 피로로 인한 면역력 저하 역시 잇몸 질환을 초래한다. ‘애를 낳았더니 이가 부실해졌어’, ‘피곤하니까 이까지 덜덜거리는 것 같아’ 등의 얘기가 바로 이런 의미다.
● 잇몸에서 피가 난다
→ 위장이 약하다
잇몸 질환뿐 아니라 위장이 허약해도 양치질을 할 때 피가 날 수 있다. 위장이 약하면 소화 흡수 능력이 떨어져 영양이 부족해지고, 혈관이 약해져 사소한 자극으로도 출혈이 일어난다. 위장을 튼튼히 하려면 꼭꼭 씹어 먹는 습관을 갖자.
● 청년 탈모증
→ 동물성 지방 과다 섭취
청년 탈모증은 식생활과 밀접한 관련이 있다. 버터나 고기 등 동물성 지방을 너무 많이 섭취하면 남성호르몬이 과다 분비돼 생식기 기능이 떨어진다. 생식기를 관장하는 곳은 신장. 따라서 젊은 나이에 대머리가 되었다면 신장이 약하다고 볼 수 있고, 동시에 성적 기능이나 정자 수도 줄어들었을 가능성이 높다.
● 갑작스러운 탈모
→ 스트레스
환절기에는 머리카락이 한 움큼씩 빠진다고 해도 자연스러운 현상이므로 걱정할 필요가 없다. 하지만 머리를 감을 때 등 평상시에도 눈에 띄게 빠진다면 주의해야 한다. 특히 가느다란 머리카락이 빠진다면, 성장이 완전히 끝나기 전에 빠졌다는 것이므로 탈모를 의심해봐야 한다. 신장 기능 약화, 영양 불균형에서 오는 빈혈, 정신적인 스트레스 등이 원인이다.
● 머리카락이 가늘어졌다
→ 빈혈, 노화 현상
중년으로 접어들면 머리카락이 힘없이 가늘어지는 경우가 많다. 나이가 들어 신장의 에너지가 약해지고, 호르몬의 분비가 줄어들면서 머리카락도 탄력을 잃기 때문이다. 젊은 나이인데도 머리카락이 가늘다면, 빈혈이나 신장병 여부를 검사해봐야 한다.
● 새치
→ 신장이 약하다
새치의 양과 시기는 유전적인 영향이 크다. 머리가 하얗게 셌다고 해도 머릿결이 윤택하고 찰랑찰랑하다면 건강에는 큰 문제가 없다. 그러나 10~20대부터 흰머리가 눈에 띄거나, 30대에 이미 백발이 성성하다면 유전이라기보다는 신체 이변에서 오는 ‘조로(나이에 비해 빨리 늙는 것) 현상’일 수 있다. 새치는 신장이 약해서 나타나는 증상이다.
건강|손이 알려주는 10가지 건강 신호
붉디붉은 내 손바닥 손은 눈과 함께 간의 상태를 알아볼 수 있는 중요한 지표가 된다. 평소 왕성한 혈액순환을 자랑하던 붉은 손바닥이 사실은 약해진 간 기능을 열렬히 외치는 사인이었던 것. 손바닥이 다른 사람보다 심하게 붉다면 방치하지 말고 당장 병원을 찾아가자. 호르몬의 불균형에서 오는 ‘수장홍반(手掌紅班)’일 가능성이 크다. 수장홍반은 간경변의 대표 증세. 손목과 만나는 손바닥 가장자리에 붉은 반점이 있고 점차 그 반점이 손가락 가까이로 번지는 것이 특징이다. 손바닥의 붉기만큼 당신의 간도 힘들어하고 있다.
오동통한 내 손가락~ 신체의 어느 부위건 과하면 좋지 않다. 손가락이 통통하다는 것은 무엇을 뜻하는가? 몸에 살이 많다는 것이다. 전문 용어로 콜레스테롤 수치가 높은 사람이다. 살이 찌면 손가락도 찐다. 눈에 띌 정도로 통통한 손가락의 주인은 콜레스테롤의 조용한 위협을 감지하지 못하고 있다는 증거다. 높은 콜레스테롤 수치는 고지혈증의 원인 중 하나. 특히 손마디에 살이 많다면 가족성 고지혈증의 가능성이 있으니 평소 식이요법과 운동을 통해 적절한 체중을 유지하도록 노력해야 한다.
손톱에 물이 고인다? 대부분의 사람은 손톱의 표면이 볼록한 굴곡을 이루고 있다. 하지만 철분이 부족한 사람은 손톱의 중간 부분이 움푹 들어간 숟가락 형상을 띤다. 특별한 이유 없이 피곤하거나 힘이 없고, 빈혈로 고생하는 경우가 많으므로 철분 보충제를 섭취할 필요가 있다. 철분 결핍은 손톱을 약하게 만들어 손톱의 두께가 얇아지고 부분적으로 깨지기도 한다. 스스로 철분이 부족하다고 생각하는 사람은 철분 흡수를 방해하는 녹차, 홍차, 커피 등 카페인이 들어간 음식은 피하는 것이 좋다.
손가락이 곤봉형이다? 손끝으로 갈수록 손가락이 굵어지고 끝이 뭉툭한 모양이라면 폐암 같은 심각한 질환을 의심해봐야 한다. 또는 폐를 둘러싸고 있는 흉막, 간 등을 보호하는 복막, 심장을 보호하는 복막 등 중피에 종양이 발생하는 중피종도 고려해야 한다. 폐에 종양이 생기면 몸이 필요로 하는 양보다 10배 정도 많은 콜라겐 분해 성분 PGE2가 생성되는데, 바로 이 과도한 PGE2의 생성이 손가락 끝을 굵고 뭉툭하게 만드는 것. 손가락이 점점 이상하게 변해간다면 신체 어딘가에 이상이 있다는 신호이니 주저 말고 병원을 찾자.
손톱이 푸르스름하다? 다른 사람과 비교해봤을 때 손톱이 조금이라도 푸르스름하다면 심장병을 의심해보자. 응급 상황에서 체내 산소량이 얼마나 되는지 알 수 있는 가장 쉬운 방법 중 하나가 손톱, 발톱, 입술색을 확인하는 것이다. 핑크빛 대신 푸른빛을 띤다면 체내 산소 수치가 낮다는 뜻이다. ‘청색증’이라고도 하는 이 증상은 혈액 내 산소량이 충분치 못할 때, 즉 혈액의 흐름이 원활하지 못할 때 나타나는 것. 이 증상은 심장병이 있을 가능성을 보여주는 위험 신호다. 단, 청색증이라고 선명한 파란색을 띠는 것이 아니라 혈액 공급이 원활할 때 나타나는 붉은빛보다 덜 밝은 빛으로 나타난다는 점을 명심하자.
손톱에 하얀 점이 생겼다? 흔히 영양 결핍 때문으로 알고 있는 손톱의 하얀 점은 손톱에서 나타나는 거품의 일종. 손톱에 작은 거품이 생겼다면 류머티즘성 관절염의 신호일 수 있다. 특별한 이상이 없더라도 손발톱에 이런 것이 많이 나타난다면 관절염의 가능성이 더 높다는 뜻이니 평소에 신경 써야 한다.
손가락에 혹이 생겼어요 손가락에 육안으로 볼 수 있는 혹이 생겼다는 것은 일종의 뼈 종양이고, 뼈 종양이 있으면 살짝 건드리기만 해도 아프다. ‘헤베르덴 결절’이라 불리는 이런 종양은 다행히 육안으로 확인하기 쉽다. 또 손가락에 생긴 뼈 종양은 골반이나 무릎과 같이 신체의 관절에도 골관절염이 있을 수 있다는 반증이므로 종양이 확인되면 손가락뿐만 아니라 신체의 골관절을 면밀히 검사하는 것이 좋다.
투톤 손톱 딱 보기에도 수상하다. 손톱의 반은 하얀색을 띠지만 나머지 반이 갈색이라면 신장이 안 좋다는 뜻. 단백질이 분해되면서 생성된 암모니아가 요소로 전환돼 소변과 함께 몸 밖으로 배출돼야 하는데, 신장의 기능이 원활하지 못하면 몸속에 쌓인 요소가 피부와 손톱에 남아 나타나는 증상이다.
손에 땀이 많이 난다면? 다한증이라고 불리는 손에 땀이 많이 나는 증상은 손 관련 질환 중 가장 많이 알려진 대표 질환이다. 다한증은 남성보다 여성에게 많이 발병하는데, 그 원인은 아직 정확하게 밝혀지지 않았다. 다만 갑상선에 이상이 있을 때 나타나는 증상이라고만 알려져 있다. 혈액 속에 갑상선호르몬의 농도가 높아지면 손바닥에 열이 많아지고 땀이 나는 것. 갑상선에 이상이 생기면 무기력증과 피로감뿐 아니라 더 큰 병을 불러올 수 있으므로 하루빨리 전문 치료를 받는 것이 좋다.
손이 점점 커져요 몸에 비례해 손이 크다면 뇌하수체에 이상이 있다는 것이다. 손뿐만 아니라 발, 입술, 코, 귀 등 신체 말단의 특정 부위가 크다면 말단비대증의 위험이 높다. 뇌 사상하부 밑에 위치한 뇌하수체는 각종 호르몬선의 호르몬 분비량과 시간을 조절하는데, 뇌하수체 종양으로 인해 기능 항진이 일어나면 거인증, 말단비대증 등이 생길 수 있는 것. 모든 호르몬 이상 증세가 그렇지만 말단비대증은 합병증을 유발하기 때문에 더욱더 위험하다. 다행히 종양의 크기가 작을수록 완치율도 높다.
구글 블로그 만들기
구글 블로그 만들기
구글 블로그를 만들다 보니 가장 큰 불만이 다양한 스킨을 제공하지 않는다는 것이다. 국내에서 제공하는 다양한 블로그를 보면 눈길을 사로잡는 화면으로 개성을 발휘하는 것이 부럽기까지 하다. 카테고리나 아카이브 등 메뉴를 보기 좋게 배열한 것을 보면 이사 가고 싶은 마음이 들 때가 한 두 번이 아니다.구글 블로그는 왜 그렇게 하지 않을까 생각해 보니 이해가 간다. 우선 가입하기부터 쉽다. 대부분의 외국 사이트가 그렇듯이 물어보는 것이 없고 간단하다. 아울러 상업적인 목적이 없다. 일부이긴 하지만 국내 홈페이지는 스킨이나 배경음악 등을 사다가 붙여야 하지만 도대체 구글에서는 이 모든 것을 지원하지 않는다. 필요한 파일은 다른 사이트에 올려놓고 링크하여 붙여야 한다. 불편하지만 조금 감수한다면 아무런 제약 없이 구글 블로그를 이용할 수 있다. 또한 개인이 여러개의 블로그를 동시에 만들어 운영할 수 있고 한 블로그를 여러명이 같이 운영할 수 있다는 점은 구글 블로그의 큰 장점이다.다른 한 편으로 생각해 보면 화려한 장식을 하는 시간보다 블로그 내용이나 알차게 꾸미라는 뜻으로 받아들이면 한결 가벼워진다. 블로그를 꾸미려고 이곳저곳 찾아다니며 발품을 팔았지만 역시 기본으로 제공하는 템플릿이 제일 낫다는 것이 결론이다. 그동안 돌아 다니며 참조한 여러 기능들을 제공하는 블로그입니다. 많은 도움이 되었습니다.
○ 공짜로 템플릿을 제공하는 블로그
freetemplates
blogger-templates
pannasmontata-templates (20080302 추가)
Free Blogger Templates (20090208 추가)
Free Templates 4U (20090412 추가)
○ 여러 기능(Tip & Widgets)들을 제공하는 블로그
phydeaux3
blogger-templates
beautifulbeta
Hackosphere
Blogger Tips and Tricks
Blogger Hack Search
Dynamic Drive DHTML (20080302 추가)
Blog U (20080302 추가)
bloggerbuster (20080909 추가)
techodia (20080909 추가)
BLOGGER ACCESSORIES (20080909 추가)
○ 국내 블로그
zizukabi
컴맹초보 블로그
출처 http://namu42.blogspot.com/2007/04/2.html
구글 블로그를 만들다 보니 가장 큰 불만이 다양한 스킨을 제공하지 않는다는 것이다. 국내에서 제공하는 다양한 블로그를 보면 눈길을 사로잡는 화면으로 개성을 발휘하는 것이 부럽기까지 하다. 카테고리나 아카이브 등 메뉴를 보기 좋게 배열한 것을 보면 이사 가고 싶은 마음이 들 때가 한 두 번이 아니다.구글 블로그는 왜 그렇게 하지 않을까 생각해 보니 이해가 간다. 우선 가입하기부터 쉽다. 대부분의 외국 사이트가 그렇듯이 물어보는 것이 없고 간단하다. 아울러 상업적인 목적이 없다. 일부이긴 하지만 국내 홈페이지는 스킨이나 배경음악 등을 사다가 붙여야 하지만 도대체 구글에서는 이 모든 것을 지원하지 않는다. 필요한 파일은 다른 사이트에 올려놓고 링크하여 붙여야 한다. 불편하지만 조금 감수한다면 아무런 제약 없이 구글 블로그를 이용할 수 있다. 또한 개인이 여러개의 블로그를 동시에 만들어 운영할 수 있고 한 블로그를 여러명이 같이 운영할 수 있다는 점은 구글 블로그의 큰 장점이다.다른 한 편으로 생각해 보면 화려한 장식을 하는 시간보다 블로그 내용이나 알차게 꾸미라는 뜻으로 받아들이면 한결 가벼워진다. 블로그를 꾸미려고 이곳저곳 찾아다니며 발품을 팔았지만 역시 기본으로 제공하는 템플릿이 제일 낫다는 것이 결론이다. 그동안 돌아 다니며 참조한 여러 기능들을 제공하는 블로그입니다. 많은 도움이 되었습니다.
○ 공짜로 템플릿을 제공하는 블로그
freetemplates
blogger-templates
pannasmontata-templates (20080302 추가)
Free Blogger Templates (20090208 추가)
Free Templates 4U (20090412 추가)
○ 여러 기능(Tip & Widgets)들을 제공하는 블로그
phydeaux3
blogger-templates
beautifulbeta
Hackosphere
Blogger Tips and Tricks
Blogger Hack Search
Dynamic Drive DHTML (20080302 추가)
Blog U (20080302 추가)
bloggerbuster (20080909 추가)
techodia (20080909 추가)
BLOGGER ACCESSORIES (20080909 추가)
○ 국내 블로그
zizukabi
컴맹초보 블로그
출처 http://namu42.blogspot.com/2007/04/2.html
2009년 8월 15일 토요일
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Linking...LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16Debug/exam.exe : fatal error LNK1120: 1 unresolved externalsError executing link.exe.
위와 같은 에러가 발생했을 때 문제는 간단했다...
프로젝트 생성시 Win32 Console Application으로 생성해야하는데
Win32 Application 로 프로젝트를 생성해서 생긴 에러입니다.
이거 잘 몰라서..찾아봤는데 ㅋ
프로젝트 세팅(alt+f7)에서 링크.. 탭의.. project options라는 에디트 박스에 잘 찾아보시면 /subsystem 옵션이 있을겁니다... /subsystem:windows 로되어있는걸 /subsystem:console로 바꿔주세요^^
암튼 해결되니 뿌듯하네요ㅋ
위와 같은 에러가 발생했을 때 문제는 간단했다...
프로젝트 생성시 Win32 Console Application으로 생성해야하는데
Win32 Application 로 프로젝트를 생성해서 생긴 에러입니다.
이거 잘 몰라서..찾아봤는데 ㅋ
프로젝트 세팅(alt+f7)에서 링크.. 탭의.. project options라는 에디트 박스에 잘 찾아보시면 /subsystem 옵션이 있을겁니다... /subsystem:windows 로되어있는걸 /subsystem:console로 바꿔주세요^^
암튼 해결되니 뿌듯하네요ㅋ
네트워크 소켓 프로그래밍
소켓 인터페이스는 TCP/IP 네트워크 스펙에 대한 API(Application Proramming Interface)로, 네트워크 애플리케이션이 쉽게 작성될 수 있도록 해주는 운영체제 차원에서 제공되는 인터페이스입니다. 옛날의 Dos와 같은 운영체제에서는 API의 도움없이도 프로그래머의 노력으로 네트워크 프로그래밍이 가능했을지도 모릅니다. 왜냐하면, Dos는 프로그래머가 코드상에서 직접 인터럽트를 호출하는 것을 허용하고, 프로그래머는 직접 하드웨어에 접근할 수 있었기 때문에 네트워크 카드를 제어하는 것도 가능했을 것이기 때문입니다. (현재 Dos에서는 네트워킹이 불가능하다고 합니다. 앞의 말은 운영체제의 성격을 이야기 하기 위한 것!)
아무튼..소켓이란 운영체제에서 제공되는 APi들 중에서 특별히 네트워킹을 위한 API들에서 사용하는 것으로, 많은 핸들 중의 하나입니다.
소켓은 파일 디스크립터(descriptor)와 유사하다고 볼 수 있는데요.. 파일 입출력을 구현하기 위해서는 파일 객체를 만들고, 그 겍체의 핸들이 해당하는 파일을 가리켜야 합니다. 그다음 그 핸들을 사용해서 파일 IO에 관련된 일을 하고, 작업이 끝나면 그 핸들을 닫습니다.
소켓도 마찬가지로, 네트워크 통신을 하고자 한다면 맨 처음 소켓 객체를 만들고 그 핸들을 얻어야 합니다. 통신이 끝나면 그 핸들을 닫아주면 됩니다.
소켓은 두가지의 대표적인 형태를 갖고 있습니다.
1. 데이터 그램 소켓
: UDP 데이터그램을 사용해 데이터를 전송합니다.
이 데이터 전송방식은 자기 딴에서는 최선을 다해 데이터의 정확성을 보장할려고 하지만, 모든 경우에 대해서 보장하지 못합니다. 데이터가 분실될 수도 있으며, 데이터의 순서가 뒤바뀔수도 있습니다.왜냐하면 데이터 전송 명령이 떨어지면 무조건 보내고자 하는 컴퓨터의 IP 주소를 향해 데이터를 날리기 때문입니다. 그리고 나서는 보낸 데이터는 신경쓰지 않습니다.
하지만 데이터그램 소켓은 전송속도에서 이득을 얻을 수 있습니다.
2. 스트림 소켓
: TCP 연결을 사용해 데이터를 전송합니다.
TCP는 기록된 데이터에 에러가 없도록 하고, 전송 순서에 맞추어 정확히 전송되는 것을 보장합니다. TCP는 전송 중 문제가 발생하면 그 문제를 인식하고 데이터의 재전송이나 재정렬을 통해 적절히 보상해줍니다.
스트림 소켓은 연결지향의 소켓으로 전송측과 수신측이 연결되어 있지 않으면 동작하지 않습니다.
아무튼..소켓이란 운영체제에서 제공되는 APi들 중에서 특별히 네트워킹을 위한 API들에서 사용하는 것으로, 많은 핸들 중의 하나입니다.
소켓은 파일 디스크립터(descriptor)와 유사하다고 볼 수 있는데요.. 파일 입출력을 구현하기 위해서는 파일 객체를 만들고, 그 겍체의 핸들이 해당하는 파일을 가리켜야 합니다. 그다음 그 핸들을 사용해서 파일 IO에 관련된 일을 하고, 작업이 끝나면 그 핸들을 닫습니다.
소켓도 마찬가지로, 네트워크 통신을 하고자 한다면 맨 처음 소켓 객체를 만들고 그 핸들을 얻어야 합니다. 통신이 끝나면 그 핸들을 닫아주면 됩니다.
소켓은 두가지의 대표적인 형태를 갖고 있습니다.
1. 데이터 그램 소켓
: UDP 데이터그램을 사용해 데이터를 전송합니다.
이 데이터 전송방식은 자기 딴에서는 최선을 다해 데이터의 정확성을 보장할려고 하지만, 모든 경우에 대해서 보장하지 못합니다. 데이터가 분실될 수도 있으며, 데이터의 순서가 뒤바뀔수도 있습니다.왜냐하면 데이터 전송 명령이 떨어지면 무조건 보내고자 하는 컴퓨터의 IP 주소를 향해 데이터를 날리기 때문입니다. 그리고 나서는 보낸 데이터는 신경쓰지 않습니다.
하지만 데이터그램 소켓은 전송속도에서 이득을 얻을 수 있습니다.
2. 스트림 소켓
: TCP 연결을 사용해 데이터를 전송합니다.
TCP는 기록된 데이터에 에러가 없도록 하고, 전송 순서에 맞추어 정확히 전송되는 것을 보장합니다. TCP는 전송 중 문제가 발생하면 그 문제를 인식하고 데이터의 재전송이나 재정렬을 통해 적절히 보상해줍니다.
스트림 소켓은 연결지향의 소켓으로 전송측과 수신측이 연결되어 있지 않으면 동작하지 않습니다.
2009년 8월 14일 금요일
MFC Compiler Error C2360
C2360 에러는 msdn에 다음과 같이 설명되어 있습니다.
프로그래밍 중 select case문에서 변수를 선언했을 때에 발생하는 오류에 대한 내용 이었습니다.
initialization of 'identifier' is skipped by 'case' label
The initialization of identifier can be skipped in a switch statement. You cannot jump past a declaration with an initializer unless the declaration is enclosed in a block. (Unless it is declared within a block, the variable is within scope until the end of the switch statement.)
The following sample generates C2360:
// C2360.cpp
int main() {
int x = 0;
switch ( x ) {
case 0 :
int i = 1;
{ int j = 1; }
case 1 : // C2360
int k = 1;
}
}
위와 같은 식으로 프로그래밍 하셨다면..C2360 에러를 만나실 수 있습니다.
다음과 같이 작성하면 에러를 제거하실 수 있습니다.
Possible resolution:
// C2360b.cpp
int main() {
int x = 0;
switch ( x ) {
case 0 :
{ int j = 1; int i = 1; }
case 1 :
int k = 1;
}
}
프로그래밍 중 select case문에서 변수를 선언했을 때에 발생하는 오류에 대한 내용 이었습니다.
initialization of 'identifier' is skipped by 'case' label
The initialization of identifier can be skipped in a switch statement. You cannot jump past a declaration with an initializer unless the declaration is enclosed in a block. (Unless it is declared within a block, the variable is within scope until the end of the switch statement.)
The following sample generates C2360:
// C2360.cpp
int main() {
int x = 0;
switch ( x ) {
case 0 :
int i = 1;
{ int j = 1; }
case 1 : // C2360
int k = 1;
}
}
위와 같은 식으로 프로그래밍 하셨다면..C2360 에러를 만나실 수 있습니다.
다음과 같이 작성하면 에러를 제거하실 수 있습니다.
Possible resolution:
// C2360b.cpp
int main() {
int x = 0;
switch ( x ) {
case 0 :
{ int j = 1; int i = 1; }
case 1 :
int k = 1;
}
}
[study] WindowsDebugging 툴 소개
[Advanced Windows Debugging 책을 보며 공부 내용 정리한 것입니다. - phoebe]
누수 진단 툴 - LeakDiag
메모리 누수 탐지 처리에 사용
* 기능
프로세스 메모리 누수 확인.
할당 된 과정을 보여주는 정확한 스택 트레이스와 할당에 관한 통계 등 세부적 정보 보여줌.
* 다운로드
: ftp://ftp.microsoft.com/PSS/Tools/Developer%20Support%20Tools/LeakDiag
* 6개의 할당자
- 가상 할당자
- 힙 할당자 (Default)
- MPHeap 할당자
- COM AllocatorCoTaskMem
- COM 전용 할당자
- C 런타임 할당자
메모리 할당자에 대한 호출을 가로채기 위해 Detours 기술을 사용
→ OS의 스택 트레이싱 지원 기능 비활성화!
윈도우 디버깅 툴
개발자들의 일상적 작업을 효율적이게 돕는 강력한 디버거와 툴을 포함한 패키지!
* 다운로드
: http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a
32비트와 64비트 버전을 선택하여 다운로드
이 책에서는 6.6.0007.5 버전을 사용함
UMDH
- LeakDiag의 일부 기능을 포함하는 메모리 누수 탐지
- 힙 관리자에서 기원하는 메모리만 추적가능
- OS의 유저모드 스택 트레이싱이 활성화 돼있어야 함.
마이크로소프트 애플리케이션 베리파이어
Application Verifie 를 활성화시키면 일반적인 프로그래밍 실수를 광범위하게 파악할 수 있음.
개발 기간 동안 모든 프로세스에 대해서 활성화하는 것은 좋은 습관!
* 다운로드
: http://www.microsoft.com/downloads/details.aspx?FamilyID=C4A25AB9-649D-4A1B-B4A7-C9D8B095DF18&displaylang=en
전역 플래그
윈도우 디버깅 툴의 일부분으로 설치됨
실행파일 : gflags.exe
모드
- GUI 모드
- 커맨드라인 모드
프로세스 익스플로러
- 윈도우 작업 관리자를 대신할 수 있는 강력한 툴
- 시스템과 프로세스의 전반적인 상태 분석
- 기능
: 핸들 이름, 유형을 포함한 핸들 사용정보 제공
핸들과 프로세스를 검색하는 검색 기능
상세한 프로세스 정보 제공
- 다운로드
: http://technet.microsoft.com/ko-kr/sysinternals/bb896653(en-us).aspx
Wireshark
머신 간의 호출 문제를 해결하는 데 사용되는 네트워크 프로토콜 분석기
동작 중인 네트워크 데이터 포착해 분석
이미 생성된 캡처 파일 분석
다운로드 : http://www.wireshark.org/download.html
DebugDiag
IIS 성능 분석에 도움을 주게 설계됨.
- 해당 툴의 문제 해결 기능
- 프로세스 크래시 데이터 수집
- 메모리 누수 해결
강력하면서도 확장 가능한 오브젝트 모델(COM 기반)
다운로드 :
http://www.microsoft.com/downloads/details.aspx?familyid=9BFA49BC-376B-4A54-95AA-73C9156706E7&displaylang=en
누수 진단 툴 - LeakDiag
메모리 누수 탐지 처리에 사용
* 기능
프로세스 메모리 누수 확인.
할당 된 과정을 보여주는 정확한 스택 트레이스와 할당에 관한 통계 등 세부적 정보 보여줌.
* 다운로드
: ftp://ftp.microsoft.com/PSS/Tools/Developer%20Support%20Tools/LeakDiag
* 6개의 할당자
- 가상 할당자
- 힙 할당자 (Default)
- MPHeap 할당자
- COM AllocatorCoTaskMem
- COM 전용 할당자
- C 런타임 할당자
메모리 할당자에 대한 호출을 가로채기 위해 Detours 기술을 사용
→ OS의 스택 트레이싱 지원 기능 비활성화!
윈도우 디버깅 툴
개발자들의 일상적 작업을 효율적이게 돕는 강력한 디버거와 툴을 포함한 패키지!
* 다운로드
: http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a
32비트와 64비트 버전을 선택하여 다운로드
이 책에서는 6.6.0007.5 버전을 사용함
UMDH
- LeakDiag의 일부 기능을 포함하는 메모리 누수 탐지
- 힙 관리자에서 기원하는 메모리만 추적가능
- OS의 유저모드 스택 트레이싱이 활성화 돼있어야 함.
마이크로소프트 애플리케이션 베리파이어
Application Verifie 를 활성화시키면 일반적인 프로그래밍 실수를 광범위하게 파악할 수 있음.
개발 기간 동안 모든 프로세스에 대해서 활성화하는 것은 좋은 습관!
* 다운로드
: http://www.microsoft.com/downloads/details.aspx?FamilyID=C4A25AB9-649D-4A1B-B4A7-C9D8B095DF18&displaylang=en
전역 플래그
윈도우 디버깅 툴의 일부분으로 설치됨
실행파일 : gflags.exe
모드
- GUI 모드
- 커맨드라인 모드
프로세스 익스플로러
- 윈도우 작업 관리자를 대신할 수 있는 강력한 툴
- 시스템과 프로세스의 전반적인 상태 분석
- 기능
: 핸들 이름, 유형을 포함한 핸들 사용정보 제공
핸들과 프로세스를 검색하는 검색 기능
상세한 프로세스 정보 제공
- 다운로드
: http://technet.microsoft.com/ko-kr/sysinternals/bb896653(en-us).aspx
Wireshark
머신 간의 호출 문제를 해결하는 데 사용되는 네트워크 프로토콜 분석기
동작 중인 네트워크 데이터 포착해 분석
이미 생성된 캡처 파일 분석
다운로드 : http://www.wireshark.org/download.html
DebugDiag
IIS 성능 분석에 도움을 주게 설계됨.
- 해당 툴의 문제 해결 기능
- 프로세스 크래시 데이터 수집
- 메모리 누수 해결
강력하면서도 확장 가능한 오브젝트 모델(COM 기반)
다운로드 :
http://www.microsoft.com/downloads/details.aspx?familyid=9BFA49BC-376B-4A54-95AA-73C9156706E7&displaylang=en
블로그에 삽입하는 구글 위젯, Google 웹 엘레멘트
구글에서 Google 웹 엘레멘트라는 재미있는 위젯을 내놓았습니다. 구글 웹 엘레멘트라는 위젯인데 블로그에 삽입할수 있는 Google 캘린더, 블로그 방문자와 대화할수 있는 대화창인 Google 컨버세이션, 방문자들이 블로그에서 바로 웹을 검색하거나 블로그 내부 콘텐츠를 검색할 수 있는 맞춤 검색, 구글 지도를 볼수 있는 지도 위젯, 뉴스 위젯, 프리젠테이션 위젯, 스프레드 쉬트 위젯, 유투브 동영상 뉴스를 볼수 있는 유투브 뉴스 위젯등을 블로그에 삽입할수 있습니다.
오른쪽 사이드 바 하단에 구글 컨버세이션을 설치해 놓았는데 구글 프렌드 커넥트에 가입되어 있거나 구글 계정이 있으면 프렌트 커넥트에 가입해서 제 블로그에 메시지를 남길수 있습니다. 예전에 나왔던 구글 프렌드 커넥트는 블로그 상단에 툴바 형식으로 나왔었는데 이번에 나온 컨버세이션은 사이드바에 설치할수 있어서 좋은것 같습니다.
이외에 다른 위젯도 비슷한 방법으로 사이드바에 설치하거나 간단한 스크립트를 블로그에 삽입해서 설치할수 있습니다. 자세한 내용은 아래 구글 애드센스 블로그 포스팅을 참조하시기 바랍니다.
또한, Google 웹 엘레멘트를 설치한뒤 이벤트에 응모하면 기념품도 보내준다고 하는군요. 이부분은 포스팅 가장 아래를 참조하시면 됩니다.
귀하의 웹사이트에서 다양한 Google 제품들을 통해 방문자들에게 유용한 정보와 기능을 제공할 수 있는 방법을 소개해드리고자 합니다.
Google 웹 엘레멘트는 캘린더부터 뉴스까지 다양한 Google 제품들을 귀하의 사이트에 위젯 형식으로 게재할 수 있게 해줍니다. 각 엘레멘트 당 간단한 코드만 받아 귀하의 사이트에 삽입하면 즉시 작동합니다. 현재 제공되고 있는 엘레멘트들을 아래와 같습니다.
Google 캘린더
커뮤니티 사이트를 운영하고 계신가요? 다음주의 정모 날짜와 장소를 모든 회원들에게 알려드리고 싶다면 Google 캘린더를 사이트에 게재하여 중요한 행사에 대한 정보를 표시하실 수 있습니다.
Google 컨버세이션
귀하의 사이트 방문자들이 서로 대화를 나눌 수 있는 대화장을 제공해드리세요! Google 컨버세이션 위젯을 통해서는 방문자들이 포럼 형식으로 의사소통을 할 수 있는 기능이 제공됩니다.
맞춤 검색
방문자들이 사이트에서 바로 웹을 검색하거나 귀하의 사이트 내부 콘텐츠를 검색할 수 있도록 맞춤 검색 기능을 제공해보세요. 방문자들이 따로 검색을 하러 귀하의 사이트를 떠날 필요가 없기에 사이트 검색에도 큰 도움이 될 것입니다.
지도
음식점 리뷰 사이트를 운영하고 계신가요? 방문자들에게 음식점의 위치를 가장 정확히 알려드리는데는 Google 지도만한 제품도 없을 것입니다.
뉴스
메이저리그 관련 사이트를 운영하시나요? 팀 경황이나 경기 관련 뉴스만 골라서 게재하시면 방문자들에게 매우 흥미로운 정보가 될 것입니다.
프레젠테이션
영어 교육 사이트를 운영하신다면, 교육용 자료들을 만들어 학생들이 쉽게 볼 수 있도록 제공해보세요. 프레젠테이션을 게재하면 Google 문서를 통해 제작한 프레젠테이션을 사이트에서 직접 볼 수 있게 해드립니다.
스프레드쉬트
Google 스프레드쉬트를 통해 실시간으로 정보를 새로 업데이트하실 수 있습니다. 파티나 모임에 회원들의 참석 여부를 바로 확인하실 수 있도록 모든 사람들이 수정 가능한 문서를 오픈해놓을 수도 있고, 새로운 뉴스를 바로 올릴수도 있습니다.
유튜브 뉴스
주식이나 경제 관련 사이트를 운영하고 계시다면 이 유튜브 뉴스 기능을 통해서 실시간으로 블룸버그 뉴스를 귀하의 사이트에서 시청하실 수 있습니다. 국제 뉴스 관련 페이지라면 뉴욕타임즈의 뉴스를 방영하는 것도 좋겟지요.
이렇게 Google 웹 엘레멘트를 통해서는 귀하의 사이트가 만능 사이트로 재탄생 할 수 있습니다.
다양한 Google 웹 엘레멘트를 게재하여 방문자들의 트래픽을 늘리고, 이를 통해 애드센스 수익도 올리는 두 마리 토끼를 잡으시기 바랍니다.
오른쪽 사이드 바 하단에 구글 컨버세이션을 설치해 놓았는데 구글 프렌드 커넥트에 가입되어 있거나 구글 계정이 있으면 프렌트 커넥트에 가입해서 제 블로그에 메시지를 남길수 있습니다. 예전에 나왔던 구글 프렌드 커넥트는 블로그 상단에 툴바 형식으로 나왔었는데 이번에 나온 컨버세이션은 사이드바에 설치할수 있어서 좋은것 같습니다.
이외에 다른 위젯도 비슷한 방법으로 사이드바에 설치하거나 간단한 스크립트를 블로그에 삽입해서 설치할수 있습니다. 자세한 내용은 아래 구글 애드센스 블로그 포스팅을 참조하시기 바랍니다.
또한, Google 웹 엘레멘트를 설치한뒤 이벤트에 응모하면 기념품도 보내준다고 하는군요. 이부분은 포스팅 가장 아래를 참조하시면 됩니다.
귀하의 웹사이트에서 다양한 Google 제품들을 통해 방문자들에게 유용한 정보와 기능을 제공할 수 있는 방법을 소개해드리고자 합니다.
Google 웹 엘레멘트는 캘린더부터 뉴스까지 다양한 Google 제품들을 귀하의 사이트에 위젯 형식으로 게재할 수 있게 해줍니다. 각 엘레멘트 당 간단한 코드만 받아 귀하의 사이트에 삽입하면 즉시 작동합니다. 현재 제공되고 있는 엘레멘트들을 아래와 같습니다.
Google 캘린더
커뮤니티 사이트를 운영하고 계신가요? 다음주의 정모 날짜와 장소를 모든 회원들에게 알려드리고 싶다면 Google 캘린더를 사이트에 게재하여 중요한 행사에 대한 정보를 표시하실 수 있습니다.
Google 컨버세이션
귀하의 사이트 방문자들이 서로 대화를 나눌 수 있는 대화장을 제공해드리세요! Google 컨버세이션 위젯을 통해서는 방문자들이 포럼 형식으로 의사소통을 할 수 있는 기능이 제공됩니다.
맞춤 검색
방문자들이 사이트에서 바로 웹을 검색하거나 귀하의 사이트 내부 콘텐츠를 검색할 수 있도록 맞춤 검색 기능을 제공해보세요. 방문자들이 따로 검색을 하러 귀하의 사이트를 떠날 필요가 없기에 사이트 검색에도 큰 도움이 될 것입니다.
지도
음식점 리뷰 사이트를 운영하고 계신가요? 방문자들에게 음식점의 위치를 가장 정확히 알려드리는데는 Google 지도만한 제품도 없을 것입니다.
뉴스
메이저리그 관련 사이트를 운영하시나요? 팀 경황이나 경기 관련 뉴스만 골라서 게재하시면 방문자들에게 매우 흥미로운 정보가 될 것입니다.
프레젠테이션
영어 교육 사이트를 운영하신다면, 교육용 자료들을 만들어 학생들이 쉽게 볼 수 있도록 제공해보세요. 프레젠테이션을 게재하면 Google 문서를 통해 제작한 프레젠테이션을 사이트에서 직접 볼 수 있게 해드립니다.
스프레드쉬트
Google 스프레드쉬트를 통해 실시간으로 정보를 새로 업데이트하실 수 있습니다. 파티나 모임에 회원들의 참석 여부를 바로 확인하실 수 있도록 모든 사람들이 수정 가능한 문서를 오픈해놓을 수도 있고, 새로운 뉴스를 바로 올릴수도 있습니다.
유튜브 뉴스
주식이나 경제 관련 사이트를 운영하고 계시다면 이 유튜브 뉴스 기능을 통해서 실시간으로 블룸버그 뉴스를 귀하의 사이트에서 시청하실 수 있습니다. 국제 뉴스 관련 페이지라면 뉴욕타임즈의 뉴스를 방영하는 것도 좋겟지요.
이렇게 Google 웹 엘레멘트를 통해서는 귀하의 사이트가 만능 사이트로 재탄생 할 수 있습니다.
다양한 Google 웹 엘레멘트를 게재하여 방문자들의 트래픽을 늘리고, 이를 통해 애드센스 수익도 올리는 두 마리 토끼를 잡으시기 바랍니다.
2009년 8월 12일 수요일
가상화 기술, 어디까지 와 있나
이 문서는 '마이크로소프트웨어'의 2006년 6월호에 실린 기사를 요약한 내용입니다.^^
컴퓨팅 자원 대통합 '가상화 기술'
가상화 기술, 어디까지 와 있나
일반적으로 우리가 사용하는 데스크탑 및 노트북은 인텔과 AMD CPU를 탑재하고 있다. 데스크탑용 CPU외에도 고성능 CPU에 해당되는 인텔 제온 프로세서와 AMD 옵테론 프로세서를 장착한 서버를 총칭하여 x86 기반의 아키텍처 시스템이라 한다.
x86 기반의 아키텍처에서 동작하는 대표적인 운영체제로는 MS의 윈도우 계열과 리눅스 계열이다.
가상화 기술
시스템의 유휴자원을 좀 더 효율적으로 활용할 수 있는 방안을 제시한다. 가상화 기술은 하나의 물리적인 하드웨어 박스를 가상적인 몇 개의 시스템으로 논리적 파시셔닝을 제공한다. 이를 통해 기존 시스템의 유휴자원을 가상 시스템 전용 자원으로 재활용하며 물리적인 하나의 하드웨어 장비와 시스템 자원 활용률을 향상시킨다.
또한, 하나의 물리적인 하드웨어 장비를 가상화 기술 적용으로 몇 개의 논리적인 가상머신(VM : Vritual Machine)으로 탈바꿈시켜 각각에 대한 자원활용 및 가상머신의 운영에 대한 독립성을 보장한다.
가상화 제품의 기원과 종류
최초의 가상화 기술 탄생과 적용은 메인프레임에서 시작됬다. 메인프레임에서 애플리케이션 구동 및 운영체제 관리를 위해 제공되는 시스템 자원 중 유휴자원을 부수적으로 부가 업무를 수행할 수 있도록 하나의 하드웨어 장비 안에 가상머신이란 객체를 생성한다.
가상머신에 이들 시스템의 유휴자원을 할당하여 가상적인 머신을 생성하고 테스트 운영하는데 적용하는 기술로 처음 개발되었다. 이러한 기술을 시스템 가상화(System Virtualization)기술이라고 한다.
시스템 가상화 기술의 구분
1. 하드웨어 레벨의 가상화 제품
2. 운영체제 레벨의 가상화 제품
3. 하이레벨 언어를 이용한 가상화 제품
1. 하드웨어 레벨의 가상화

- 가상화를 제공하는 가상화 계층(Virtualization Layer)이 물리적인 하드웨어 또는 호스트 운영체제 위에 위치.
가상화 계층에 의해 생성된 가상머신에 게스트 운영체제를 생성함.
- 특징 : 가상화 계층 내의 주요 구성 요소 가운데 하나인 VMM(Vritual Machine Monitor)이다.
VMM
물리적인 하드웨어를 가상머신의 하드웨어에 매핑시키고 게스트 운영체제의 자원 활용을 관리하는 업무를 수행
- Bare-Metal/Hypervisor(전가상화) 제품
가상화 소프트웨어가 수정하지 않은 게스트 운영체제를 100% 완전 가상화 환경 위에서 제공함에 따라 전가상화 제품이라고도 한다.
이 환경은 범용적인 x86 가상화 하드웨어(CPU, 메모리, 디스크, I/O디바이스 등)를 VMM 위에 구성
- Para-virtualization(반가상화) 제품
위와 동일한 방식으로 역할을 수행하지만, 일반적인 게스트 운영체제 측면에서 VMM과의 원활한 통신을 위해 가상화 구성 전 게스트 운영체제의 API를 일부 수정하여 적용한 제품이다.
- Hosted(호스트 기반) 제품
VMM이 호스트 운영체제 위에 설치되어 가상머신을 생성하는 아키텍처로 게스트 운영체제 측면에서 별도의 수정 및 간섭없이 호스트 운영체제가 인식한 하드웨어를 가상 하드웨어로 재구성한다.
가상화 제품 구현 및 활용적인 측면에서는 Bare-Metal/Hypervisor 제품과 호스트 기반의 가상화 제품이 범용성적인 측면에서 보다 성숙된 환경을 제공한다.
2. 운영체제 레벨의 가상화 제품군
가상화를 제공하는 가상화 계층(Virutalization Layer)이 호스트 운영체제 윗부분에 추가하여 가상화 환경을 제공하는 가상화 제품이다. 단일 호스트 운영체제 위에 다중 애플리케이션 전용 컨테이너를 생성하여 애플리케이션 단위의 가상화 환경을 제공한다.
운영체제 레벨의 가상화 제품은 호스트 운영체제 위의 가상 운영체제 생성방식에 따라 Containers와 Hardware Emulators로 나뉜다.
- Containers
가상화 계층이 호스트 운영체제 내에 임베디드 형태로 구성되고 각각의 애플리케이션별로 추가적인 컨테이너를 생성하는 방식. 각각의 컨테이너 안에 생성된 가상 운영체제와 호스트 운여체제에 있는 공통 커널을 공유, 사용.
- Hardware Emulators
애플리케이션 중심의 가상 운영체제를 생성하는 과정에서 소프트웨어 적으로 하드웨어를 가상 에뮬레이팅 하는 방식!
운영체제 레벨의 가상화 제품은 기본적으로 단일 호스트 운영체제 위에 구성되는 애플리케이션 중심의 가상 운영체제를 생성한다.
3. 하이레벨 언어를 이용한 제품군
특정 컴퓨터 프로그램 언어를 이용한 가상머신 환경 구성 제품.
대표적인 객체 지향 언어인 자바와 Smalltalk등과 같은 프로그램 언어를 이용하여 하드웨어에 독립적이고 이식성이 뛰어난 버추얼 머신을 생성한다.
하이레벨 언어를 이용하여 구성한 제품은 실질적인 가상 운영체제 구성을 통한 시스템 자원의 유틸라이즈 목적이라기보다는 특정 애플리케이션에 대해 호스트 운영체제 및 하드웨어와 독립적인 환경을 구성하기 위한 목적으로 폭넓게 사용되고 있다.
가장 범용적인 가상화 제품 적용의 장점
기존 시스템 자원에 대해 유틸라이징 되지 못한 x86서버를 하나의 물리적인 하드웨어 위에 다량의 가상화 서버로 전환, 통합하고 하드웨어 시스템 자원의 활용도를 높이는데 있다.
컴퓨팅 자원 대통합 '가상화 기술'
가상화 기술, 어디까지 와 있나
일반적으로 우리가 사용하는 데스크탑 및 노트북은 인텔과 AMD CPU를 탑재하고 있다. 데스크탑용 CPU외에도 고성능 CPU에 해당되는 인텔 제온 프로세서와 AMD 옵테론 프로세서를 장착한 서버를 총칭하여 x86 기반의 아키텍처 시스템이라 한다.
x86 기반의 아키텍처에서 동작하는 대표적인 운영체제로는 MS의 윈도우 계열과 리눅스 계열이다.
가상화 기술
시스템의 유휴자원을 좀 더 효율적으로 활용할 수 있는 방안을 제시한다. 가상화 기술은 하나의 물리적인 하드웨어 박스를 가상적인 몇 개의 시스템으로 논리적 파시셔닝을 제공한다. 이를 통해 기존 시스템의 유휴자원을 가상 시스템 전용 자원으로 재활용하며 물리적인 하나의 하드웨어 장비와 시스템 자원 활용률을 향상시킨다.
또한, 하나의 물리적인 하드웨어 장비를 가상화 기술 적용으로 몇 개의 논리적인 가상머신(VM : Vritual Machine)으로 탈바꿈시켜 각각에 대한 자원활용 및 가상머신의 운영에 대한 독립성을 보장한다.
가상화 제품의 기원과 종류
최초의 가상화 기술 탄생과 적용은 메인프레임에서 시작됬다. 메인프레임에서 애플리케이션 구동 및 운영체제 관리를 위해 제공되는 시스템 자원 중 유휴자원을 부수적으로 부가 업무를 수행할 수 있도록 하나의 하드웨어 장비 안에 가상머신이란 객체를 생성한다.
가상머신에 이들 시스템의 유휴자원을 할당하여 가상적인 머신을 생성하고 테스트 운영하는데 적용하는 기술로 처음 개발되었다. 이러한 기술을 시스템 가상화(System Virtualization)기술이라고 한다.
시스템 가상화 기술의 구분
1. 하드웨어 레벨의 가상화 제품
2. 운영체제 레벨의 가상화 제품
3. 하이레벨 언어를 이용한 가상화 제품
1. 하드웨어 레벨의 가상화
- 가상화를 제공하는 가상화 계층(Virtualization Layer)이 물리적인 하드웨어 또는 호스트 운영체제 위에 위치.
가상화 계층에 의해 생성된 가상머신에 게스트 운영체제를 생성함.
- 특징 : 가상화 계층 내의 주요 구성 요소 가운데 하나인 VMM(Vritual Machine Monitor)이다.
VMM
물리적인 하드웨어를 가상머신의 하드웨어에 매핑시키고 게스트 운영체제의 자원 활용을 관리하는 업무를 수행
- Bare-Metal/Hypervisor(전가상화) 제품
가상화 소프트웨어가 수정하지 않은 게스트 운영체제를 100% 완전 가상화 환경 위에서 제공함에 따라 전가상화 제품이라고도 한다.
이 환경은 범용적인 x86 가상화 하드웨어(CPU, 메모리, 디스크, I/O디바이스 등)를 VMM 위에 구성
- Para-virtualization(반가상화) 제품
위와 동일한 방식으로 역할을 수행하지만, 일반적인 게스트 운영체제 측면에서 VMM과의 원활한 통신을 위해 가상화 구성 전 게스트 운영체제의 API를 일부 수정하여 적용한 제품이다.
- Hosted(호스트 기반) 제품
VMM이 호스트 운영체제 위에 설치되어 가상머신을 생성하는 아키텍처로 게스트 운영체제 측면에서 별도의 수정 및 간섭없이 호스트 운영체제가 인식한 하드웨어를 가상 하드웨어로 재구성한다.
가상화 제품 구현 및 활용적인 측면에서는 Bare-Metal/Hypervisor 제품과 호스트 기반의 가상화 제품이 범용성적인 측면에서 보다 성숙된 환경을 제공한다.
2. 운영체제 레벨의 가상화 제품군
가상화를 제공하는 가상화 계층(Virutalization Layer)이 호스트 운영체제 윗부분에 추가하여 가상화 환경을 제공하는 가상화 제품이다. 단일 호스트 운영체제 위에 다중 애플리케이션 전용 컨테이너를 생성하여 애플리케이션 단위의 가상화 환경을 제공한다.
운영체제 레벨의 가상화 제품은 호스트 운영체제 위의 가상 운영체제 생성방식에 따라 Containers와 Hardware Emulators로 나뉜다.
- Containers
가상화 계층이 호스트 운영체제 내에 임베디드 형태로 구성되고 각각의 애플리케이션별로 추가적인 컨테이너를 생성하는 방식. 각각의 컨테이너 안에 생성된 가상 운영체제와 호스트 운여체제에 있는 공통 커널을 공유, 사용.
- Hardware Emulators
애플리케이션 중심의 가상 운영체제를 생성하는 과정에서 소프트웨어 적으로 하드웨어를 가상 에뮬레이팅 하는 방식!
운영체제 레벨의 가상화 제품은 기본적으로 단일 호스트 운영체제 위에 구성되는 애플리케이션 중심의 가상 운영체제를 생성한다.
3. 하이레벨 언어를 이용한 제품군
특정 컴퓨터 프로그램 언어를 이용한 가상머신 환경 구성 제품.
대표적인 객체 지향 언어인 자바와 Smalltalk등과 같은 프로그램 언어를 이용하여 하드웨어에 독립적이고 이식성이 뛰어난 버추얼 머신을 생성한다.
하이레벨 언어를 이용하여 구성한 제품은 실질적인 가상 운영체제 구성을 통한 시스템 자원의 유틸라이즈 목적이라기보다는 특정 애플리케이션에 대해 호스트 운영체제 및 하드웨어와 독립적인 환경을 구성하기 위한 목적으로 폭넓게 사용되고 있다.
가장 범용적인 가상화 제품 적용의 장점
기존 시스템 자원에 대해 유틸라이징 되지 못한 x86서버를 하나의 물리적인 하드웨어 위에 다량의 가상화 서버로 전환, 통합하고 하드웨어 시스템 자원의 활용도를 높이는데 있다.
Winsock 에러 코드!
작년에 TCP/IP 책을 통해 네트워크를 공부하는데 실습을 많이 하지 못해서..
네트워크 프로그램 개발하려고 하니 하나도 생각 안나네요..ㅡ_ㅡ
역시 공부할 때에 실습을 꼭꼭 많이~ 병행하는 것이 좋겠습니다..
이 글은 MFC에서 Winsock사용해서 프로그래밍 할 때 발생하는 에러 코드 보기 위해..!
====================================================
WSAEBADF 10009
잘못된 기술자(소켓 핸들)이다
WSAEACCES 10013
브로드캐스트 어드레스를 위한 데이터그램 소켓의 접속시도가 setsockopt 함수로 SO_BROADCAST가 설정되어있지 않은 상태에서 실패 했습니다.
WSAEFAULT 10014
name 또는 namelen 매개변수가 올바른 형태가 아닙니다.
WSAEINVAL 10022
accept 하기 전에 listen 함수가 불려지지 않았습니다.
WSAEMFILE 10024
새로운 소켓에 할당하기 위한 소켓 기술자가 더 이상 남아있지 않습니다
WSAEWOULDBLOCK 10035
소켓 함수가 비블럭킹 모드로 동작중이다
WSAEINPROGRESS 10036
블록화 함수가 호출 되는 동안 부적절한 소켓 함수가 호출되었다
WSAEALREADY 10037
이미 완료된 비동기 명령에 대한 취소가 시도됨
WSAENOTSOCK 10038
지정한 기술자가 소켓 기술자가 아닙니다
WSAEDESTADDRREQ 10039
해당 함수에 목적지 어드레스가 필요하지만 제공되지 않았음
WSAEMSGSIZE 10040
수신된 메시지가 지정된 버퍼에 저장하기에 너무 커서 손실 되었습니다
WSAEPROTOTYPE 10041
지정된 프로토콜이 잘못되었거나 이 소켓에 대해서 잘못된 형식입니다
WSAENOPROTOOPT 10042
알 수 없는 옵션이거나, 지원지지 않는 옵션을 사용했습니다.
WSAEPROTONOSUPPORT 10043
지정된 프로토콜이 지원되지 않는 형식입니다
WSAESOCKTNOSUPPORT 10044
지정된 소켓 타입이 지정한 어드레스 체계에서 지원되지 않는 형식입니다
WSAEOPNOTSUPP 10045
socket이 연결지향형 서비스(SOCK_STREAM)형태가 아닙니다. ex) listen이 UDP socket에서 호출
WSAEPFNOSUPPORT 10046
지정된 프로토콜 체계가(PF_*) 지원되지 않습니다
WSAEAFNOSUPPORT 10047
지정된 어드레스 체계가(AF_*) 지원되지 않습니다
WSAEADDRINUSE 10048
지정한 어드레스(IP)가 이미 사용중이다
WSAEADDRNOTAVAIL 10049
지정된 어드레스는 로컬 머신에서 사용할 수가 없다
WSAENETDOWN 10050
네트웍 서브 시스템에 에러가 발생했습니다
WSAENETUNREACH 10051
원격 시스템까지 네트웍이 도달할 수 없습니다
WSAENETRESET 10052
연산이 진행되고 있는 도중 접속이 끊겨버렸습니다.
WSAECONNABORTED 10053
연결이 out-of-band나 다른 실패 때문에 끊어져 버렸습니다.
WSAECONNRESET 10054
원격 연결지에서 "hard"나 "abortive" 종료를 수행해서 리셋되었습니다.
WSAENOBUFS 10055
윈도우 소켓 시스템의 버퍼 공간이 모자라거나, 애플리케이션에 의해 API에게 제공된 공간이 너무 작아서 요청된 정보를 저장 할 수가 없음
WSAEISCONN 10056
지정된 소켓이 이미 연결 되어 있음
WSAENOTCONN 10057
지정된 소켓이 이미 연결 되어 있지 않음
WSASHUTDOWN 10058
소켓이 셧다운(shutdown()) 되었습니다.
WSAETOOMANYREFS 10059
지정한 함수에 대한 인자가 너무 많음
WSAETIMEDOUT 10060
접속 시도가 시간초과 되었습니다.
WSAECONNREFUSED 10061
접속시도가 강제로 종료되었습니다
WSAELOOP 10062
Too many levels of symbolic links.
Answer/Solution: A pathname lookup involved more than eight symbolic links. (Too many links were encountered in translating a pathname.)
WSAENAMETOOLONG 10063
File name too long.
Answer/Solution: A component of a path name exceeded 255 (MAXNAMELEN) characters, or an entire path name exceeded 1023 (MAXPATHLEN-1) characters
WSAEHOSTDOWN 10064
원격 호스트가 다운 되었음
Answer/Solution: The problem may be due to one of the following:
A socket operation failed because the destination host was down.
A socket operation encountered a dead host.
Networking activity on the local host has not been initiated.
WSAHOSTUNREACH 10065
네트웍 시스템 장애 등에 의해서 원격호스트까지 도달 할 수 없습니다.
Answer/Solution: A socket operation was attempted to an unreachable host.
WSASYSNOTREADY 10091
네트워크 서브 시스템이 아직 통신할 준비가 되어 있지 않음(WSAStartup()이 반환)
Answer/Solution: The Winsock implementation cannot function at this time, because the underlying system it uses to provide network services is currently unavailable.
WSAVERNOTSUPPORTED 10092
요청한 윈도우즈 소켓 버전이 현재 윈도우즈 소켓 시스템에서 지원하지 않습니다.
WSANOTINITIALISED 10093
이 함수를 사용하기 전에 성공적인 WSAStartup 함수의 호출이 없었습니다.
WSAHOST_NOT_FOUND 11001
호스트를 찾아낼 수 없습니다.
WSATRY_AGAIN 11002
요청된 정보가 발견 되지 않음
WSANO_RECOVERY 11003
회복할 수 없는 에러발생
WSANO_DATA 11004
잘못된 이름(name)으로 아무런 데이터가 기록되지 않았습니다.
네트워크 프로그램 개발하려고 하니 하나도 생각 안나네요..ㅡ_ㅡ
역시 공부할 때에 실습을 꼭꼭 많이~ 병행하는 것이 좋겠습니다..
이 글은 MFC에서 Winsock사용해서 프로그래밍 할 때 발생하는 에러 코드 보기 위해..!
====================================================
WSAEBADF 10009
잘못된 기술자(소켓 핸들)이다
WSAEACCES 10013
브로드캐스트 어드레스를 위한 데이터그램 소켓의 접속시도가 setsockopt 함수로 SO_BROADCAST가 설정되어있지 않은 상태에서 실패 했습니다.
WSAEFAULT 10014
name 또는 namelen 매개변수가 올바른 형태가 아닙니다.
WSAEINVAL 10022
accept 하기 전에 listen 함수가 불려지지 않았습니다.
WSAEMFILE 10024
새로운 소켓에 할당하기 위한 소켓 기술자가 더 이상 남아있지 않습니다
WSAEWOULDBLOCK 10035
소켓 함수가 비블럭킹 모드로 동작중이다
WSAEINPROGRESS 10036
블록화 함수가 호출 되는 동안 부적절한 소켓 함수가 호출되었다
WSAEALREADY 10037
이미 완료된 비동기 명령에 대한 취소가 시도됨
WSAENOTSOCK 10038
지정한 기술자가 소켓 기술자가 아닙니다
WSAEDESTADDRREQ 10039
해당 함수에 목적지 어드레스가 필요하지만 제공되지 않았음
WSAEMSGSIZE 10040
수신된 메시지가 지정된 버퍼에 저장하기에 너무 커서 손실 되었습니다
WSAEPROTOTYPE 10041
지정된 프로토콜이 잘못되었거나 이 소켓에 대해서 잘못된 형식입니다
WSAENOPROTOOPT 10042
알 수 없는 옵션이거나, 지원지지 않는 옵션을 사용했습니다.
WSAEPROTONOSUPPORT 10043
지정된 프로토콜이 지원되지 않는 형식입니다
WSAESOCKTNOSUPPORT 10044
지정된 소켓 타입이 지정한 어드레스 체계에서 지원되지 않는 형식입니다
WSAEOPNOTSUPP 10045
socket이 연결지향형 서비스(SOCK_STREAM)형태가 아닙니다. ex) listen이 UDP socket에서 호출
WSAEPFNOSUPPORT 10046
지정된 프로토콜 체계가(PF_*) 지원되지 않습니다
WSAEAFNOSUPPORT 10047
지정된 어드레스 체계가(AF_*) 지원되지 않습니다
WSAEADDRINUSE 10048
지정한 어드레스(IP)가 이미 사용중이다
WSAEADDRNOTAVAIL 10049
지정된 어드레스는 로컬 머신에서 사용할 수가 없다
WSAENETDOWN 10050
네트웍 서브 시스템에 에러가 발생했습니다
WSAENETUNREACH 10051
원격 시스템까지 네트웍이 도달할 수 없습니다
WSAENETRESET 10052
연산이 진행되고 있는 도중 접속이 끊겨버렸습니다.
WSAECONNABORTED 10053
연결이 out-of-band나 다른 실패 때문에 끊어져 버렸습니다.
WSAECONNRESET 10054
원격 연결지에서 "hard"나 "abortive" 종료를 수행해서 리셋되었습니다.
WSAENOBUFS 10055
윈도우 소켓 시스템의 버퍼 공간이 모자라거나, 애플리케이션에 의해 API에게 제공된 공간이 너무 작아서 요청된 정보를 저장 할 수가 없음
WSAEISCONN 10056
지정된 소켓이 이미 연결 되어 있음
WSAENOTCONN 10057
지정된 소켓이 이미 연결 되어 있지 않음
WSASHUTDOWN 10058
소켓이 셧다운(shutdown()) 되었습니다.
WSAETOOMANYREFS 10059
지정한 함수에 대한 인자가 너무 많음
WSAETIMEDOUT 10060
접속 시도가 시간초과 되었습니다.
WSAECONNREFUSED 10061
접속시도가 강제로 종료되었습니다
WSAELOOP 10062
Too many levels of symbolic links.
Answer/Solution: A pathname lookup involved more than eight symbolic links. (Too many links were encountered in translating a pathname.)
WSAENAMETOOLONG 10063
File name too long.
Answer/Solution: A component of a path name exceeded 255 (MAXNAMELEN) characters, or an entire path name exceeded 1023 (MAXPATHLEN-1) characters
WSAEHOSTDOWN 10064
원격 호스트가 다운 되었음
Answer/Solution: The problem may be due to one of the following:
A socket operation failed because the destination host was down.
A socket operation encountered a dead host.
Networking activity on the local host has not been initiated.
WSAHOSTUNREACH 10065
네트웍 시스템 장애 등에 의해서 원격호스트까지 도달 할 수 없습니다.
Answer/Solution: A socket operation was attempted to an unreachable host.
WSASYSNOTREADY 10091
네트워크 서브 시스템이 아직 통신할 준비가 되어 있지 않음(WSAStartup()이 반환)
Answer/Solution: The Winsock implementation cannot function at this time, because the underlying system it uses to provide network services is currently unavailable.
WSAVERNOTSUPPORTED 10092
요청한 윈도우즈 소켓 버전이 현재 윈도우즈 소켓 시스템에서 지원하지 않습니다.
WSANOTINITIALISED 10093
이 함수를 사용하기 전에 성공적인 WSAStartup 함수의 호출이 없었습니다.
WSAHOST_NOT_FOUND 11001
호스트를 찾아낼 수 없습니다.
WSATRY_AGAIN 11002
요청된 정보가 발견 되지 않음
WSANO_RECOVERY 11003
회복할 수 없는 에러발생
WSANO_DATA 11004
잘못된 이름(name)으로 아무런 데이터가 기록되지 않았습니다.
Dialog에서 Enter 키 처리 문제 해결하기
Dialog에서 Enter 키를 입력하여 EditBox에 입력된 정보를 Listbox로 넘겨주고자 하는데,
Enter키를 누르면 다이얼로그창이 꺼지는 현상 발생!!
지인들의 조언 & 검색 결과...
Dialog에서 Enter 키 입력시 Dialog가 사라지는 문제를 해결하려면 PreTranslateMessage 함수를 사용해야 한다고 나와있습니다.
PreTranslateMessage( ) 란??
CWnd::PreTranslateMessage
Used by class CWinApp to translate window messages before they are dispatched to the TranslateMessage and DispatchMessage Windows functions.
virtual BOOL PreTranslateMessage(
MSG* pMsg
);
라고 한다.
그럼..어떻게 문제를 해결했는지 확인해 봅시다!
1.
> 좌측의 메인 Dialog class를 클릭하고 속성창을 보면 (우측 동그라미 표시) 재정의 라는 버튼이 있는데 이것을 클릭합니다.
2.
> PreTranslateMessage 이벤트를 찾아 해당 함수를 추가해 줍니다.
3.
> 다음과 같이 if문을 작성하고 컨트롤하고자 하는 값을 넣습니다.
본인은 KEYDOWN메시지와 VK_RETURN에 대해서 컨트롤 하였습니다.
커서(잘 안보이지만..)가 위치한 곳에 '키보드가 눌러졌을 때 실행하고 싶은 문장'을 작성하면 됩니다.
예를 들어..
if(pMsg->message == WM_KEYDOWN )
{
MessageBox("키가 눌러졌습니다.");
return TRUE;
}
이와 같이 작성하면 키보드가 눌렸을 때에 메시지박스가 뜨게 됩니다.
리턴문이 있는 맨 마지막 줄에
return CDialog::PreTranslateMessage(pMsg);
이 있는데
이것이 리턴되기 전에 if문 안에서 중간에 return false; 를 해 버리면 어떠한 메세지도 프로그램으로 전달 되지 않게 할 수 있습니다.
(이런 식으로 원하지 않는 사용자 메시지를 걸러 냅니다.)
Enter키를 누르면 다이얼로그창이 꺼지는 현상 발생!!
지인들의 조언 & 검색 결과...
Dialog에서 Enter 키 입력시 Dialog가 사라지는 문제를 해결하려면 PreTranslateMessage 함수를 사용해야 한다고 나와있습니다.
PreTranslateMessage( ) 란??
CWnd::PreTranslateMessage
Used by class CWinApp to translate window messages before they are dispatched to the TranslateMessage and DispatchMessage Windows functions.
virtual BOOL PreTranslateMessage(
MSG* pMsg
);
라고 한다.
그럼..어떻게 문제를 해결했는지 확인해 봅시다!
1.
> 좌측의 메인 Dialog class를 클릭하고 속성창을 보면 (우측 동그라미 표시) 재정의 라는 버튼이 있는데 이것을 클릭합니다.
2.
> PreTranslateMessage 이벤트를 찾아 해당 함수를 추가해 줍니다.
3.
> 다음과 같이 if문을 작성하고 컨트롤하고자 하는 값을 넣습니다.
본인은 KEYDOWN메시지와 VK_RETURN에 대해서 컨트롤 하였습니다.
커서(잘 안보이지만..)가 위치한 곳에 '키보드가 눌러졌을 때 실행하고 싶은 문장'을 작성하면 됩니다.
예를 들어..
if(pMsg->message == WM_KEYDOWN )
{
MessageBox("키가 눌러졌습니다.");
return TRUE;
}
이와 같이 작성하면 키보드가 눌렸을 때에 메시지박스가 뜨게 됩니다.
리턴문이 있는 맨 마지막 줄에
return CDialog::PreTranslateMessage(pMsg);
이 있는데
이것이 리턴되기 전에 if문 안에서 중간에 return false; 를 해 버리면 어떠한 메세지도 프로그램으로 전달 되지 않게 할 수 있습니다.
(이런 식으로 원하지 않는 사용자 메시지를 걸러 냅니다.)
반년 전 이긴 하지만..멤버십 합격!
2009.02 samsung software membership 19th 회원.
처음과 같은 마음가짐으로 초심을 잃지 말자..!
처음과 같은 마음가짐으로 초심을 잃지 말자..!
google blog를 처음 시작하게 되어서 기념으로 작성해보았다 :)
피드 구독하기:
덧글 (Atom)