본문 바로가기
자바 코딩 규칙, 코드 컨벤션 (Code 스타일과 표준) 자바 코딩 규칙, 코드 컨벤션 (Code 스타일과 표준) 출처 - 자바 코드 컨벤션 for the Java TM Programming Language [클릭] 번역하신 분의 블로그 포스트 1 - 자바 코딩 규칙과 스타일 / Java Code Convention [클릭]번역하신 분의 블로그 포스트 2 - 2015년도 업데이트 버전 [클릭] 번역본 pdf 원본 pdf JavaCodeConventions.pdf 참조 자료Java Coding Pattern 코딩 규칙 - 번역하신 분의 코딩 블로그 포스트 2로 이동하셔서 보세요. 전에는 코드 스타일 pdf 전문을 블로그에 공개하지 않으셔서 전문을 올려놨었지만, 이제는 그럴 이유가 없어졌네요. 깔끔하게 코드 표준 규약서 번역해주셨으니 해당 블로그로 이동하셔서 보시.. 2017. 2. 8.
[C++] Qt 인터넷 네트워크 연결 상태 확인 (QTcpSocket) [C++] Qt 인터넷 네트워크 연결 상태 확인 (QTcpSocket) ■ Unplugging ethernet (물리적 문제로 인터넷 끊김)Qt에서 소켓을 사용하다 보면 끊어진 경우를 확인해야 할 상황이 발생합니다. 굳이 Qt가 아니더라도 언제나 서비스 제공자는 확인해야 합니다만, Qt를 이용한 프로그래밍을 할 땐, 단순히 플러그가 뽑힌 경우를 체크하기엔 까다롭습니다. 왜냐면 QAbstractSocket 클래스가 제공하는 ConnectedState는 연결된 이후, 물리적인 플러그 뽑힘을 확인하지 못합니다. 슬프게도, Qt가 제공하는 그 어떤 소켓 클래스들도 물리적인 플러그 Unconnected를 확인하질 못합니다. 그래서 조금 돌아가는 방법을 사용해야 합니다. ■ Simple Main Code 우선, 간.. 2017. 2. 8.
VisualStudio 2012와 NI DAQ 연동 프로젝트 4가지 팁 Visual Studio 2012의 NI DAQ 프로젝트. 4가지 팁. 1. 프로젝트 속성 변경 (Visual Studio 2012 기준)- 프로젝트 속성 - 구성 속성 - VC++ 디렉터리 1. 포함 디렉터리에 추가C:\Program Files (x86)\National Instruments\Shared\ExternalCompilerSupport\C\IncludeC:\Program Files (x86)\National Instruments\NI-IMAQ IO\Include 2. 라이브러리 디렉터리에 추가C:\Program Files (x86)\National Instruments\Shared\ExternalCompilerSupport\C\Lib32\MSVCC:\Program Files (x86)\Nat.. 2017. 2. 7.
MAVEO 포터블을 이용한 GPS 3d 지도 프로토타입 원문 - CodeProject : Animating Google Earth(3D) & Map(2D) for Live GPS via Ajax and RestFul Web Service [클릭] 프로젝트 다운 - GPS를 이용해 웹 브라우저에서 구글맵, 구글어스, 카메라에서의 현재 위치를 실시간으로 동기화 시켜주는 프로그램이라고 하네요. 여기에 쓰인건, Ajax, jQuery, Rest Service, Google Map & Earth, Java 등이라고 합니다. 한가지 기능을 살펴보자면, 2D Map과 3D 빌딩 기능의 활성화 / 비활성화입니다. 1234567891011121314151617181920212223242526272829303132function toggle2d() { if (show2d.va.. 2017. 2. 7.
MODBUS 테스트 프로그램 ModLinkDemo 시뮬레이터 데모 MODBUS 테스트 프로그램 ModLinkDemo.exe 데모 실행 파일 - 간단합니다. 연결, 실행. 끝. 어떤 러시아 형님이 만든걸로 알고 있는데 .... 아는 건 이게 끝. MODBUS 테스트 프로그램 ModLinkDemo.exe 데모 2017. 2. 7.
안드로이드 TextView에 특수문자 삽입, Spanned 응용 넣기 [안드로이드] TextView에 특수문자 넣기 (Spanned 이용) 안드로이드에는 Entity Name을 이용해서 특수 문자를 TextView에 삽입할 수 있습니다. 123Spanned sp = html.fromHtml(" ");TextView tv = (TextView)findViewById(R.id.textview);tv.setText(sp);Colored by Color Scriptercs 이런식으로 삽입이 가능합니다. 추가로 특수문자를 삽입하기 전에, w3schools.com - HTML ISO-8859-1 Reference를 참고하세요.아래 그림에 나온 것처럼 심볼 규격을 확인하는게 우선입니다. 원래 Spanned는 HTML 소스 코드와 관련된 API지만, TextView에 응용해서 사용이 가.. 2017. 2. 6.
[MFC] BCGControlBar Chart Control 예제, RC 코드 수정 [MFC] BCGControlBar 데모 프로젝트, Chart Control 예제 BCG 데모 프로젝트 생성 이전 포스트의 4번 과정[링크]을 정상적으로 거쳤다면 Visual Studio에서 BCGPAppWizard의 사용이 가능합니다. 단, 새 프로젝트 메뉴에서 선택할 수 있는 건 Visual Studio 2008 SP1 이상, 이하는 지원하지 않습니다. 위의 그림처럼, BCGAppWizard 템플릿을 선택하고 이름은 간단히 BCG_TEST로 설정합니다. 다음, Application Type를 설정합니다. 다음, BCGPControlBar General을 설정합니다. 다음, BCGPControlBar Advanced를 설정합니다. 그리고 생성되는 프로젝트에서 F5를 눌러 디버깅을 진행하면 아래와 같은 .. 2017. 2. 6.
MFC BCGControlBar Chart Control 설치 [GUI 프로그래밍] BCGControlBar, Chart Control MFC 설치, GUI 프로그래밍 환경 ※ 이 포스팅은 BCGControlbar Pro 버전과 Visual Studio 2010(MFC)을 기준으로 작성 BCG(for MFC)의 Professional Edition 관련 사이트1. Sample(Win32 기반의 압축된 실행 파일의 다운로드 가능) Samples Download - BCGCONTROLBAR FOR MFC [클릭] - General Samples- Ribbon- Toolbar- Menu- Docking Windows - Document/View- Visualization- Grid- Editor- Chart Control and Gauges - Calendar- Diagram- Gantt- .. 2017. 2. 6.
MFC 멀티바이트 유니코드 변환, Char <-> CString 형변환 MFC 멀티바이트에서 유니코드 변환 (c++, Char, CString) 『기본적으로 유니코드 환경』에선 wchar_t를 사용하셔야 됩니다. Char -> CString1. char* to LPWSTR 참조 - 스택 오버플로우 : Convert char * to LPWSTR [클릭] 12345char text[] = "something";wchar_t wtext[20]; mbstowcs(wtext, text, strlen(text)+1);//Plus nullLPWSTR ptr = wtext;cs 2. char* data -> cstring 1(LPSTR)datacs 3. const char * -> const CString & 1CString str= _T("asdf");cs 또는, 12wchar_t *.. 2017. 2. 5.
[Qt 프로그래밍] 그래픽 라이브러리 Qwt 소멸자 코드 [Qt 프로그래밍] Qwt 소멸자 코드 (그래픽 라이브러리) Qwt Plot를 사용한 뒤 메모리 해제를 완벽히 하려면 detachItems() 함수를 이용해야 합니다. Qwt User's Guide 6.1.2의 QwtPlotItem Class Reference 문서를 참조해 보면, plot 내부에 많은 아이템 클래스가 존재하는 것을 확인할 수 있습니다. 보시다시피 저 수많은 아이템 중, 실제 사용하셨던 아이템들은 detachItems()로 해제해 줘야 합니다. 그래야 메모리 누수가 발생하지 않아요. 해제 코드는 꽤 간단합니다. 해제할 아이템을 선택하고 true를 인자로 넘기면 됩니다. 12345678910111213141516171819202122plot_->detachItems(QwtPlotItem::.. 2017. 2. 5.
C++ 메모리 해제와 접근 할당 에러 9가지 적절한 malloc 사용법 C++ 메모리 해제 접근 할당 에러 (malloc, delete, free) C++ 메모리 에러 종류1. 메모리 해제 에러메모리 릭시간이 갈수록 메모리 사용량이 계속 증가한다. 시간이 갈수록 프로세스가 느리게 동작한다.종국적으로 『메모리가 부족』하여 프로그램의 작업과 시스템 콜들이 실패한다. 123456void memoryLeak(){ int* p = new int[1000]; return; // 버그! p를 해제하지 않음}cs 메모리 할당, 해제의 잘못된 매칭 보통 프로그램을 즉시 크래시시키지 않는다. 어떤 플랫폼에서는 메모리를 손상할 수 있고 나중에 프로그램 크래시(세그먼테이션 오류)로 나타난다. 1234567891011void mismatchedFree(){ int* p1 = (int*)malloc.. 2017. 2. 5.
전문가 시스템(Expert System) 엑스퍼트 시스템이란? 소설 속 예시 전문가 시스템(Expert System), 엑스퍼트 시스템이란? 전문가 시스템(엑스퍼트 시스템(Expert System))이란 일종의 인공지능(AI)과 관련된 것이라 막연하게 생각해 왔다. 어디서도 상세하게 이해할 만한 글을 접해보지 못했기에 머릿속으로도 정립되지 않은 개념이었다. 펀드용어 사전 - Expert System [클릭]엑스퍼트 시스템 의사 등 특정 분야 전문가들의 지식이나 추론 방법을 컴퓨터로 옮겨 넣어서 전문가 이외의 사람들도 이와 같은 지혜를 이용할 수 있도록 만든 인공지능 시스템의 일종. 지식 베이스라 불리는 데이터베이스에 전문가의 지식을 넣어두어 추론 기능을 사용, 일정한 판단을 내리는 장치이다. 아... 정말 막연하지 않은가? 전문가 시스템이 뭔지 모르는 사람들은 저 글만 봐선 결코.. 2017. 2. 4.