Best click
-
Android(11)_Python Server & Android Client Thread 우선 통신, 소켓 등에 대해 자세히 설명하자면 너무 길어지기 때문에 예제 위주로 기초적인 TCP 통신을 설명하고자 합니다. 서버-클라이언트 TCP 소켓 통신을 할 때 이 네트워크에서 디바이스와 디바이스가 어떻게 정보를 주고받는지에 대해 감이 안올 수 있기 때문에 다음 그림으로 설명할게요! 우선 Client가 Server의 위치를 어떻게 알고 가느냐? Server의 IP주소와 이 Server와 Client를 연결시킬 포트번호를 이용해서 찾아갑니다. 예를들어 IP주소는 집주소와 같습니다. 세상에서 하나밖에 없는 주소로, Client가 전 세계에 연결되어있는 네트워크에서 내가 원하는 서버를 찾기 위해서는 이 IP 주소를 이용해서 찾을 수 있습니다. 근데 여기서 포트번호는 왜 필요할까? 우리가 그럼 Naver의.. -
Android(7)_Push ■ Push Service 안드로이드 디바이스를 사용하다보면 앱의 업데이트가 있다는 메세지를 종종 보게 됩니다. 단말의 위쪽 부분에 보이는 상태바에 메세지가 표시되는데, 사용자가 직접 앱을 실행하지 않아도 이러한 알림을 자동으로 어떻게 받는 것일까요?? 안드로이드 push는 이런 앱 알람을 말하는 것입니다. 앱(어플 관리자)에서 단말로 보내는 알림 메세지를 받는 기능을 의미합니다. 앱에서 단말로 보내는 메세지는 앱 관리자가 보내는 메세지 (앱 업데이트 알림) 일 수도 있고 금융권 앱같은 경우에는 금융상품 홍보를 위한 알림 메세지일 수도 있고 애니팡같은 게임에서 하트가 가득 찼다고 보내는 알림 메세지도 모두 push 기능을 이용한 알림메세지 입니다. 그렇다면 이렇게 단말오 알림 메세지를 보내는 기술적인 방.. -
[TIFF란?] TIFF 이미지 형식과 Libtiff 라이브러리 TIFF 가 뭔가요? 호환성이 뛰어나 매킨토시와 IBM PC에서 공통으로 사용할 수 있는 최초의 파일 포맷. RGB 및 CMYK 이미지를 24비트까지 지원하며 이미지 손상이 없는 LZW(Lempelziv welch)라는 압축 방식을 채택하고 있다. LZW 압축은 이미지의 질을 손상시키지 않는 '무손실 압축'으로 가장 좋은 압축률을 보인다. 포토숍 이미지를 이 포맷으로 저장을 하게 되면, 매킨토시에서 사용할 것인지 또는 IBM PC 호환 기종에서 읽어 들일 것인지를 선택해야 한다. [네이버 지식백과] TIFF [tagged image file format] LibTiff 이 TIFF 관련해서 http://www.libtiff.org/ 홈페이지에서 TIFF 파일을 생성하거나 TIFF 확장자 정보를 얻거나 하..
-
(2) MFC 초기화 함수 : InitInstance, OnInitDialog CMFCApplication1App::InitInstance 함수 InitInstance 함수는 이 프로세스의 초기화 함수 입니다. CMFCApplication1App이 상속받고 있는 CWinApp의 InitInstance 함수를 호출합니다. 이 프로세스의 초기화 루틴에서 해야할 동작들은 CWinApp의 InitInstance 함수에 이 프로세스의 초기화 루틴들이 이미 있어요. 내가 만드는 프로그램은 이 함수를 호출해주기만 하면 됩니다. 그리고나서 InitInstance 함수 밑에보시면 CMFCApplication1Dlg 의 인스턴스를 생성해서 아직까지 뭔지는 몰라도 DoModal이라는 함수를 호출해주고 있죠. 이 프로세스에서 윈도우를 생성해주는 부분이라고 생각하시면 됩니다. CMFCApplication..
MFC (Windows library)
-
[다이얼로그 배경색 지우기] OnEraseBkgnd 와 OnCtlColor 2020.08.08
-
(2) MFC 초기화 함수 : InitInstance, OnInitDialog 2020.08.08
-
(1) MFC 시작하기 2020.08.08
Basic Modern C++
- C++ 11 : default, delete 키워드 default 컴파일러가 함수를 자동으로 생성하도록 명시적으로 지정 delete 컴파일러가 함수를 자동으로 생성하지 않도록 명시적으로 지정 class TEST { public: TEST() = default; TEST(const TEST&) = default; ~TEST() = default; TEST & operator=(const TEST) = delete; void* operator new(size_t) = delete; // new로 할당하지 못하게 방지 }; Q. 멤버 변수를 기본 타입이 아닌 사용자가 정의한 클래스 타입으로 멤버변수를 갖고있는 클래스이면 위에 처럼 TEST( const TEST& ) = default; 로 선언해도 깊은 복사가 이루어질까? 안될거같은데? 2020.08.08
- C++ 11 : 지연 평가 컴퓨터 프로그래밍에서 느긋한 계산법(Lazy evaluation)은 계산의 결과값이 필요할 때까지 계산을 늦추는 기법이다. (개념적인 부분) 느긋하게 계산하면 필요없는 계산을 하지 않으므로 실행을 더 빠르게 할 수 있고, 복합 수식을 계산할 때 오류 상태를 피할 수 있고, 무한 자료 구조를 쓸 수 있고, 미리 정의된 것을 이용하지 않고 보통 함수로 제어 구조를 정의할 수 있다. 이렇게 얘기하면 무슨말인지 와닿지 않을 것이다. 앞에 얘기는 다 까먹고 그냥 새롭게 얘기를 해보자. Effective C++ 에서는 '변수 정의는 최대한 늦출 수 있을때까지 늦춰라' 라는 말이 있는데, 보통 우리는 변수 선언은 함수의 최상단에 몰아놓는 경향이 있다. 코드의 가독성 때문이기도 하는데, ( 내 생각엔 학교에서 프로그래.. 2020.08.08
- C++ 11 : 일급 함수 (1)다른 함수의 매개변수로 함수 전달 std::function 은 호출 가능한 함수, 람다 표현식, 또는 다른 함수 객체, 멤버 함수에 대한 포인터, 멤버 변수에 대한 포인터 등을 저장, 복사, 호출할 때 사용한다. typedef 키워드는 다른 타입이나 함수에 대한 별칭을 정의할 때 사용한다. // ConsoleApplication1.cpp : 이 파일에는 'main' 함수가 포함됩니다. 거기서 프로그램 실행이 시작되고 종료됩니다. // #include "pch.h" #include #include #include #include // 0) return x / y; else return -1; } /* 함수 포인터를 매개변수로 받는 함수 정의 */ void PassingFunc(FuncType fn, int x, int y) { cout 2020.08.08