최근 해외송금을 해야 할 일이 있어 일반은행과 Kakao Bank를 이용해서 송금을 해봤습니다.

 

송금하기 전에 인터넷을 찾아서 송금 수수료에 대해 조사해 보고 환율 우대도 비교하고 했지만

결론은 그냥 주거래 은행에서 보내는 거나 비슷할 것 같다고 판단.

그러나 결론은 많은 차이가 발생 했습니다.

송금수수료 문제가 아니라 중계수수료가 문제였습니다.

 

대부분 인터넷에서는 송금수수료에 대한 내용만 다루는데 거기에 좀 함정이 있습니다.

일단 결과를 보면서



카카오 뱅크와 내가 수십년 애용한 주거래 은행 신*뱅크.

송금은 동일한 계좌로 송금한 내용입니다.


송금 날짜가 20일 정도 차이가 나서 환율이 조금 차이가 나는데 환율우대 받아서 10원쌈(싼건가?).


150USD 송금하는 것과 225USD 송금하는 내용인데 금액이 75USD 차이가나고 환율은 10원 차이.

모든게 비슷하지만 결국 해외중계수수료 20$ 만큼 차이가 나는군요.


일단 소액 송금은 무조건 카카오뱅크를 이용해야 겠습니다.


다음에 큰돈 보낼 일 있으면 다시 한번 비교를 해보도록 하겠습니다.



codejock과 더불어 많이 사용하고 있는 bcgsoftBCGControlBar Library를 가지고 간단한 Chart를 하나 그려 보면서 사용법을 알아 보도록 하겠습니다.



1. 프로젝트 생성


BCGControllerBar를 설치 했으면 적당한 이름으로 프로젝트를 생성해 줍니다.



계속 [다음] 버튼을 누르다 보면 설정들이 일반 MFC 프로젝트와 비슷하지만 종류가 많아진 것을 알 수 있는데

그냥 Single Document를 선택하고 모두 [다음] 버튼을 선택해서 넘어 갑니다.

그리고 프로젝트 생성 마지막 단계에서 Base classCBCGPFormView 를 선택해 주고 [Finish] 버튼을 선택 합니다.




2. BCG 추가하기


프로젝트가 생성이 되었으면 이제 본격적으로 차트를 그려보도록 하겠습니다.

- 리소스 뷰에서 main FORM 을 선택합니다.

- Form Picture Control을 하나 적당하게 그려 넣어 줍니다.

- 속성 값에

       Type : Rectangle

         Color : Gray

를 선택 합니다. ID는 편한대로 하고 저는 IDC_CHART로 했습니다.



프로젝트를 저장 하고 코딩을 하기 전에 프로젝트가 제대로 생성되었는지 일단 실행 해볼까요?

저는 코딩 하기 전에 한번 환경이 잘 잡혔는지 잘못 입력된 부분이 있는지 시행을 해봅니다.



이런오류가 뜨는 군요.

BCGControlbarx64로 설치하고 x86으로 실행을 해서 발생한 오류 입니다.

이유를 찾느라 시간을 좀 허비 했었는데 나같은 사람을 없겠죠.


설정 값만 x64로 변경하고 실행하면 이번엔 오류 없이 잘 나옵니다.

아직은 chart를 그리지 않아서 회색의 빈 공간으로 나타나지만 계획대로 잘 나왔습니다.




3. 코딩


BCGPieChartView.h 헤더 파일에 다음 항목을 정의 합니다.


public:
	CBCGPChartCtrl		m_PieChart;

	int   m_nHoleSize;
	CString	m_strHoleSize;

	void UpdatePieChart();

BCGPieChartView.cpp 소스 파일에 그리기 코딩 작업을 합니다.


CBCGPieChartView() 함수에 헤더에서 정의한 변수의 기본값을 설정 합니다.

CBCGPieChartView::CBCGPieChartView()
	: CBCGPFormView(CBCGPieChartView::IDD)
{

	EnableVisualManagerStyle();

	// TODO: add construction code here
	m_nHoleSize = 50;
	m_strHoleSize = _T("");

	m_strHoleSize.Format(_T("%d%%"), m_nHoleSize);

}

form에 그렸던 picture controll을 연결 합니다.

void CBCGPieChartView::DoDataExchange(CDataExchange* pDX)
{
	CBCGPFormView::DoDataExchange(pDX);

	DDX_Control(pDX, IDC_CHART, m_PieChart);
}

이제 차트를 그리기 위한 초기 설정 값들을 적어줍니다.

void CBCGPieChartView::OnInitialUpdate()
{
	CBCGPFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();

	//Pie Draw
	CBCGPInfoTipOptions infoTipOptions;
	infoTipOptions.m_StemLocation = CBCGPPopupWindow::BCGPPopupWindowStemLocation_Left;

	m_PieChart.EnableInfoTip(TRUE, &infoTipOptions);


	CBCGPChartVisualObject* pChart = m_PieChart.GetChart();

	ASSERT_VALID(pChart);

	pChart->ShowDataLabels(TRUE);
	pChart->SetChartType(BCGPChartPie);  //차트 종류를 기입하는곳 입니다.
	pChart->SetRect(CRect(0, 0, 200, 200), TRUE);


	pChart->SetLegendPosition(BCGPChartLayout::LP_NONE, FALSE, FALSE);
	pChart->SetChartTitle(_T("Test PieChart"));  //차트상단 타이틀입니다.
	pChart->AddChartData(_T("Apple"), 60);    //이건 아시죠? 차트별 값
	pChart->AddChartData(_T("Orange"), 20);
	pChart->AddChartData(_T("Banana"), 20);

	UpdatePieChart();
}

차트 초기값 설정이 끝났으니 차트를 그리는 부분을 코딩합니다.

차트 설정가 그리는 부분을 나눈 이유는 아시죠?

차트 값이 변경되면 다시 그리는 부분이라고 생각하시면 어떻게 응용해야 하는지 감을 잡았겠죠.

void CBCGPieChartView::UpdatePieChart()
{
	UpdateData();

	CBCGPChartVisualObject* pChart = m_PieChart.GetChart();
	ASSERT_VALID(pChart);

	BCGPChartDataLabelOptions dataLabelOptions = pChart->GetDataLabelOptions();
	dataLabelOptions.m_position = BCGPChartDataLabelOptions::LabelPosition::LP_CENTER;
	dataLabelOptions.m_bUnderlineDataLabel = TRUE;
	dataLabelOptions.m_content = BCGPChartDataLabelOptions::LC_PIE_NAME_PERCENTAGE;
	dataLabelOptions.m_bDrawDataLabelBorder = dataLabelOptions.m_position != BCGPChartDataLabelOptions::LP_DEFAULT_POS && dataLabelOptions.m_position != BCGPChartDataLabelOptions::LP_OUTSIDE_END;

	pChart->SetDataLabelsOptions(dataLabelOptions);
	pChart->Redraw();
}

여기서는 그냥 간단히 차트를 하나 그리는것만 하였습니다.


실제로 설정값들이 여러가지 있습니다. 그건 하나씩 변경하면서 어떻게 결과가 나오는지 확인해 보면서 익히셔야 합니다.


여기까지의 코딩 결과를 실행해 보면 아래처럼 파이차트가 나타납니다.



간단히 legend를 안보이게 하면 아래처럼


BCGControlbar PieChart



끝입니다.


- copy coding -


1···20212223

+ Recent posts