본문 바로가기

전체 글63

OSI 7계층이란? - 기초 설명 OSI 7계층 기본 개념 이해하기우리는 우체국에 가서 누군가에게 내용이 들어있는 편지봉투에 담아 편지를 보낼 수 있습니다. 하지만 요즘에는 주로 컴퓨터나 휴대폰을 통한 메신저를 이용하여 메시지를 주고 받거나,  메일 혹은 클라우드를 통한 데이터를 주고 받습니다. 그러면 한번 쯤은 이 과정이 어떻게 돌아가나 이해할 필요가 있다고 생각합니다. 그래서 컴퓨터네트워크의 기본 개념인 OSI 7계층을 알아보겠습니다. OSI 7계층이란?OSI 7 계층이란? 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 7계층으로 나누어 설명한 것입니다. 프로토콜: 메시지를 주고 받는 규칙을 정하는 통신 규약 입니다. 우리가 보통 웹 브라우저를 통해 인터넷을 사용하기 때문에 웹 브라우징을 지원하는.. 2024. 9. 10.
임베디드란(Embedded System)란? 임베디드란(Embedded System)란?내장형 시스템이라는 뜻이며, 다양한 사물에 전자기기를 내장한 형태를 임베디드 시스템이라고 한다.우리가 흔히 주변에서 볼 수 있는 횡단보도,신호등,지하철출입구(결제기기),냉장고,선풍기,에어콘,스마트폰,자동차 등등이 대표적인 예시라고 할 수 있다.임베디드 개발 방식임베디드 개발 방식은 보통 펌웨어 개발자가 컴퓨터로 프로그래밍을 해서 CPU의 비트가 다르기 때문에 크로스 컴파일후 임베디드 시스템에 적용되게 된다. 임베디드 시스템은 보통 다양한 시스템을 목적으로 두지 않고 특정한 기능만 수행하기 위해 만들어진다. 임베디드 시스템은 매우 제한된 리소스(자원)을 가지고 있기 때문에 성능 최적화 및 전력 효율성이 상당히 중요하다.임베디드 시스템에서는 다음과 같이 입력,처리,.. 2024. 9. 5.
컴퓨터 네트워크 1.네트워크 개념 컴퓨터 네트워크 - 네트워크 개념네트워크(Network) : 데이터 통신에서 가입자의 단말기를 공중 통신회선으로 연결하여 정보가 교환될 수 있는 통신환경네트워크구축(Networking) : 네트워크를 구축하는 방법이나 행위인터넷트워킹(Internetworking) : 전략적으로 정보화된 간접 자본들위에서 컴퓨터 시스템,소프트웨어 통신장비들을 연결, 네트워크와 네트워크를 연결하는 방법이나 절차 행위인터넷(Internet) 전세계의 컴퓨터 네트워크가 상호 연결된 복합 컴퓨터 네트워크 네트워킹 용어근거리 통신망(LAN; local-area network) :  근거리 통신망이며, 구내 망 구축에 사용될 수 있으며, IEEE 에서 다수의 독립적인 컴퓨터들이 상호간에 통신이 가능하도록 하는 데이터 시스템이라고 정.. 2024. 9. 4.
[API] GDI Object(Graphic Device interface) 란? GDI(Graphic Device interface) GDI는 화면, 프린터 등 모든 출력 장치를 제어하는 윈도우의 핵심 모듈 중 하나이다. 윈도우 프로그램에서의 모든 출력은 GDI를 통해서 화면과 프린터로 나가게 되어 있다. GDI Object란 그래픽 출력에 사용되는 도구들을 말하며 펜,브러쉬,비트맵,폰트 등 이 것을 모두 GDI 오브젝트라고 한다. GDI 오브젝트는 구조체이지만 핸들로 관리되므로 GDI 오브젝트를 생성하는 함수를 부르고 이 함수가 리턴하는 핸들을 받아서 사용하면 된다. 디폴트 값 GDI 오브젝트 핸들 타입 설명 디폴트 펜 HPEN 선을 그릴 때 사용 검정색의 가는 실선 브러쉬 HBRUSH 면을 채울 때 사용 흰색 폰트 HFONT 문자 출력에 사용 시스템 글꼴 비트맵 HBITMAP 비.. 2024. 3. 9.
[API] 문자열 출력 TextOut() & DrawText() Win32 API에서 문자열 출력을 하기 위해서는 아래의 함수를 사용한다. BOOL TextOut(HDC hdc,int nXStart,int nYStartm LPCTSTR lpString, int cbString); 첫 번째 인자는 DC의 핸들이고, 두 번째,세 번째 인자는 문자열이 출력될 X좌표,Y좌표이다. 윈도우의 작업영역 원점을 기준으로 한다. 네 번째 인자는 출력할 문자열을 담고 있는 문자열형 포인터이고 마지막 인자는 출력할 문자열의 길이이다. TextOut(hdc, 300, 10, str, _tcslen(str)); ReleaseDC(hwnd, hdc); 스켈레톤 코드에 추가하면 //0307 Textout.cpp #pragma comment (linker, "/subsystem:windows").. 2024. 3. 7.
[API] DC(Device Context) 란? DC(Device Context)란? DC란 출력에 필요한 모든 정보를 가지는 구조체이며 GDI 모듈에 의해 관리된다. 예를 들어 문자열의 폰트, 선의 색상과 굵기, 채움 무늬와 색상, 나중에 나오는 그리기 모드 등 출력에 필요한 정보를 DC(Device Context)라고 한다. 그전에도 윈도우의 핸들을 얻었듯이 윈도우를 만들고 그림을 그리려면 DC의 핸들이 필요하다. DC는 출력 장치에 출력을 할 때 사용하는 구조체라고 생각하면 된다. DC는 하나의 장치에 연결되어 있다. 사용자는 DC에 출력을 하면 DC 구조체 속 안에 있는 여러가지 속성에 의해서 DC가 연결되어 있는 장치에 출력된다. DC는 하나의 메시지를 처리하는 동안 핸들을 얻고 제거해야 한다. 즉 생성 -> 사용 -> 소멸의 과정이 반드시 .. 2024. 3. 6.
[API] 메시지 프로시저 호출하기 SendMessage & PostMessage SendMessage & PostMessage SendMessage : 비큐메시지 즉 프로시저를 직접 호출 한다. PostMessage : 큐메시지 메시지 큐에 메시지를 저장한다. 위 함수들을 이용해서 사용자 정의 메시지를 등록하고 사용할 수 있다. #include #include #define WM_MYMESSAGE WM_USER+100 LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch( msg ) { case WM_MYMESSAGE: { TCHAR buf[20]; wsprintf(buf, TEXT("%d+%d=%d"), wParam, lParam, wParam+lParam); MessageBox(h.. 2024. 3. 6.
[API] 메시지 큐에서 메시지 가져오기 메세지 루프에서 제일 중요한 함수는 메시지를 가져 오는 함수이다. GetMessage 함수는 가장 일반적인 방법이다. 스레드 메시지 큐에서 메시지를 가져오는데 메시지가 없으면 아무것도 리턴하지 않고 기다린다. 무한으로 대기 상태인 것이다. 유휴 시간을 활용하는 방법또한 존재한다. PeekMessage 함수를 이용하는 방법인데 PeekMessage 함수는 메시지큐에 메시지가 없어도 즉각 리턴해준다. BOOL PeekMessage(LPMSG lpMsg, HWND hwnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg) 리턴 값이 TRUE이면 메시지가 있다는 것이고 리턴 값이 FALSE이면 메시지가 없다는 것을 알 수 있다. 2024. 3. 6.