• 안드로이드O 이상에서 백그라운드 메세지 수신 안될 때(Background start not_allowed_service_intent)

    GCM -> FCM 전환으로 인해서 푸쉬메세지 서버를 만들고 테스트 하는 도중 이상한점이 확인 되었다. 앱이 종료된 상태에서 푸쉬 메세지가 표시가 되지 않았다. 어떻게 된 영문인지 로그를 보니 Background start not_allowed_service_intent 메세지가 나타나는데 도데체 영문을 알 수 없었다. Firebase Console에서 보낸 테스트 메세지는 정상적으로 수신되고 있었기 때문이다. 결국 이리저리 확인해보니 백그라운드에서...


  • 윈도우에서 recv 함수 타임아웃 설정 시 주의 사항

    소켓에 타임아웃 옵션을 주기 위해서 SO_RCVTIMEO 를 지정하는데 유닉스에서는 timeval 구조체를 사용하지만 윈도우에서는 timeval 구조체의 tv_sec 가 초로 지정 되지 않는다. 아래와 같이 int 로 millisec 로 지정하자 tv.tv_sec= 10; // 대기시간 sec(대기시간은 늘릴 필요가 있음) tv.tv_usec = 0; // 대기시간 millisec dwTimeout = 10000; #if defined (WIN32) || defined(_WIN64)...


  • javascript 문자열 다중 라인으로 입력

    javascript 사용하다 보면 문자열을 입력할 때 다중 라인으로 입력 해 주고 싶을 때가 있다. 그럴 땐 \ (원표시) 를 끝에 붙여주면 간단히 사용 할 수 있다. var a = '처음 라인\ 그 다음 라인\ 그그 다음 라인'; 마지막에는 \ 를 붙여서는 안된다. " 를 표시 할 때는 \" 를 써야한다....


  • Mingw 설치 시 32 64 구분 및 설치 경로

    Mingw 설치 후 사용하려고 하면 32비트와 64비트를 잘 구분해줘야하는데 우선 Mingw 설치 시 부터 32비트인지 64비트인지 결정하게 되어 있다. 32비트의 경우 Program Files(x86) 안에 들어가 있고 64비트의 경우 Program Files 안에 설치가 된다. 사용하는 프로그램에서 해당 경로의 bin 을 path 로 잡고 사용해야 원하는 bit의 mingw 컴파일을 진행 할 수...


  • 안드로이드 USB 디버깅이 안될 때

    안드로이드 단말기를 USB로 연결해서 디버깅 하려고 할 때 어떻게 해도 연결이 안되는 경우가 있다. 이럴 경우에 USB 모드를 MTP에서 PTP로 변경하면 된다. 핸드폰 USB 연결 시마다 기본적으로 MTP로 연결되는 단말기들이 있으므로 그 때마다 변경하면 문제없이 디버깅을 진행 할 수 있다.