2009. 1. 18. 23:59

1>d:\vc2005\mfcexam\modaless\modaless\modalessdlg.h(34) : error C2143: 구문 오류 : ';'이(가) '*' 앞에 없습니다.
1>d:\vc2005\mfcexam\modaless\modaless\modalessdlg.h(34) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.
1>d:\vc2005\mfcexam\modaless\modaless\modalessdlg.h(34) : error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.



이러한 에러가 발생하였다.
이것은 서로 다른 클래스가 서로를 참조하고 있을때 발생한다.
따라서 이런경우 해결책은 '전방참조'라고 하는 방법을 사용한다.

어느 한쪽의 클래스 선언문 위에 다른 클래스의 이름을 적어준다.


// ModalessDlg.h : 헤더 파일
//

#pragma once
#include "childdlg.h"

class CChildDlg; // 전방참조

// CModalessDlg 대화 상자
class CModalessDlg : public CDialog
{
// 생성입니다.
public:
 CModalessDlg(CWnd* pParent = NULL); // 표준 생성자입니다.

// 대화 상자 데이터입니다.
 enum { IDD = IDD_MODALESS_DIALOG };

 protected:
 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다.


// 구현입니다.
protected:
 HICON m_hIcon;

 // 생성된 메시지 맵 함수
 virtual BOOL OnInitDialog();
 afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
 afx_msg void OnPaint();
 afx_msg HCURSOR OnQueryDragIcon();
 DECLARE_MESSAGE_MAP()
public:
 CChildDlg *m_pDlg;
public:
 afx_msg void OnBnClickedShowDialog();
};

Posted by +깡통+
부모창의 클래스 선언부에서 아래와 같이 포인트 변수를 추가해야한다.
public:
 CChildDlg *m_pDlg;

어떠한 버튼을 클릭하면 모달리스 창을 띄우는데..
주의할것은 NULL 체크를 하지 않으면 새로운 창이 여러개 생긴다는 것이다.


void CModalessDlg::OnBnClickedShowDialog()
{
 // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
 if(m_pDlg != NULL)
  m_pDlg->SetFocus();
 else {
  m_pDlg = new CChildDlg;
  m_pDlg->Create(IDD_CHILD_DIALOG);
  m_pDlg->ShowWindow(SW_SHOW);
 }
}

이렇게 하면.. 생성은 된다.
하지만 모달리스는 힙에 생성되기 때문에 메모리에서 소멸을 시켜주지 않으면 메모리 누수가 발생한다.
따라서 아래의 코드가 필수적이다.

void CChildDlg::OnBnClickedExit()
{
 // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
 DestroyWindow();
}

이렇게하면 모달리스로 생성된 자식창은 한번은 닫기지만 두번째 생성은 불가능하다.
이미 부모창에서 생성시킨 포인터 변수를 초기화 못했기 때문이다.
그럼 또 아래와 같은 코드가 필요하다.

void CChildDlg::PostNcDestroy()
{
 // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
 CDialog::PostNcDestroy();
 
 CModalessDlg *pMainWnd = (CModalessDlg *)AfxGetMainWnd();
 pMainWnd->m_pDlg = NULL;
 delete this; 
}


부모창을 호출해서 m_pDlg 를 초기화 하고.  자신을 delete 시켜준다.
만약 CModalessDlg 를 참조하기 위해 부모헤더 참조하였다면 에러가 발생할수 있다.
그러면 '전방참조' 라는 글을 참조하기 바란다.
Posted by +깡통+
어느덧 비주얼 베이직을 접한지 10년이 흘렀다.
만 10년인데..  강산은 아직 그대로인듯 ^^ ㅋㅋ

10년전에 나는 10년의 계획을 세웠고..
그 계획에 따라 지난 10년을 나름 알차게 보냈다.

