2025/02 9

멀티쓰레드 개론

멀티쓰레드가 필요한 경우는 그림판과 같은 간단한 프로그램의 실행의 이유보다는몇천명이 로그인하여 동시에 접속을 하고,패킷을 보내고 게임 로직도 실행하고데이터비트 저장도 하는 정말 할 일이 많은 이러한 경우가 이유가 될 것이다. 그림판과 같은 단순 프로그램은 단일 스레드가 맡는 것이 되려 적합할 수 있지만,아까 말했던 대규모 접속 게임과 같은 경우에는단일 스레드로만 처리하기에는 하나의 스레드가 너무 많은 일을 담당해야 한다.따라서 멀티 스레드라는 개념이 적합하다. 각각의 여러 개의 스레드가 각 로직을 담당하여 동시에 로직을 실행하는 것이다.그렇다고 해서 스레드를 여러 개 배치했다고 해서 항상 성능이 좋아지는 것은 아니다.앞서 말했다 싶이, 간단한 프로그램과 같은 경우에는오히려 스레드가 놀게 되어 성능이 저하..

2025년 목표

개발 공부1. 서버 강의 완강하기 (루키스)2. 유데미 서버연동 완강하기3. 전문가를 위한 C++ 완독하기4. 말버릇 고치기~해서 안될 거 같아요 -> 말씀하신 ~부분은 예외처리 하겠습니다.원래 그런 거 아닌가 하는 생각 보단, 말씀하신 부분은 알아본 뒤 수정하도록 하겠습니다.말 먼저 나오기.자기 계발1. 중국어 자격증 취득하기2. 건강 챙기기 규칙적인 생활하기 3. 마라톤 준비

카테고리 없음 2025.02.24

생성자

명시적으로 정의하는 복사 생성자C++에서의 복사 생성자는명시적으로 정의할 수 있다.명시적으로 정의하는 2가지 방식은default로 만드는 것과delete로 삭제하는 것이 있다.복사 생성자를 삭제하면더 이상 객체를 복제하지 않는다.객체를 값으로 전달하는 것을 방지하기 위하여이러한 삭제를 정의할 수 있다.만약 클래스의 데이터가 복사 생성자가 삭제되었다면,그 클래스의 복사 생성자도 자동으로 삭제된다.초기화 리스트 생성자초기화 리스트 생성자란,std::initilalizer_list를 첫 번째 매개변수로 받고,다른 매개변수는 없거나 디폴트 값을 가진 매개변수를추가로 받는 생성자를 말한다.위임 생성자(delegating Constructor)위임 생성자를 사용하면같은 클래스의 생성자끼리 호출할 수 있다.단, 생성..

2월 중순 지나며 앞으로 계획

2월부터 게임 업계에서 일하기 시작했다.이제 막 일 배우는 입장에서 더딘 부분이 많아 스스로가 답답하다. 그래서 다음과 같이 공부를 시작하고자 한다. 루키스 언리얼 PART 4 게임 서버와 반쯤 들었던 유데미 언리얼 멀티 서버 강의를다시 들으며이론적인 부분과 구현적인 부분을 둘 다 채워나가고자 한다. 지금 다니는 회사에서 서버도 어느정도 알아야 하는 것 같아서퇴근하고 조금씩이나마 들어두려고 한다 게임개발자가 되었으니 더 열심히 하자 :)! 시간이 걸리더라도 결과물 꼭 블로그에 올리기!

동적 메모리 다루기

메모리는 컴퓨터의 구성 요소에 속한다.C++에서는 동적 메모리를 사용자가 직접 관리해야 하므로크게메모리의 작동 과정,할당과 해제,메모리 할당에 실패한 경우이 3가지를 알아보자.메모리 작동 과정객체가 메모리에 할당 되는 방식을 머리 속에 자연스럽게그려지는 것 부터 시작해보자.네모 박스를 레이블이라 칭하고이 레이블은 메모리를 가리키는 일종의 변수의 이름이라 생각하자.이 레이블(상자)에 담긴 데이터는그 메모리에 현재 저장된 값이다.이제 객체가 메모리에 할당되는 과정을 떠올려 보았다.이러한 객체가 정적할당 되는 경우에는스택이라는 메모리 공간에 저장되어 컴파일 타임에생명주기가 결정이 된다.이러한 변수를 자동 변수라 하며스코프에 따라 자동으로 해제되므로 자동 변수라 한다.동적할당 되는 경우에는힙이라는 메모리 공간에..

IP(Internet Protocol) IPv4

IPv4 프레임의 데이터 필드에는 상위 계층에서 전달받거나상위 계층으로 전달해야 할 내용이 명시된다.따라서 IPv4 패킷은 프레임의 페이로드로 데이터 필드에 명시된다. IPv4 패킷은 다음과 같은 형식을 띈다. 1. 식별자 2. 플래그 3. 단편화 오프셋 4. TTL 5. 프로토콜 6. 송신지 IP 주소 7. 수신지 IP 주소 총 7개이다. 들어가기 앞서, 패킷이란?패킷(Packet)은 네트워크를 통해 전송되는 데이터의 형식화된 블록으로, 데이터 통신에서 사용되는 용어이다. 1. 식별자 식별자는 패킷에 할당된 번호이다.만일 메시지 전송 과정에서IPv4 패킷이 여러 조각으로 쪼개져서 전송되었다면,수신지에는 이들을 재조합해야 한다. 이때 잘게 쪼개져서 수신지에 도착한 IPv4 패킷들이 어떤 메시지에서쪼개졌..

필수 어법 이해하기 형용사

중국어에서 형용사의 역할 tip)형용사 + 地의 형태도 부사어가 될 수 있다.  1. 문장에서 술어 역할을 한다. 이 글은 복잡하다.这个文章  /       很       /   复杂。주어   부사어(정도 부사)   술어  2. 문장에서 的와 함께 쓰여 주어나 목적어를 수식하는 관형어 역할을 한다. 신선한 공기는 건강에 도움이 된다.新鲜的  / 空气  /  对身体  /  有  /  好处。관형어    주어      부사어     술어   목적어 관형어가 주어를 꾸며주고 있다.  3. 술어를 수식하는 부서어 역할을 한다. 그들은 중국어를 열심히 공부한다.他们    /   认真  /  学习  /  汉语。주어        부사어    술어   목적어  4. 문장에서 술어를 보충하는 보어 역할을 한다. 그는 잘생..

취미/HSK 2025.02.03

D3D11 조명 관련 노멀 벡터 변환

CPU에서 GPU로 데이터를 전송할 때는 비교적 속도가 느리니,최대한 단순하게 계산해서 접근할 수 있도록 하는 것이 좋다. 이러한 이론을 실제 코드로 구현하는 방법은여러 개의 변환을 순서만 잘 정리하면 하나의 변환 행렬로 만들 수 있다.따라서 결과적으로 GPU에게 회전과 이동을 한 하나의 변환 행렬만 보내면 된다. 이러한 변환에는Model Matrix, View Matrix, Projection Matrix가 같이 사용된다.위 3 가지는 나중에 추후 따로 더 자세하게 정리해보겠다. 이번 포스팅에서는 Model Matrix와 Invertranspose 두 가지를 사용해서쉐이더의 코드를 작성해볼 것이다.  노멀 벡터 노멀 벡터를 회전을 시킬 때는다른 방식을 사용해야 한다.물체를 회전을 시킨다면, 물체의 표면..

그래픽스/DX11 2025.02.03