본문 바로가기

반응형

전체 글

(186)
C# 네트워크 프로그래밍 네트워크 모델 네트워크의 세부 기능들은 매우 복잡하고 다양하기 때문에, 이를 체계적으로 분류한 개념적인 모델을 만들었는데 이를 네트워크 모델이라 한다. 네트워크 모델 중 가장 대표적인 모델은 2가지인데, 전통적인 네트어크 모델인 OSI 7 Layer 모델과(최근의 네트워크는 거의 대부분은 TCP/IP를 기반으로 하고 있기 때문에) OSI Layer를 단순화한 TCP/IP 모델이 있다. 네트워크 모델은 각 Layer가 해야하는 역할을 구분하고 있는데, 비유하자면 상품을 주문받아 고객에게 발송하는데, 주문받는 사람 따로 있고, 주문 내용대로 박스에 넣는 사람 따로 있고, 고객 주소 레이블 붙이는 사람 따로 있고, 박스에 적힌 주소대로 배달만 하는 사람 따로 있는 것과 비슷한 구조이다. OSI 7 Layer ..
Virtual, Abstract, Interface Virtual(가상) abstract와는 다르게 본문을 정의할 수 있다. (비워 놓아도 됨) 파생 클래스에서 재정의 할 수 있다. 자식 클래스에서는 new 또는 override 키워드 사용이 가능하다. override는 재정의 또는 확장의 의미 new는 기본 클래스를 숨긴다는 의미 base. 키워드를 통해 부모 클래스의 함수 호출이 가능하다. private, static 등 접근 한정자는 사용할 수 없다. public class Parent { public virtual void func1() { } } public class Child : Parent { public override void func1() { base.func1(); Console.WriteLine("재정의"); } } Abstract..
WndProc으로 Windows Message 제어하기 Windows Message 여기서 말하는 Message는 MessageBox에 출력되는 문자열이 아니다. Message는 Windows 안에서 이용되는 구조체이다. Windows는 그 안에 값들을 담아서 자신이 제어할 대상에 보낸다. 예를 들어 윈도우즈를 이용하는 사람이 메모장을 실행한 상태에서 키보드의 키를 누르면 윈도우즈는 이 키에 대한 여러 값들 즉 어떤 문자에 해당하는 키인지 키를 누른 건지 뗀 건지 등을 넣어서 메모장의 편집 영역으로 보낸다. Windows로 메시지를 보낼 땐 SendMessage와 PostMessage 함수를 쓴다. 이것들은 win32 api에 들어있다. 전자는 메시지를 윈도우즈로 보내는 거다. 처리가 오래 걸리면 프로시저가 멈추지만 이를 감수하고라도 바로 처리해야 할 때 쓴..
윈도우 프로그래밍 동작 방식 구성 요소 메세지(Message) 메세지 큐(Message Queue) 메세지 루프(Message Loop) 윈도우 프로시저(Windows Procedure) 메시지(Message) 메시지는 윈도우에 발생하는 모든 이벤트(사건)을 의미합니다. 키보드로 입력하고, 마우스로 클릭하는 것 뿐만 아니라, 마우스가 이동하는 등의 사소한 이벤트들을 모두 메시지로 관리합니다. 윈도우 내에서 발생하는 대부분의 이벤트들은 이미 미리 정의가 되어 있습니다. 그렇다면 개발자들이 이런 사소한 이벤트들을 모두 코드로 관리해야할까요? 당연히 그렇지 않습니다. 각 윈도우에 어떤 사건이 발생하는지 지속적으로 확인하고 메시지로 만들어서 처리하는 것은 모두 운영체제의 역할입니다. 윈도우 내에 어떤 사건이 발생하면 운영체제는 메시지를 만..
어느 환경에서 파이썬을 시작해야 할까? Linux vs Windows Windows의 장점은 친숙함이다. Windows의 GUI(Graphical User Interface)는 컴퓨터에 대한 깊은 지식없이 컴퓨터와 소프트웨어를 쉽게 활용할 수 있게 한다. 보통 인터넷이나 문서 작업 등 일상적인 생활을 Windows에서 처리하기 때문이다. Linux의 장점은 프로그래머에게 직관적이라는 점이다. Linux의 CLI(Command Line Interface)는 명령어 기반으로 파일 관리나 파이프, 리다이렉션, 이미 개발된 응용프로그램 등 개발자가 익숙해지면 효율적인 것이 많다. 그리고 가성비가 좋다. Microsoft의 Windows는 라이센스 비용이 Linux에 비해 비싼 편이다. 여러 사용자가 하나의 시스템을 사용하기에도 좋다. [출처] htt..
Win32 API에서 제공하는 자료형 개요 우리가 C, Python 등 평소에 자주 사용하는 프로그래밍 언어에서 쓰이는 int, double과 같은 자료형을 사용하면 변수가 어떤 의미를 갖고 있는지 파악하기 어렵다. 때문에 Windows API는 자료형을 특정한 이름으로 재정의해서 변수의 자료형을 보고 어떤 특성이 있는지 한눈에 알아볼 수 있도록 제공하고 있다. 자료형 이름 의미 BOOL Boolean (True 혹은 False) LPSTR 문자열을 위한 32bit 포인터 UNIT 16bit unsigned int (Win32는 32bit) WORD 16bit unsigned int DWORD 32bit unsigned int / 세그먼트의 주소 혹은 offset LONG 32bit unsigned int WPARAM 16bit(Win32는..
마이그레이션, 포팅, 컨버팅 마이그레이션(Migration) 일반적으로 더 나은 운영 체계로 나아가는 과정을 뜻한다. 마이그레이션의 핵심은 이전 운영체제에서 설정해둔 프로그램 내용을 변경하지 않고 다른 응용프로그램에서 활용할 수 있게 하는 것이다. 아래는 예시 기존에 사용하던 윈도우를 더 높은 단계의 윈도우 버전으로 옮겨가는 과정 기업에서 도입한 새로운 하드웨어와 소프트웨어 중 하나 또는 둘 다 바뀌는 환경으로 이주하는 과정 데이터를 다른 저장 장치로 옮기는 과정 마이그레이션의 핵심은 이전 운영 포팅(Porting) 컴퓨터 용어로 '이식'이란 뜻을 갖고 있으며, 소프트웨어를 원래 설계된 컴퓨팅 환경이 아닌 각기 다른 환경에서도 작동할 수 있도록 해당 환경에 맞춰주는 작업을 뜻한다. 소프트웨어를 다른 기종의 컴퓨터로 또는 프로그램으로..
Win64 API가 있나요? Q. If I'm correct, Win32 is adapting or has been adapted to cope with 64 bit windows, for example, GetWindowLongPtr on 64 bit as opposed to GetWindowLong on 32 bit. Will there be a Win64 Api, and if so, is there any indication on when the transition will happen? I'm not very knowledgeable on this subject so I apologize if I have anything obvious wrong. Thanks in advance, ell. A. This transition ..

반응형