본문 바로가기

분류 전체보기429

[C++/MFC 핵심노트] Class (클래스) 접근범위 제한 - PART 2 클래스 두번째 파트입니다. 클래스에서 또하나 중요한 개념인 접근범위 제한에 대해서 정리해 보겠습니다. 클래스가 만들어지면 그 용도에 따라 다양한 형태로 사용될 수 있는데, 클래스를 설계한 사람이 어떻게 내부구조를 만드느냐에 따라 어떤 멤버는 클래스 내부에서만 사용가능하고 어떤 멤버는 외부에서도 바로 접근할 수 있도록 만들수도 있습니다. 만약 이런 제한이 없다면 클래스는 단순히 코드의 가독성을 높여주기 위한 도구 정도에 불과할텐데, 클래스의 인터페이스를 클래스 설계자가 의도한 대로 제한함으로써 사용시 오류도 줄이고 코딩의 생산성도 높이는 효과를 얻을 수 있습니다. (저는 그리 복잡한 코딩을 해본적인 없기 때문에 대부분 public으로 사용해서 크게 와닫는 부분은 없었습니다.) 클래스 접근범위 제한 지금부터.. 2019. 1. 10.
[컴파일 오답노트] error C2440 ON_WM_NCHITTEST 에러 인터넷에서 찾은 오래전에 만들어진 어떤 소스를 컴파일 하려는데 에러가 발생했습니다. 에러메시지는 error C2440: 'static_cast': 'UINT (__thiscall CACListWnd::* )(CPoint)'에서 'LRESULT (__thiscall CWnd::* )(CPoint)'(으)로 변환할 수 없습니다. note: 기본 형식에서 파생 형식으로 캐스트하려면 dynamic_cast 또는 static_cast가 필요합니다. 앞뒤로 형이 맞지 않는다는 내용인거 같은데 뭔말인지 잘 모르겠습니다. 에러가 발생한 부분은 메시지 맵에서 "ON_WM_NCHITTEST()" 부분이었습니다. BEGIN_MESSAGE_MAP(CACListWnd, CWnd) ON_WM_NCHITTEST() END_MESS.. 2019. 1. 3.
[맛바미]가성비추천!송도 오네스타 한정식 거궁 송도내에서는 가성비 좋기로 소문이 나있기때문에주말에 먹으려면 대기는 조금 있을 수 있지만..그래도 가게앞 큰모니터로대기자 명단을 띄워주고..워낙 홀이 넓어서 대기시간도 그렇게 길지는 않다. 트리플스트리트에 "더 반상"도 같은 스타일이지만서빙이 간편하다. 한상을 차려와서는..기본테이블에 겹치는 방법~처음에는 완전 신기했는데, 요새 한정식집은 이런식의 테이블이 많아서~예전처럼 우와~~이러지는 않음.가격 대비 푸짐하고 다양하게 한정식을 즐길수 있었고~ 무엇보다 입맛을 잡으려고 사먹는 음식의 염분농도가 점점 높아지는데~반찬들이 그다지 짜지 않아서 안심하고 먹을 수 있다. 평점●●●●○위치(w3w: ///) 2019. 1. 2.
전자공시시스템(DART)에서 재무제표 데이터 가져오는 프로그램 만들기 DART의 Open API를 이용해서 궁극적으로는 원하는 데이터를 콕 찝어서 가져와서 필요한 지표를 계산하는 그런 프로그램을 만들고 싶었습니다. 그런데 결론적으로는 지금 내 수준에서 단기적으로 달성하기에는 무리가 있는듯 하여 재무제표 조회의 수준에서 마무리하기로 했습니다. 이유는 뒷부분에서 얘기하겠습니다. DART의 Open API 자체가 공시데이터의 목록 “조회만"을 목적으로 하고 있기 때문에 세부적인 Data의 조회는 편법을 이용해야 하며 그 편법을 위해서는 제 잔머리도 부족하고, 또 DART에서 자체적으로 세부Data를 일괄로 내려받을 수 있도록 해주고 있어서 굳이 새로운걸 만들어 쓸 필요가 없겠더라구요. 그래서 저는 이번 프로젝트는 이번 글에서 마무리하고자 합니다. 이번글은 DART에서 제무제표를.. 2018. 12. 26.
strlen / wcslen / _mbslen / _tcsnlen - 문자수 반환 strlen, wcslen, _mbslen, _tcslen 용도 문자열에 포함된 문자의 개수를 반환 구문 #include size_t strlen(const char *string); size_t wcslen(const wchar_t *string); #include size_t _mbslen(const unsigned char *string); size_t _mbslen_l(const unsigned char *string, _locale_t locale); 매개변수 string Null로 종료되는 문자열 locale locale 반환 문자열 안에 포함된 문자의 갯수를 반환함. null은 제외. 에러에 대한 별도 반환이 지정되어 있지 않습니다. 추가설명 T캐릭터 함수를 사용하면 아래와 같이 호출됩니다... 2018. 12. 20.
구글캘린더에서 iCal로 불러온 일정을 다시 삭제하는 방법 2019년도 F1경기 일정을 구글 캘린더에 집어넣으려고 F1 사이트에서 일정표를 받았습니다. 구글 캘린더에서는 iCal파일과 아웃룩에서 사용하는 형식의 CSV파일을 지원하고 있는데 저는 iCal 파일로 받아서 불러오기를 했는데, 저장할 캘린더를 보지 않고 그냥 버튼을 꾹 눌러버렸더니, 제가 사용하는 기존 일정의 캘린더에 다 가져와 버려서 뒤죽박죽이 되어 버렸네요.이걸 일일히 다 지워주려니 300개가 넘는 일정을 하나씩 지우는건 보통일이 아니네요. 캘린더 선택을 했어야 하는데 하고 뒤늦은 후회를 해봐야 소용없죠. ㅠ.ㅠ 보통 실행취소 이런버튼이 생기는데, 이건 작업량이 많은거라 그런지 되돌릴수가 없었습니다.그런데 다행이 이런경우 불러왔던 iCal파일 일정을 다시 삭제할 수 있는 방법이 있었습니다. (죽으란.. 2018. 12. 19.
[Working Copy] 아이패드 최고의 소스코드 뷰어, git 지원 앱 추천 오늘은 엄청난 아이패드 앱을 하나 소개/추천 드리려고 합니다. 코딩을 하시는 개발자 분들이나, 프로그래밍을 공부하시는 학생분들 아마 한번씩 이런 앱이 있었으면 하는 상상은 해 보셨을 겁니다. 컴퓨터에서처럼 완벽한 에디팅/컴파일 환경은 아닐지라도 최소한 아이패드의 강력한 모바일 특성을 고스란히 느낄수 있는 내맘에 쏙드는 깔끔한 UI의 소스코드 뷰어 없나? 라는 그런생각 말입니다. 앱소개 (Working Copy) 그런면에서 정말 완벽에 가까운 앱이라고 할수 있는것 같습니다. 바로 "Working Copy" 란 앱입니다. 음.. 이름은 어플만큼 섹시하지는 않네요 ㅎ 그런데 앱스토에서 찾아보시면 아시겠지만 사용자 평가가 엄청납니다. 무려 별점 4.5!! 저는 이 앱을 알기전에 아이패드에서 이앱 저앱 다~ 깔아.. 2018. 12. 5.
[Azure DevOps] Visual Studio에서 Git 사용하기 2021-03-25 update log: MS가 Github을 인수한 이후로 Github도 개인 사용자에게 비공개 리포지토리를 무료로 사용할수 있게하였습니다. 코딩이라는 작업을 하다보면 소스를 이렇게 고쳤다가 저렇게 고쳤다가 수도없이 컴파일해서 테스트하고 하는데요 이럴때 가장 중요한게 버전 컨트롤이죠. 어떨때는 논리가 꼬여서 뭐가 최종버전인지 뭐가 맞는건지도 몰라서 최악의 경우에는 다시 처음부터 만들기도 하고 그랬습니다. 그래서 예전에는 프로그램 개발버전별로 폴더를 만들어서 혹시나 하는 상황에 대비하려고 했던 적도 있었습니다. 그런데 Git이라는 획기적인 버전관리도구가 나와서 이 모든 걱정거리를 싹 해결해 주었습니다. 대신 Git이라는 새로운 공부거리가 생기기는 했지만요. 프로그래밍을 공부하는 사람이라면.. 2018. 12. 5.
HTML Parcer 예제프로그램 분석과 코드 활용방안 Intro 이전 글에서 CodeProject.com에서 받은 코드를 컴파일하는 간단한 방법을 소개한 적이 있었는데 그때 받았던 코드를 본인의 프로그램에 사용하기 위해서 나름대로 로직을 분석한 결과를 정리해 두려 합니다. CodeProject.com에서 다운받은 C++ 프로젝트 컴파일 하는 방법 다운받았던 프로그램은 "HtmlParser"라는 프로그램으로 웹페이지 주소를 넣으면 해당 코드를 받아와서 HTML 코드를 분석해서 코드의 계층구조를 트리 형태로 시각화 시켜주고 원하는 특정 태그나 속성을 필터링 할 수도 있는 그런 기능을 합니다. 저는 전자공시 사이트인 Dart에서 필요한 기업정보를 가져오기 위해서 웹페이지 크롤링 방법을 고민하고 있는 중입니다. 당현히 HTML파싱이 빠질수 없기 때문에 잘 만들어진.. 2018. 12. 4.
DART API를 이용한 재무제표 접근법 2021-03-10 update log: DART API에 많은 변경사항이 있어서 포스팅 내용과 다른 부분이 있습니다. 내용 수정 예정이니 참고해주세요. DART API로 제무재표를 DART에서는 국내 상장기업의 재무정보에 접근할 수 있는 통로로 API를 제공을 하고 있습니다. API를 이용하면 간단하게 내가 원하는 기업의 특정 재무정보를 불러오는 프로그램을 만들 수 있다는 얘기죠. 저는 기업코드를 입력하면 해당 기업의 제무재표에서 내가 원하는 지표, 예를 들어, 매출, 부채, 자본 등 이런 값들을 불러오는 그런 프로그램을 만들고자 합니다. 필요한 지표를 불러올 수 있다면 활용은 다양하게 할 수 있겠죠. 그런데 문제가 있었습니다. DART에서는 극히 제한적인 정보들만 API로 제공하고 있었습니다. 제가 .. 2018. 12. 3.
[C++/MFC] CString 다양한 기능들 정리 CString은 MFC에서 문자열을 처리를 아주 쉽게 처리할 수 있도록 제공해주는 클래스라서 내장된 기능이 어마어마 합니다. 사용법만 알면 간단히 사용할 수 있도록 만들어 두었는데 그 내부를 보면 사용하는것 만큼 간단하지는 않습니다. 그 많은 기능들을 최적화해서 (물런 네이티브 문자열 처리에 비해 속도가 느리기는 함) 제공하기 위해서는 상당히 복잡한 구조로 되어있습니다. 언제나 처럼 저는 복잡한 내부구조는 관심없고, 쉽게 쓸수만 있으면 그만입니다. ㅎ 문자를 자르고 붙이고 뭐 이런건 이본이고 그외에도 다양한 기능을 CString 자체에서 할수 있으니 MFC를 사용한다면 어떤 기능들이 있는지 알아둘 필요는 있을 것 같습니다. 다는 아니지만 음 이정도는 내가 써볼만 하겠다 하는 기능들만 모아봤습니다. CSt.. 2018. 12. 3.
isalum / iswalnum / _ismbcalnum / _istalnum - 정수값이 영어,숫자인지 확인 isalum, iswalnum, _ismbcalnum, _istalnum 용도 확인하고자 하는 문자의 정수값이 영어나 숫자를 나타내는지를 확인 구문 #include int isalnum(int c); int iswalnum(wint_t c); int _isalnum_l(int c, _locale_t locale); int _iswalnum_l(wint_t c, _locale_t locale); #include int iswalnum(wint_t c); int _iswalnum_l(wint_t c, _locale_t locale); #include int _ismbcalnum(unsigned int c); #include int _istalnum(_TINT c); 매개변수 c 확인할 문자의 정수값 loca.. 2018. 11. 30.
isalpha / iswalpha / _ismbcalpha / _istalpha - 정수값이 영문자인지 확인 isalpha, iswalpha, _ismbcalpha, _istalpha 용도 확인할 정수값이 영문자(alphabet)인지 확인 구문 #include int isalpha(int c); int iswalpha(wint_t c); int _isalpha_l(int c, _locale_t locale); int _iswalpha_l(wint_t c, _locale_t locale); #include int iswalpha(wint_t c); int _iswalpha_l(wint_t c, _locale_t locale); #include int _istalpha(_TINT c); 매개변수 c 확인할 문자의 정수값 locale locale 반환 문자의 정수값이 A~Z, a~z 의 영문자인경우 nonzero를 .. 2018. 11. 30.
_strinc / _stcsinc / _mbsinc / _wcsinc - 바로뒤의 문자 포인터 반환 _strinc, _stcsinc, _mbsinc, _wcsinc 용도 바로 뒤에 따라오는 문자의 포인터 반환 구문 #include char *_strinc(const char *current, _locale_t locale); #include unsigned char *_mbsinc(const unsigned char *current); #include wchar_t *_wcsinc(const wchar_t *current, _locale_t locale); 매개변수 current 문자 포인터 locale 사용할 locale 반환 current 바로 다음위 문자 포인터 추가설명 current 매개변수의 문자에서 바로 다음에 있는 문자의 포인터를 반환하는 함수입니다. "_strinc"처럼 "locale"매.. 2018. 11. 30.
isspace / iswspace / _ismbcspace / istspace - 정수값이 공백문자인지 확인 isspace / iswspace / _ismbcspace / istspace 용도 파라미터의 정수값이 공백문자인지 확인 구문 #include int isspace(int c); int iswspace(wint_t c); #include int istspace(_TINT c); 매개변수 c 확인하고자 하는 정수값 반환 확인한 정수값이 공백문자에 해당된다면 nonzero를 반환 추가설명 T캐릭터 함수를 사용하면 아래와 같이 호출됩니다. 미정의시: isspace _MBCS 정의시: _ismbcspace _NICODE 정의시: iswspace 끝! 2018. 11. 30.