앞으로 다가올 10년에는 어떤 일들이 일어날까? 훗..
비주얼 베이직 5.0 시절부터 6.0 까지 그리고 지금은 비베닷넷 까지 발전했다.
나는 6.0까지만 공부했다. 그 이상을 필요로 하지 않았기 때문이고 아직 6.0 기술로 밥먹고 사는데 문제없다.
하지만 이제는 변해야 한다. 언제까지나 6.0 에 안주해서도 안주 할 수도 없다.
IT 업계 그리고 프로그래머는 끊임없이 공부하고 연마해야 한다.
게을러 지는순간 도태되고 말것이다.

많이 늦었지만 작년 말부터 MFC를 줄기차게 공부하고 있다.
남들은 닷넷이니 C# 이니 하지만..
아직 개발범위에서 MFC는 막대한 비중을 차지하고 있다.
적어도 향후 10년은 끄떡없다.

뭐 -_- 주저리 주저리 떠벌이기만 하는군.
이렇게 내 생각을 막 적어두는 곳이 블로그 아닌가? ^^ 하하하하.

앞으로의 10년에 나는...
하드웨어와 소프트웨어를 넘나드는 중간 통역자? 수준의 엔지니어가 되고 싶다.
예컨데 두 분야를 동시네 넘나드는 인물은 아직 못봤다.
하드웨어 전문가는 분명 소프트웨어에 약하고
소프트웨어 전문가는 분명 하드웨어에 약하더라.

그런 입장에서 나 같은놈은 서로의 의견을 전달해주는 통역자가 될 수 있으리라 본다.

주절주절 -_-;;  계속 공부해야겠다.
킁!
Posted by +깡통+

  모달 모달리스 
 생성  CDialog::DoModal()  CDialog::Create()
 소멸  CDialog::EndDialog()  CDialog::DestoryWindow()
 생성 위치  스택에 생성  힙에 생성
     
     



Posted by +깡통+

먼저 선언되어 있지 않은 OnIntitDialog 를 재정의 통해서 추가한다.

자식창 코드
BOOL CNewDialog::OnInitDialog()
{
 CDialog::OnInitDialog();

 // TODO:  여기에 추가 초기화 작업을 추가합니다.

// 부모창의 포인터를 얻어서 GetValue 라는 사용자 정의 함수를 호출한다.
 CString m_str;
 CModalDlg *pMainWnd = (CModalDlg *)AfxGetMainWnd();
 m_str = pMainWnd->GetValue();
 TRACE(L"GET = %s\n", m_str);
 CEdit *pEdit = (CEdit *)GetDlgItem(IDC_EDIT1);
 pEdit->SetWindowTextW(m_str);

 return TRUE;  // return TRUE unless you set the focus to a control
 // 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다.
}


부모창 코드.
CString CModalDlg::GetValue(void)
{
 CString m_str;
 CEdit *pEdit = (CEdit *)GetDlgItem(IDC_EDIT1);
 pEdit->GetWindowTextW(m_str);
 TRACE("GetValue = %s \n", m_str);
 return m_str;
}

Posted by +깡통+

포인터 캐스팅을 이용하여 자식창에서 부모창의 포인터 주소를 얻어 처리합니다.

자식창에 입력 버튼을 만들고 아래와 같이 코딩합니다.
void CNewDialog::OnBnClickedInput()
{
 // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
 CString m_strTemp;
 CEdit *pEdit = (CEdit *)GetDlgItem(IDC_EDIT1);
 pEdit->GetWindowText(m_strTemp);
 TRACE(L"%s \n", m_strTemp);

 CModalDlg *pMainWnd = (CModalDlg *)AfxGetMainWnd();
 pMainWnd->m_str2 = m_strTemp;
 pMainWnd->ShowValue();

}

부모창에는 m_str2 전역변수를 만들고 아래와 같이 추가합니다.
void CModalDlg::ShowValue(void)
{
 CEdit *pEdit = (CEdit *)GetDlgItem(IDC_EDIT1);
 pEdit->SetWindowTextW(m_str2);
}

