본문 바로가기

Programming

객체지향 자바스크립트 소개 출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript 비록 다른 객체지향적인 언어들과의 차이점에 대한 논쟁들이 있긴 하지만, JavaScript는 강력한 객체지향 프로그래밍 능력들을 지니고 있다. 이 글에서는 객체지향 프로그래밍에 대해 소개하는 것으로 시작해서 자바스크립트의 객체 모델, 그리고 자바스크립트에서의 객체지향 프로그래밍 개념에 대해 간단한 예제로 살펴볼 것이다. 자바스크립트 리뷰(JavaScript review)만약 변수, 형, 함수, 스코프 등 자바스크립트의 개념에 대해 명확히 이해하고 있지 못하다면, A re-introduction to JavaScript를 참고해.. 더보기
boost 컴파일 에러 fatal error C1001 출처 : http://kjk92.tistory.com/35 visual studio 2013 deepllearning caffe를 사용하려고 환경을 구축하는 중 boost(1.63버전) 컴파일시 fatal error C1001 : 컴파일러에서 내부 오류가 발생했습니다. 에러 내역boost\type_traits\common_type.hpp(42): fatal error C1001: 컴파일러에서 내부 오류가 발생했습니다. (※ 해결후 포스팅 하는 데 스크린샷을 미리 찍지 못했습니다ㅠㅠ) - 환경구축 중이 아닌 다른 상황으로 타 블로그에서 개발 중 C1001 발생하면 다시 빌드를 하면 된다 고도 합니다.(비쥬얼을 종료후 -> 솔루션 다시빌드를 말하는거 같습니다.) 출처에서 보니 visual 2013이 최신 버.. 더보기
example - input type="file" 처리에 관한 예제들 출처 : http://ankyu.entersoft.kr/board_Lecture/lecture_content.asp?lecture_idx=248&gubun_type=javascript 1. type="file" 선택된 파일 초기화 if (/(MSIE|Trident)/.test(navigator.userAgent)) { // ie 일때 input[type=file] init. $("#board_fname1").replaceWith( $("#board_fname1").clone(true) ); } else { // other browser 일때 input[type=file] init. $("#board_fname1").val(""); } 2. 특정확장자 만 선택받는 방법 - accept 에 확장자만 써주면 .. 더보기
jquery dom 객체 존재 여부 체크 출처: http://murdering.tistory.com/126 [웹프로그래머] 요즘 스크립트 작업은 대부분 jQuery에 의존하고 있다.작업을 하다 객체가 존재하는가 하지않는가가 필요해서 코딩을 약간 해봤는데 무조건 객체가 존재한다고 나와버린다. 보통 자바스크립트에서는 alert(getElementById("id값"));이렇게 적으면 존재유무가 표시되는데.... alert($("#id값));jQuery도 비슷하게 했는데 안된다.그래서 검색을 하다보니 jQuery는 다른 방식으로 객체를 찾아내는걸 알게 되었다. alert( $("#id값").length );위와 같이 수행했을경우 id값이 존재하면 1 이상을, 존재하지 않으면 0을 리턴한다. 존재할때 계속 코드를 수행하게 만들기 위해서는 if ( $(".. 더보기
jQuery로 outerHTML처럼 사용하기 출처 : https://blog.outsider.ne.kr/401 Javascript에는 innerHTML이 있습니다. 선택한 Dom객체의 내부 HTML을 가지고 있는 프로퍼티라고 할 수 있습니다. (Javascript가 아니라 DOM에 있는건가요? 흠..) Html test 예를 들어 위와같은 소스가 있을때 testdiv의 innerHTML은 test입니다. testdiv 엘리먼트를 선택하고 innerHTML을 하면 a태그부터 가져올 수 있지만 div태그는 가져오지 못합니다. 자기 자신은 innerHTML에 포함되지 않죠. 간단한 소스야 가능하지만 DOM트리가 복잡할때는 div부터 HTML태그를 가져오려면 좀 난감할 때가 있습니다. jQuery로는 $("#testdiv").html()을 하면 a태그만 .. 더보기
첨부파일 byte 용량 계산 [bytes, KB, MB, GB, TB, PB으로 변환] 12345678910111213141516171819//byte를 용량 계산해서 반환 function byteCalculation(bytes) { var bytes = parseInt(bytes); var s = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB']; var e = Math.floor(Math.log(bytes)/Math.log(1024)); if(e == "-Infinity") return "0 "+s[0]; else return (bytes/Math.pow(1024, Math.floor(e))).toFixed(2)+" "+s[e]; }Colored by Color Scriptercs첨부파일 같은 파일 사이즈를 받아서 byte, KB, MB, GB, TB, PB 형을 .. 더보기
이클립스(eclipse) 단축키 ctrl + .(period) : warning, compile error 혹은 syncronize, compare시의 다른부분으로 이동하는 단축키ctrl + ,(comma) : 위의 키와 동일하나 역방향으로 이동ctrl + 1 : Quick Fix - 이클립스에서 어떻게 고칠것인지에대한 힌트나 제안을 해주는 기능Ctrl + Space : 입력 보조장치(Content Assistance) 강제 호출Ctrl + 마우스커서(혹은 F3) : 클래스나 메소드 혹은 멤버 링크타기.Ctrl + (Shift) + k : 선댁 문자열 (역)검색Alt + 위아래 : 구문 옮기기Ctrl + Alt +아래 : 행 복사Ctrl +S+f : 코드 자동정렬Ctrl + Shift + 넘버패드 / or 넘버패드 * : 전체폴딩 닫기.. 더보기
java 반올림(소수 몇재짜리 반올림) 자바 Math 클래스에서 실수값 반올림이나 올림, 버림, 절대값을 구해주는 메서드가 있다. 반올림static long Math.round(double a)static int Math.round(float a)예) System.out.println(Math.round(100.56)); //결과: 101 올림static double ceil(double a) 예) System.out.println(Math.ceil(100.56)); //결과: 101.0 버림static double floor(double a) 예) System.out.println(Math.floor(100.56)); //결과: 100.0 절대값static double abs(double a)static float abs(float a)st.. 더보기
html css 태그, div 중앙정렬 방법 6가지 html css 태그, div 중앙정렬 방법 6가지table 태그에서는 valign을 사용하여 세로 정렬이 가능하지만 div 태그는 세로정렬 옵션을 지원하지 않는다. div 태그에서 중앙정렬하는 방법 6가지를 알아보자 1. position:absolute와 margin 마이너스값을 이용한 중앙 정렬 방법 * html 중앙정렬 방법 * css.layer{ position:absolute; top:50%; left:50%; width:100px; height:100px; background:skyblue; margin:-50px 0 0 -50px; }ie7 이상 모든 브라우저에서 지원 가능하다.width와 height값이 고정사이즈인 상태에서만 사용할 수 있다. 2. position:absolute와 inl.. 더보기
Spring에서 post 방식으로 전달 시 한글 깨짐 해결(form데이터 전송) 이번 포스팅은 스프링 MVC 환경 설정중한글깨짐 현상을 해결하기 위한방법을 포스팅 하도록 하겠습니다.테스트를 위하여 form submit 테스트를 해보겠습니다. Controller12345678910@RequestMapping("/form")public String form(){ return "form";} @RequestMapping("/submit")public String submit(HttpServletRequest request, Model model){ model.addAttribute("text",request.getParameter("text")); return "submit";}Colored by Color Scriptercs 2개의 컨트롤러를 추가 하였습니다.form url은 입력폼이 .. 더보기
VS2013 mfc static bitmap 추가시 버그 (error RC2108: expected numerical dialog constant) 출처 : http://fantaziulo.blog.me/220208647844 인터넷에서 돌아다니는 오픈소스를 받아서 개발하는 도중에 아래와 같은 에러가 발생하였다.error RC2108: expected numerical dialog constant PUSHBUTTON 에서 에러가 나길래 아래와 같이 수정했는데도 에러가 났다...문제는 PUSH BUTTON 이 아니라 PUSH BUTTON 위에 CONTROL이 있었는데 해당 CONTROL을 아래와 같이 수정하면 된다 오류 : CONTROL "",IDC_CHARTVIEWER0,91,52,15,13,NOT WS_GROUP정상 : CONTROL "",IDC_CHARTVIEWER0,"Static",SS_BITMAP,119,1,15,13 vs2013에서 mfc에.. 더보기
STL Queue 사용법 1. 전처리#includeusing namespace std; 2. 선언queue Queue; 3. 삽입값을 삽입한다. Queue.push(데이터); 4. 참조가장 먼저 추가된 데이터를 가져온다. 변수 = Queue.front(); 5. 삭제가장 먼저 추가된 데이터를 삭제한다.Queue.pop(); 6. 갯수큐가 가지는 항목의 수를 가져온다. 변수 = Queue.size(); 7. 확인큐가 비어 있는지 검사한다.false : 큐에 항목이 있음.true : 큐에 항목이 없음. #include queue Q //Q라는 이름의 int 요소들로 구성된 큐 선언Q.push(값) //큐 Q에 값을 넣는다. 리턴 값이 없다.Q.pop() //큐 Q의 front를 삭제한다. 리턴 값이 없다.Q.front() //큐 Q.. 더보기
[MFC] CString 문자열 파싱하기 오늘은 문자열 파싱에 대해서 간단히 정리한다.문자열 파싱이란 하나의 문자열에서 각각의 문자들을 분리하는 과정이라고 생각하면 된다.이 과정을 통해 긴 문자열에서 원하는 문자만 뽑아 임의의 변수로 저장하여 사용할 수 있다. 방법 1. AfxExtractSubString() 함수 이용AfxExtractSubString() 함수를 이용하여 간단하게 문자열을 분리할 수 있다.다음 예제를 살펴보자 예제 1)123456CString str = "118.131.90.22"; //파싱할 문자열CString strA, strB, strC, strD; //파싱되는 문자열을 담을 변수선언AfxExtractSubString(strA, str, 0, '.'); // strA == "118"AfxExtractSubString(st.. 더보기
CString to char 출처 : http://lowchen.tistory.com/288123456CString strTemp = "This is test.";char szTemp[256] = {0}; memcpy( szTemp, strTemp, strTemp.GetLength() ); memcpy( szTemp, strTemp.GetBuffer(0), strTemp.GetLength() );cs 위의 두 memcpy는 같은 동작을 수행한다. 더보기
[winapi] DC에 대해서...(GetDC / BeginPaint) ### DC (Device Context) ### ** DC란?cairo로 windows에 그림을 그릴때도 Windows DC가 필요하다.때문에 WinAPI의 DC에 대해서 알 필요가 있다. # 기초부터 짚고 넘어가보자Windows는 3개의 DLL(동적 연결 라이브러리)로 구성되어 있다. - KERNEL : 메모리 관리 및 프로그램 실행 - USER : 유저 인터페이스와 윈도우 관리 - GDI : 화면 처리와 그래픽 담당 Windows API 함수 대부분은 이 세가지 DLL에 의해 제공되는 것이다. 즉, Windows의 클라이언트 영역에 그리기를 하려면 이 GDI(Graphics Device Interface) 함수를 사용해야 한다.그리고 HDC는 'Handle to a Device Context' 로 .. 더보기
timeSetEvent 64bit 오류 출처 : https://social.msdn.microsoft.com/Forums/vstudio/en-US/1d3f07b8-eb79-4127-a170-cbda5570b244/compilation-error-while-calling-timesetevent-during-64-bit-code-generation-using-vc-2008?forum=vclanguage 32bit에서 사용하던 timeSetEvent 함수가 64bit환경으로 버전업 할 경우 다음과 같은 에러가 발생한다. My problem is I am getting a compilation error message from a call to function timeSetEvent() like Error 1 error C2664: 'timeSetE.. 더보기
MFC app MANIFEST for x64 including x86 COMCTL32.dll 출처 : https://msdn.microsoft.com/en-us/library/bb773175(VS.85).aspx 인터넷에서 받은 소켓 통신하는 MFC 프로그램(32bit)을 실행하였더니 정상적으로 실행이 되었다. x64로 플랫폼을 변경 후 정상 빌드는 됐지만 0xc000007b라는 에러코드를 발생하며 런타임 에러를 뿜어냈다. 3일 동안 정말 많은 검색을 하였고 150개 정도의 웹 페이지를 보았다. 그 중 한 사이트에서 아래와 같은 메시지를 볼 수 있었다. 하지만 MFC를 많이 개발해보지 않은 나로써는 무슨 말인지 정확히 알지 못하였다. 메시지 대로 Dependency Walker도 이미 실행해봤지만 COMCTL32.dll만 x86으로 dll을 로드하고 있었다.설명Project not explici.. 더보기
MFC 프로젝트 속성 > 구성 속성 출처 : http://blog.naver.com/chollikyo/10166698586 일반 입력 디렉터리 : 링커와 같은 도구에서 빌드 프로세스 중에 만들어진 모든 최종 출력 파일을 배치할 디렉터리를 지정 중간 디렉터리 : 컴파일러와 같은 같은 도구에서 빌드 프로세스 중에 만들어진 모든 중간 파일을 배치할 디렉터리를 지정 대상 이름 : 이 프로젝트가 생성하는 파일 이름을 지정 매크로설명$(SolutionDir)솔루션의 디렉터리(드라이브+경로). 이 경로에는 뒤에 \를 붙여야 함.$(Configuration)현재 프로젝트 구성의 이름(예: "Debug")$(ProjectName)프로젝트의 기본 이름.$(RemoteMachine)디버그 속성 페이지에서 Remote Machine 속성의 값으로 설정.$(Pl.. 더보기
런타임 라이브러리 (Run-time Libraries) 2. 런타임 라이브러리 (Run-time Libraries) 이 테이블은 Visual C++ 과 함께 제공되는 라이브러리와 Pre-Compiled Object 들의 기능에 대한 짧은 설명을 보여줍니다. ------------------------------------------------------------------------------런타임 라이브러리 (Run-time Libraries)------------------------------------------------------------------------------ 파일설명 Advapi32.lib 레지스트리나 보안 관련 API 같은 진보된 API 서비스 들에 대한 임포트 라이브러리 입니다. 이 임포트 라이브러리와 링크하는 것은 당신의 프로.. 더보기
CFile Class 출처 : http://jogook21.tistory.com/entry/CFile-Class CFile::modeRead 읽기모드 CFile::modeWrite 쓰기모드 CFile::modeCreate | CFILE::modeWrite 파일 생성후 쓰기 CFile::modeNoTruncate 파일 존재시 생성하지 않음 CFile::modeReadWrite 읽고 쓰기모드 CFile::typeBinary 바이너리타입 CFile::typeText 텍스트타입 CFile::modeCreate | CFile::modeReadWrite 기존파일 삭제 후 생성 CFile::modeReadWrite | CFile::modeNotruncate 기존파일 보존 후 읽고 쓰기 멤버함수의미CFile() Abort() Duplica.. 더보기
[C++] inet_addr, htons 함수 출처: http://yongho1037.tistory.com/516 [게임 서버 개발 노트] 우리가 흔히 쓰는 IP주소는 255.255.255.0 형태의 32bit 주소(IPv4)를 사용한다. 이것은 우리가 알아보기 쉬운 형태의 표기 방법이고winsock에서 IP 저장방식은 32bit unsigned long integer 타입이다.이 unsigned long integer의 구성은 '.'당 8bit씩 4개의 값을 왼쪽에서 오른쪽으로 배열한다.예를 들면 255.255.255.0은 0xFF.0xFF.0xFF.0이다.이를 왼쪽에서 오른쪽으로 배열하면 0xFFFFFF00이 된다.문자열 형태의 IP주소 값을 이렇게 unsigned long 타입의 값으로 변환해 주는 것이 inet_addr 함수 이다. 예제 소스.. 더보기
C2664 : CString Format 에러 대처법 출처 : http://blog.naver.com/melugi/80105665180 에러메시지MFC 환경을 유니코드로 설정했을때 나타나게 되는 메시지이다error C2664: 'void ATL::CStringT::Format(const wchar_t *,...)' : 매개 변수 1을(를) 'const char [11]'에서 'const wchar_t *'(으)로 변환할 수 없습니다. with [ BaseType=wchar_t, StringTraits=StrTraitMFC_DLL ] 가리킨 형식이 관련이 없습니다. 변환하려면 reinterpret_cast, C 스타일 캐스트 또는 함수 스타일 캐스트가 필요합니다. 대처법 기존의 코드CString str; str.Format("%c", ch); 다음과 같이 _.. 더보기
현재 시간 millisecond(밀리세컨드)까지 가져오기 출처 : http://albiones.tistory.com/entry/%ED%98%84%EC%9E%AC-%EC%8B%9C%EA%B0%84-miliseconde%EB%B0%80%EB%A6%AC%EC%84%B8%EC%BB%A8%EB%93%9C%EA%B9%8C%EC%A7%80-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0 현재 시간을 millisecond까지 가져오기 위해서는 다음과 같이 사용하면 된다. 12345SYSTEMTIME cur_time;GetLocalTime(&cur_time); CString strTime;strTime.Format("[%02d:%02d:%02d.%03d]",cur_time.wHour, cur_time.wMinute, cur_time.wSecond, cur_t.. 더보기
C++ string 정리 (C++ 문자열) 출처 : http://makerj.tistory.com/127 C++ string 정리 (C++ 문자열)C++11 환경에서 정리한 글입니다 또한 using namespace std를 한 상태임을 밝힙니다이 글을 통해 std::string을 간략하게 정리한다.C++ string 정리 (C++ 문자열)string 생성방법1방법2string 확장, 문자열 추가방법1: += 연산자 이용방법2: append() 멤버 함수 이용string 길이메모리 관련capacity()max_size()string의 특정 위치 문자 받기(charAt)string에 있는 특정 문자 탐색string간의 문자열 복사string간의 문자열 비교string의 문자열 대체하기 (replace기능)Immutable ReplaceMutable.. 더보기
VS2013 멀티바이트(MultiByte) 설정 사용하기 위한 준비단계 출처 : http://intra97.tistory.com/240 VS2013에서 MBCS(Multi-Byte Character Set)로 설정된 MFC 프로젝트를 컴파일하면 다음과 같은 에러 발생한다.error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See http://go.microsoft.com/fwlink/p/?LinkId=286820 for more information. C:\Program Files (x86)\MSBuild\Microsoft.Cp.. 더보기
CMake로 프로젝트 생성 후 프로젝트 INSTALL Error 출처 : http://egloos.zum.com/g0mug0mu/v/6146556 Error102error MSB3073: The command "setlocal"C:\Program Files (x86)\CMake\bin\cmake.exe" -DBUILD_TYPE=Debug -P cmake_install.cmakeif %errorlevel% neq 0 goto :cmEnd:cmEndendlocal & call :cmErrorLevel %errorlevel% & goto :cmDone:cmErrorLevelexit /b %1:cmDoneif %errorlevel% neq 0 goto :VCEnd:VCEnd" exited with code 1.C:\Program Files (x86)\MSBuild\Micro.. 더보기
CUDA driver version is insufficient for CUDA run time version CUDA를 사용하다보면 아래와 같은 오류가 발생하는 경우가 있다. CUDA driver version is insufficient for CUDA run time version 현재 PCL을 이용해서 CUDA를 사용하려고 하고 있는데 검색을 해보니 Tensorflow에서도 CUDA 사용 시 같은 에러가 발생하는 경우가 있다고 한다. 이 때의 해결 방법은 GeForce Experience를 이용하여 그래픽 카드 드라이버를 최신으로 업데이트해주면 해결된다. 더보기
RealTime Mesh ★ Phaser 3 ★ Alea GPU ★ Fast 2D GPU ★ Parallel-For ★ GPU Voxel 출처 : http://blog.daum.net/knightofelf/27553프로그램링커 도구 오류 LNK2019GitHub - michaelmarks/apitest: Simple comparison framework for APIs링커 도구 오류 LNK2001GLFW download | SourceForge.netGitHub - solocle/ChaiOS: ChaiOS: Chai Operating System. Multiplatform, visual studio (but adaptable to other compilers).GPU file function - Google 검색 Phaser - Learn - Phaser 3 Development: Development Log 5Visualization L.. 더보기
PCL 라이브러리과 VTK라이브러리의 Namespace detail이 겹칠 경우 PCL(Point Cloud Library)을 사용할 때detail: 애매모호한 형식입니다?라는 오류가 발생할 때가 있다. 이것때매 정말 많이 고생했는데.... PCL을 사용할 때 아래와 같이 헤더를 적어주면 된다. 12345678910111213141516171819202122232425262728293031323334353637383940414243/************************************************************************//* PCL Header *//************************************************************************/// PCL Header#include #include #incl.. 더보기
C++ 싱글톤 패턴 출처 : http://egloos.zum.com/Lansi/v/4165048 싱글톤 패턴이란 인스턴스 생성을 단 하나만 생성하도록 제한하는 패턴을 말합니다. 인스턴스를 하나밖에 생성을 못 한다면 클래스가 무용지물이 될 수 있다고 생각할 수도 있습니다. 싱글톤 패턴은 나름대로 사용해야 할 곳이 있고, 장점이 있기 때문에 많이 쓰이고 있습니다. 예를들어, 데이터 관리 클래스가 있다고 할 때 그 데이터를 여러 클래스에서 써야하는데 데이터를 모두 공용으로 써야할 때 쓰입니다. 원리는 포인터를 하나 선언해주고 포인터가 NULL일 때 정적으로 인스턴스를 한 번만 생성해줍니다. 그리고 그걸 포인터에 넣어놓고 리턴 해주는 겁니다. 그 리턴값으로 정적으로 생성된 단 하나의 인스턴스에 접근해 사용하는거죠. 중요한 점은 정.. 더보기