반응형 전체 글76 [winAPI 03] Core class & Singleton 코어(Core)는 말그대로 중심이라는 의미로 주요한 기능을 제공하고 전반적인 프로그램 구조를 정의하며 싱글톤(singleton)은 클래스의 인스턴스가 단 하나만 생성되도록 보장하는 소프트웨어 패턴이다. 우리가 프로그램을 만들 때 코어 클래스의 객체가 중심이 될 것이기에 이 객체는 여러 개일 수가 없어 싱글톤 패턴으로 구현하고자 한다. - Core class ( 동적할당 Heap 영역 사용 ) // Core.h class Core { private: static Core* pInst; Core(); ~Core(); public: static Core* Instance() { if (pInst == nullptr) { return new Core; } return pInst; } static void Rel.. 2024. 4. 8. [winAPI 02] 마우스로 사각형 그리기 & 게임 메세지 처리 구조 * 물체가 많이 존재한다면? 물체 마다 정보가 존재해야 하며 항상 동일하다고 생각할 수 없고, 조금만 움직여도 전체를 다시 그려야 할까? 게임은 '렌더링' 이라는 것이 존재한다. 여기서 렌더링은 그리고 그리는 반복의 연속이라 생각하자. 흔히 프레임이라고 알고 있는 개념 맞음 ( 1초에 60번을 그리는 게 기본 ) → 즉 얼마나 깔끔하게 그려주는 가가 관건이 됨 아래의 예제를 보자 - 마우스로 사각형 그리기 #include using std::vector; struct tObjInfo { POINT objPos; POINT objScale; }; vector vecInfo; POINT ptLT; POINT ptRB; bool act = false; // WndProc case WM_PAINT: { PAIN.. 2024. 4. 8. [🌸일돌일] 4월 1주차 시험 기간만 되면 쓰고 싶은 심리는 어쩔 수 없는가 봄 ..ㅎㅎ 시험 공부하기 싫어잉 😵 사실 개인적으로 다이어리에 매일 일기를 적고 있으니 블로그에 어떤 용도로 올려야 할지 고민했음 결론은 앞으로 일요일마다 돌아오는 일기를 적기로,, 사진과 함께 추억으로 남길 수 있다는 것에 의의를 두기로 이번 주는 오랜만에 쓰는 거니 개강하고 있던 일 다 합쳐서 써야겠다 이번에 1년 좀 넘게 근로 했던 곳에서 새로운 근로로 바꿨다 교내인 줄 알고 했는데 알고 보니 교외였는데 벌써 일 한지 한 달 되어간다.. 그래도 나름 적응했다 아직 해 본 일이 많지 않은데 어쨌거나 담당 선생님이 무척 친절하시다✨ 개강하고 보니 기숙사 2층 공간이 바뀌어 있었는데 평소에 콘센트 없어서 애먹었던 것 생각하면 너무 좋다 최근에는 가장 .. 2024. 4. 7. [winAPI 01] Handle, DC, Window Event & 사각형 그리기 VS - Windows desktop application → 빈프로젝트 - 기본 구조에 대한 설명 기본적으로 프로그램이 진행됨에 따라 메세지를 발생하는데 메세지 큐로 이동되어 하나씩 처리된다. 윈도우 생성: 윈도우를 생성 시 화면에 표시(윈도우의 속성(크기, 위치...등을 지정) 메시지 루프: 윈도우가 생성 후 해당 윈도우에 대한 메시지 루프 시작 (사용자 입력이나 시스템 이벤트 등의 메시지를 대기하고 처리하는 역할) 메시지 처리: 사용자의 입력(마우스, 키보드 등)이나 시스템 이벤트(윈도우 크기 변경, 최소화 등)는 메시지의 형태로 윈도우에 전달 (메시지 루프는 이 메시지를 큐에서 하나씩 꺼내어 적절한 처리 함수(윈도우 프로시저)로 전달) 윈도우 프로시저: 메시지를 받아서 적절한 처리를 수행함 // .. 2024. 4. 3. [멀티코어CPU] 05. 하이퍼스레딩 / 칩 멀티 프로세서 정내훈 교수님이 추천한 책 「 프로그래머가 몰랐던 멀티코어 CPU 이야기」 - 김민장 지음 위의 책을 토대로 공부한 내용이 작성되었음 - 하이퍼스레딩 : 하나의 물리 프로세서가 두 개의 논리 프로세서로 보이게 하는 기술 : 슈퍼스칼라 프로세서에서 독립적인 두 쓰레드로부터 명령어를 가져와 파이프 라인에 넣는 기술 : 문맥교환(context switching) → 한 쓰레드가 프로세스를 이용했다면 운영체제는 이 쓰레드에서 프로세서를 빼앗아 다른 쓰레드에 줌, 이전 문맥을 저장하는 단계에서 비용이 발생함 : 원리 → 쓰레드 문맥을 하드웨어 수준에서 복제함. 명령어 수준 병렬성(ILP)보다 단위가 큰 쓰레드 수준 병렬성(TLP) 활용 - 멀티스레딩 구현 1) 미세 단위 멀티스레딩(Fine-Grained) : O.. 2024. 4. 3. [03주차] 네트워킹 - 1 한국공학대학교 정내훈 교수님 4-1 게임 서버 프로그래밍 수업 중 일부입니다. - 네트워크 프로그래밍 (소켓 프로그래밍) : 프로세스들끼리 네트워크를 통해 데이터를 주고 받는 프로그래밍 : 파일 I/O와 거의 비슷한 양상 → Open, Close, Read, Write : 네트워크 I/O → Connect(Accept), Close(CloseSocket0, Recv, Send, 버퍼를 통해 데이터를 주고 받으며, 파일 이름 대신 Socket이라는 단어 사용 : 차이점은 → 파일 이름 대신 네트워크 주소 사용, 서버의 경우 어느 주소에서 연결 요청 올지 알 수 없는 경우가 多 : Recv 호출 후 많이 기다리는 경우가 많으며 버퍼가 다 채워지지 않는 경우가 多 - 4계층 : 인터넷은 4개의 레이어로 구현 .. 2024. 4. 1. [멀티코어CPU] 04. 명령어 파이프라인 & 비순차 실행 정내훈 교수님이 추천한 책 「 프로그래머가 몰랐던 멀티코어 CPU 이야기」 - 김민장 지음 위의 책을 토대로 공부한 내용이 작성되었음 - 파이프라인(pipeline) : 작업을 여러 개로 나누고 세부 단계가 서로 동시에 실행할 수 있음 : 연속으로 주어지는 작업을 처리하는 데 있어 처리율을 높이는 일반적인 알고리즘 (레이턴시 개선 X) : 핵심 → 재사용 / 병렬 실행 : 이상적인 처리율 증가는 파이프 라인 단계 수만큼 임 → 아래의 4가지 조건을 만족해야 함 1) 균등한 파이프 라인 단계 (각 단계는 균등한 길이로 나뉨) 2) 같은 작업 (항상 같은 작업만 수행함) 3) 독립적인 작업 (투입되는 작업은 서로 의존 관계 X) 4) 파이프 라인 유지 비용 최소화 (최적의 파이프 라인 깊이 찾아야 함) : .. 2024. 3. 31. [멀티코어CPU] 03. 의존성과 프로세서 기본 동작 정내훈 교수님이 추천한 책 「 프로그래머가 몰랐던 멀티코어 CPU 이야기」 - 김민장 지음 위의 책을 토대로 공부한 내용이 작성되었음 - 데이터 의존성 (Data dependence) : 명령어들 사이의 데이터 흐름, 프로그램의 문맥을 결정하는 중요 요소 : 의존성이 있는 명령어 → 순서대로 실행되어야 함 : 읽기/쓰기 순서에 따라 분류됨 // RAW 의존성 x = y + 1; z = x * 2; // 변수 x는 1번 명령이 계산 결과를 만들고 2번 명령이 이를 사용함 // 변수 x에 Read - After - Write 의존성이 존재 // WAR 의존성 z = x * 2; x = y + 1; // 변수 x에 Write - After - Read 의존성이 존재 // WAW 의존성 x = Z * 2; x .. 2024. 3. 29. [07] 파일 시스템 - 파일 (File) : 보조 기억 장치에 저장된 관련 있는 정보의 집합 : 파일 실행 정보 + 파일 관련 부가 정보 (속성/메타 데이터)가 존재 - 파일 속성 1) 유형 : OS가 인지하는 파일의 종류 2) 크기 : 파일의 현재 크기와 허용 가능 최대 크기 3) 보호 : 어떤 사용자가 해당 파일을 읽고, 쓰고, 실행할 수 있는지 4) 생성 날짜 : 파일이 생성된 날짜 5) 마지막 접근 날짜 : 파일에 마지막으로 접근한 날짜 6) 마지막 수정 날짜 : 파일이 마지막으로 수정된 날짜 7) 생성자 : 파일 생성 사용자 8) 소유자 : 파일 소유 사용자 9) 위치 : 파일의 보조기억장치상 현재 위치 - 파일 유형 : 파일 뒤에 확장자를 통해 표현 1) 실행 파일 : 없는 경우, exe, com, bin 2) .. 2024. 3. 29. 이전 1 ··· 3 4 5 6 7 8 9 다음 728x90 반응형