위는 동강으로 배운 내용이고 응용하자면...
// 부모창에는
void CNewDialog::OnBnClickedInput()
{
 // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
 CString m_strTemp;
 CEdit *pEdit = (CEdit *)GetDlgItem(IDC_EDIT1);
 pEdit->GetWindowText(m_strTemp);
 TRACE(L"%s \n", m_strTemp);

 CModalDlg *pMainWnd = (CModalDlg *)AfxGetMainWnd();
 //pMainWnd->m_str2 = m_strTemp;
 pMainWnd->ShowValue2(m_strTemp);

}

// 자식창에는
void CModalDlg::ShowValue2(CString m_str)
{
 CEdit *pEdit = (CEdit *)GetDlgItem(IDC_EDIT1);
 pEdit->SetWindowTextW(m_str);
}


이렇게 하는것이 효과적이지 않을까?  굳이 전역변수를 만들 필요까지는 없을듯...
물론 문제는 있다.
예를들어 어떠한 옵션창을 오픈하여 여러 옵션을 선택한뒤 사용자가 저장 버튼을 눌렀다고 가정한다면
그건 부모창에서 처리하는 옵션데이터 struct 변수에 저장해야 하지 않을까?

Posted by +깡통+

VS2005 기준으로 설명합니다.
1. 리소스에서 다이얼로그를 추가한다.
2. 다이얼로그 창에서 팝업을 띄워 클래스 추가를 한다.
3. CDialog 파생클래스인 CNewDialog 를 생성한다.
4. 기존의 CModalDlg 헤더파일에 NewDialog.h 를 선언한다.
5. 부모창에서 아래와 같이 코딩한다.

void CModalDlg::OnBnClickedNewDialog()
{
 // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
 CNewDialog pDlg;
 pDlg.DoModal();
}

6. 자식창에서 아래와 같이 코딩한다.
void CNewDialog::OnBnClickedExit()
{
 // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
 OnOK();
}


OnOK();
OnCancel();
PostMessage(WM_CLOSE, 0, 0); 
을 이용하여 모달을 닫는다.
대소문자 구별 주의~  Ok 가 아니다 OK 이다.

Posted by +깡통+
새로운 책이 도착했다.

VS2005 버전에서의 인터페이스가 영~ 적응이 안되어서 구입했다.

지금 보유하고 있는 MFC 책은 모두 6.0 으로 설명이 되어 있었다.

Visual C++ 6.0 완벽가이드 (영진출판사) 김용성 저 - 6.0

Windows MFC 정복 (가남사) 최호성, 김태훈, 장지웅 공저 - 6.0

윈도우 프로그래밍 Visual C++ MFC Programming (한빛미디어) 김선우, 신화선 공저  - 6.0

초보개발자를 위한 비주얼 C++ MFC 입문 (대림) 성윤정, 서보원 공저 [2008.05] - Visaul Studio.NET 2005 기준으로 설명

원리에서 활용까지 윈도우즈 MFC 프로그래밍 (정보문화사) 유동근 저 [2007.03]   - Visual Studio.NET 2003 기준으로 설명



책 구입을 하실때 도움이 되시기 바랍니다.

난이도가 가낭 낮은건 초보개발자를 위한 비주얼 C++ MFC 입문 책이고,
중급난이도는 원래에서 활용까지 윈도우즈 MFC 프로그래밍 입니다.

참고로 한빛미디어 홈페이지에서는 MFC 동영상 강좌를 유료(3만원)로 제공하고 있습니다.
한번 동영상을 봤는데 훨씬 이해가 잘되더군요.

아오~  궁금하면 사야됨!  이 책사면 답이 있을까? 고민을 그만해야 겠습니다.
책값 아까지 맙시다 ㅋ.  좋은 책은 책값에 몇 배의 가치를 하더이다. ㅋ
Posted by +깡통+
지난 10년간 Visual Basic만 죽어라 했습니다.

어디까지가 끝인지도 모르고 말이지요.

계속 한가지 언어만 공략하자니 답답한 마음만 커져 갔습니다.

그래서 큰 결심을하고 MFC를 공부하기 시작했습니다.

늦은감이 있지만 이런 결정이 훗날 저를 더욱 강하게 해줄것이라 믿습니다.

첫번째 맞이한 책은..

"윈도우 프로그래밍 Visual C++ MFC Programming" 입니다.

출판사 - 한빛미디어 ,  저자 김선우, 신화선 공저 입니다.

신화선님은 Direct Show 멀티미디어 프로그래밍이라는 책을 저서하셨던 분이죠. ^^

한빛미디어에서 제공하는 동영상 강의(유료)를 곁들여 공부하고 있습니다.

이제 이 책에 절반 정도? 왔네요.
Posted by +깡통+
퍼온 글 입니다.
출처는 http://kin.naver.com/detail/detail.php?d1id=1&dir_id=102&eid=+vUb9qg6V3gU9ILc4vq9XnyR9hOHha3u&qb=TUZDv80gQVBJIMilv+s=&pid=fgMHGsoi5UNssbu2M1Zsss--044627&sid=STO54OenM0kAAGC2MNY

윈도우 프로그래밍과 관련하여서 언어로는 C, C++언어가 사용되고 있고 이들 언어를 이용하여서 윈도우 프로그래밍을 하는 방법으로는 api를 이용하는 방법과 MFC를 이용하는 방법이 있습니다.

api는 C언어로 작성이 되어있고, MFC는 C++언어로 작성이 되어 있습니다. MFC는 api중에서 일부를 C++로 클래스화 시켜 놓은 것입니다. 결국 윈도우 프로그래밍에서는 MFC를 주로 하면서 api를 혼용해서 하게 됩니다.

MFC를 먼저 하고 api를 공부하는 것은 추천하지 않습니다. 그 이유는 api를 알고 MFC를 공부하면 MFC 이해가 훨씬 쉬워집니다. api를 모르고 MFC를 공부하는 과정에서 겪게 되는 시행착오나 개념의 불명확한 이해를 피할 수가 있습니다. 그러나 api가 워낙 방대하고 MFC조차도 api 모두를 MFC로 만들지 못하였기에 api를 다 공부하고 MFC로 들어간다는 것은 너무 힘이 낭비되는 면이 있습니다. 그래서 api책에서 현재 우리나라에서 이쪽으로 가장 많이 읽히는 책이 김상형씨의 api정복이라는 책이 있는데 이 책에서 나오는 11장 윈도우 메시지 정도까지 보셔서 윈도우에서 메시지를 처리하는 기본적인 개념에 대한 이해를 하시고 MFC로 들어가기를 추천합니다. 이렇게 하면 api에 대해서 기초지식을 공부하는 시간이 오히려 MFC를 보면서 이해안되어서 헤매는 시간보다는 더 적게 걸립니다. 그리고 MFC로 기본적인 서적을 보고 본격적으로 MFC를 이용할려면 결국 MFC와 api를 혼용할 수 밖에 없기에 api에 대해서 기본개념 정도는 익히고 들어가세요.

api책을 보실려면 결국 C에 대해서 공부를 하셔야 합니다. C를 먼저 공부하시고서 api 기초부분을 공부하시면 됩니다. api를 공부하실 때 C++도 같이 하시던지 아니면 api를 보고서 C++를 하시던지 순서는 상관없습니다 MFC에 들어가기전에 C+하고 api에 대한 기본학습이 되어야 합니다.

이상은 실제 프로그래밍에서 사용하는 도구의 학습일 뿐입니다. 이것으로 어떤 프로그램개발을 할 수는 없습니다. 요즘 한창 논의되는 지문인식, 생체인식 포토샵 같은 그래픽 관련 프로그램이나 게임등 이런 분야들에서 인공지능이니 영상처리니 하는 내용들이 실제 상용화하는 프로그램개발에 사용되는 지식들인데 이러한 지식들은 프로그램의 내부 로직을 결정하는 것입니다.

결국 도구의 사용법과 로직이 결합되었을 때 비로서 프로그램개발이 가능하게 되는 것입니다.

로직과 관련한 공부가 자료구조, 알고리즘입니다. 이러한 자료구조와 알고리즘에는 기본적인 수준의 정렬, 검색, 트리 등이 있고 전문분야의 알고리즘에는 인공지능, 영상처리에 고유한 알고리즘들이 있습니다. 기본적인 알고리즘은 대학에서 이산수학이라는 분야와 관련되어있고, 전문분야의 알고리즘은 미적분, 통계, 수치해석 등과 밀접한 관련이 있습니다.

도구에 대한 학습과 병행해서 로직을 위한 공부를 계속 하셔야 하는 것입니다. 님께서 말씀하시는 자료구조, 알고리즘이 도구를 공부하는 데에서 중간에 지나야 하는 하나의 단계가 아닙니다. 위에서 말한 기본알고리즘은 이산수학과 관련된 분야로 이산수학을 굳이 하지 않아도 학습이 되지만 전문분야의 알고리즘은 수학을 모르고서는 알고리즘 이해자체가 되지 않습니다.

프로그래밍 학습이 언어를 비롯한 도구에 대한 학습과 논리를 위한 알고리즘, 수학 공부가 병행이 되어야 합니다. 기본알고리즘은 물론 C언어나 C++로 구현이 되기에 이들 언어를 일단은 학습을 하셔야 공부하실 수 있습니다.

이후에는 데이터베이스, 네트워크 등도 공부하셔야 할 분야입니다. 데이터베이스나 네트워크를 배제한 프로그램개발이라는 것은 오늘날 상상할 수 없기 때문입니다. 물론 깊이는 님께서 나아가시는 쪽에 따라서 달라지겠죠.

질문에 C와 C++의 차이에 대해서 말씀을 하셨는데 C언어는 절차중심입니다. 그래서 어떤 자료를 처리하는 절차를 강조하는 것이고 C++은 자료와 절차가 혼합이 된 것입니다. 오히려 자료에 중심을 두고 있습니다. 일부에서 C 언어를 배우고 C++로 들어가면 절차적 사고로 인해 C++의 객체지향적 사고가 방해받을 수 있다고 하는데 그것은 C언어로 개발을 오랜 기간 한 분들에게나 해당할 듯 싶습니다. 님처럼 api를 이해하기 위한 수준으로 C를 배우시게 되면 그러한 염려는 없지 않나 봅니다. 그리고 C++의 객체지향적 사고는 C++문법책으로 공부가 되는 것이 아니고 C++언어는 디자인패턴, 리팩토링 등 클래스 설계와 관련된 공부를 계속 꾸준히 하셔야 합니다. 디자인패턴 등이 쉬운 주제들은 아닙니다. 체화하여서 쓴다는 것이 시간을 필요로 하고 경험을 필요로 합니다.
Posted by +깡통+


누군가 그랬다..
인터넷은 혁명이라고.
나도 느낀다. 인터넷은 사람들의 생활 습관을 변경시키고..  최초의 목적인 정보 전달의 기능을 넘어 인간이 살아가는데 없어서는 안될 수준에 이르렀다.

그중에서도 가장 큰 변화는 상거래 즉 소비패턴이다.
과거에는 물물교환으로 이루어지던 것이...
화폐가 생겨남으로써 시장에서 물건을 구입할 수 있었다.
현대에는 집 주변 마트나 시내의 영화관에서 혹은 선물가게에서 우리는 원하는 물건을 구입할 수 있다.

저 위의 표를 보셨는가?
필자가 애용하는 옥션의 구매등급이다.
VIP 등급까지 올라가는데 많은 시간이 필요하지 않았다.

전국에서 제일 싸고. 제일 질 좋은 물건을 구입할수 있다.
자 주변을 둘러보자..  가격 경쟁력이 있는 오프라인 가게들이 있는가??
없다.  즉 이제 오프라인으로 물건을 파는 행위는 사라지게 될것이다.
모두가 인터넷을 쓰는 그날에 말이다.
상인들은 예전처럼 장사가 안된다고 한다.
동대문 같은 의류시장에서도 마찬가지다.
그건 시대의 흐름에 상인들이 따라가지 못하기 때문에 말하는 것 같다.
변화를 두려워 말라~  상인들이여.. ㅋ

우리나라 전자상거래 금액이 얼마인지 아는가?
한번 검색해보길 바라면서 ㅋㅋㅋ..  휙=3
Posted by +깡통+
밖에 날씨가 쌀쌀해졌다..
이번 겨울이 지나기전에 새로운 보금자리로 이동할까? 하는 마음에~
티스토리를 맛보고 있다.

어찌 적응이 잘 되었을까?
무제한 용량은 마음에 드는데...
개인 사생활 보호는 좀 약한듯 하다..

누구는 어차피 블로그라는게 공개 성향이 강하다 하지만...
누구에게나 감추고픈 비밀이 있듯이 ㅋㅋ
아무튼..

나만의 웹호스팅과 티스토리.. 
싸이월드(X) 이건 아냐 ㅋㅋ
고민해본다.
Posted by +깡통+

mATX 는 244 X 244 도 있고, 244 X 230 도 있고, 244 X 220 사이즈도 있습니다


메인보드는 규격에 따라 ATX(Advanced Technology Extended), Micro-ATX, Extended-ATX, Mini-ITX로 나뉜다. 크기별로 분류하면 Extended-ATX(약 356×425mm), ATX(약 305×244mm), Micro-ATX(약 244×244mm), mini-ITX(약 170×170mm)이며 제조업체마다 수치가 약간 다르다. 하지만 제시된 범위내의 규격은 지키고 있다.

Posted by +깡통+

[서울신문]한나라당이 ‘리디노미네이션(화폐단위 변경)’을 추진키로 방침을 정한 가운데 2년 전 그 대안으로 나왔던 10만원짜리 고액권 발행이 거의 백지화되면서 우리나라 역사상 세번째 화폐 개혁이 현실화할지 주목되고 있다.

그동안 여러 차례 리디노미네이션의 필요성을 주장해 온 한국은행은 여건만 되면 언제든지 실무작업에 착수할 수 있다는 입장이다.

리디노미네이션은 물가 상승 등으로 지나치게 부풀어 있는 우리 화폐의 가치를 100배 또는 1000배 등으로 높이는 것을 말한다. 지금의 1000원을 1원 또는 10원으로 만들고 이에 맞춰 모든 화폐를 완전히 새롭게 찍어내게 된다. 그동안 우리나라는 두 차례 화폐개혁(리디노미네이션)을 단행했다.1953년 100원(한자 ‘圓’)을 1환으로 변경했고, 62년에는 10환을 1원(한글 ‘원’)으로 바꿨다. 이후 46년간 이 시스템이 유지되고 있다.

한은은 박승 총재 시절인 2004년 리디노미네이션을 추진했다. 노무현 정권 시절 청와대는 처음에는 찬성했으나 재정경제부가 반대하자 철회하고 고액권만 발행하는 것으로 정리했다.

그러나 최근 임태희 한나라당 정책위 의장이 여러 차례에 걸쳐 리디노미네이션의 필요성을 강조하면서 논의가 수면 위로 부상했다. 리디노미네이션을 추진하는 것은 금융·실물 거래의 단위가 지나치게 커진 데다 우리 돈에 국격(國格)에 맞는 가치를 부여하자는 것 등이 주된 이유다. 국내 금융자산의 총액이 내년이면 1경(京·1조의 1만배)을 넘어설 것으로 보이는 등 과도하게 치솟은 화폐 단위의 거품을 해소해야 한다는 것이다.


고액권 발행은 한은이 주체인 반면 리디노미네이션은 정부가 결정권을 쥐고 있다. 고액권 등 신규 화폐의 발행은 한국은행법상 한은이 정부의 승인만 얻으면 할 수 있지만 화폐 단위 변경은 긴급통화조치법과 한은법을 비롯한 다양한 법률의 손질이 필요하기 때문이다.

한은은 리디노미네이션에는 5조~6조원이 들 것으로 추산하고 있다. 가장 큰 난제는 기업과 금융기관 등의 모든 전산 프로그램을 수정하는 것으로, 여기에만 최대 3조원이 소요될 것으로 보고 있다.

전문가들은 대체로 리디노미네이션의 필요성에 대해 공감하는 분위기다. 한 언론사의 설문조사에서 금융기관 최고경영자의 절반가량이 “이명박 정부에서 리디노미네이션을 해야 한다.”고 응답했다. 신민영 LG경제연구원 금융연구실장은 “경제 규모의 변화 등에 따라 리디노미네이션은 언젠가는 해야 한다.”면서 “그러나 인플레의 충격 등 부작용을 최소화하는 것이 중요하고 지금과 같은 글로벌 경기둔화 상황에서 추진하는 것이 타당한지 등은 좀 더 연구가 필요하다.”고 말했다.

Posted by +깡통+

IT버블이 터지고 난 2001년 미국의 물가 상승률은 2.75% 였다. 그로부터 2년이 지난 2003년에 같은 변수는 1.1%까지 떨어졌다.

 

FRB가 디플레이션에 대해 본격적인 고민을 하기 시작한 것이 이즈음인데 일본의 사례에 대한 다양한 연구가 시작됐고 지금 FRB 의장인 베넹키 의장도 여러 정책 대안을 제시했다.

 

그가 내놓았던 방안들에는 재무부과 협조해 재정 지출을 확대하고 세제 감면을 실시하는 조치들이 포함되어 있다.

 

버냉키 의장이 ‘내 생애에 대공황이 발생한다면 헬리콥터로 돈을 뿌려서라도 막겠다’는 의지를 가지고 있는 점을 생각하면 당연한 결과일지 모른다.

 


다시 디플레이션에 대한 공포가 다가오고 있다.


흔히 자산 가격 디플레이션을 얘기하는데 이 보다 더 문제가 되는 것은 공산품 가격 하락이 아닐까 생각된다.

 

1990년대 이후 이머징 마켓은 세계 경제에서 생산의 축을 담당했다. 그리고 수년간 경기 호황으로 이머징 마켓을 중심으로 세계적인 생산 능력 확대도 있었다.

 


이머징 마켓의 등장은 글로벌 경제의 팽창 과정이었다.


지난 20년간 많은 이머징 마켓 국가가 시장과 교역의 세계에 진입했는데, 이런 팽창은 서구 자본이 아시아와 지구 전체로 움직임에 따라 탄력을 받았다.

 

그 결과 1990년과 비교해 2007년에 세계 경제의 생산 규모가 22조 8,000억 달러에서 53조 3,000억 달러로 늘었고 무역 역시 133% 증가했다.

 

이 성장의 절반 이상을 이머징 마켓이 차지했으며, 이들은 구매력 평가 지수로 측정해 세계 경제의 40% 이상을 차지하고 있다. 


이머징 마켓의 등장은 세계 경제에 구매력이 늘어나는 긍정적 효과를 남겼다. 그러나 통제되지 않는 생산 능력 확대로 인해 2007년 하반기부터 세계 경제에 문제를 일으키기 시작했는데 가장 대표적인 것이 원자재 가격 급등이다.


이머징 마켓 입장에서 노동은 가장 값 싼 경쟁 도구이며 언제든지 공급될 수 있는 것이다. 따라서 원자재만 확보되면 생산이 이루어지고 이를 통해 이익을 올릴 수 있었는데, 이런 이유 때문에 여러 이머징 마켓 국가들이 원자재를 과다 수요하게 됐다.


물론 과잉 생산 능력이 있고 원자재 가격이 상승해도 세계 경제가 좋다면 크게 문제될 것이 없다.

 

그러나 세계 경제가 둔화되면서 소비 여력이 떨어질 경우 문제가 커지는데 지난 몇 개월은 이머징 마켓이 얼마나 큰 문제가 될 수 있는지를 보여주는 예였다.

 

이머징 마켓이 지니고 있는 한계에도 불구하고 이들은 여전히 세계 경제에서 생산을 담당할 것이다.

 

세계가 이미 생산과 소비의 영역으로 나뉘어져 각자 경제적 효율을 얻어가고 있고, 현실적으로 이를 대체할 구조도 없기 때문이다.


그러나 구조가 유지돼도 이머징 마켓의 긍정적 영향은 약해질 것이다.

 


향후 예상되는 이머징 마켓의 어려움은 두 가지다.


첫째 경기 둔화로 선진국 수요가 현저히 떨어져 이머징 마켓의 공급 과잉 압력이 더 증가하는 점.

 

이 경우 세계적으로 점진적인 물가 하락이 나타날 수 있는데 이머징 마켓이 그 직접적인 영향권에 들어갈 것이다.


둘째는 경쟁력의 한계.


이머징 마켓이 생산을 담당하고 있지만 기술적 우위를 확보하고 있는 나라는 없다. 대부분이 노동 비용에 의존해 경쟁을 유지하고 있는데 경기 둔화로 세계적인 수요 감소가 나타날 경우 가격 인하 경쟁이 치열하게 펼쳐질 것이다.

 

따라서 이머징 마켓은 생산 설비 중 일정 부분이 유휴화되고 실업과 수익성 악화 문제에 시달릴 가능성이 높다.

 

 

중국은 과거에 물가 하락에 시달린 시절이 있었다.


‘99~2006년 까지 동향을 보면 2004년 한 때를 제외하고 중국의 물가 상승률이 1%를 넘은 적이 없다. 연 10% 넘는 경제 성장을 하는 나라로서는 유례가 없는 일이었는데 투자 증가에 따른 공산품 생산 확대가 물가 하락의 주범이었다.

 

당시 주가는 약세였다. 가격 하락에 따른 부담이 기업에 이전되면서 기업 실적이 좋지 않았기 때문이다.


향후 공산품 가격 하락이 나타날 것인가?


가능성이 높은데 이 경우 부담은 고스란히 이머징 마켓이 짊어져야 한다. 반대로 선진국은 값싼 재화를 쓰는 혜택을 받을 것이다.

 

중국이 경기 부양 대책을 내놓았지만 과연 그 효과가 가격 하락 압력을 이겨낼 수 있을지 지켜봐야 할 것 같다.


 


Posted by +깡통+
주변에서 티스토리를 쓰시는 분들이 하나 둘 씩 생겨났습니다.
그래서 티스토리가 뭔가..  살펴보았지요~
7가지의 장점을 소개하던데요.

독립 도메인
무제한 업로드
데이터 백업
아이피 주소 필터링
트래픽 무제한

등등.. 있네요.

일단은 괜찮은 조건입니다. ^^
제가 운영하는 사이트가 몇개 있습니다.
1년 단위로 돈을 지불하지만 비용이 이제 만만치 않을 정도로 늘어나네요.
어떻게 처리를 해볼까?? 고민했는데..
잘된듯? ^^ 아직은 좀더 지켜봐야겠네요.
Posted by +깡통+