
서론 > 유니티로 게임 개발을 하던 나는 문득 게임 개발자의 채용 공고를 살펴보게 되었다. 규모가 큰 대기업에서는 주로 언리얼을 이용한 프로젝트가 많았고 그에 따라 채용도 언리얼과 C++위주로 이루어져 있었다. 그래서 어차피 유니티는 어느정도 자신이 있었기 때문에 양대

상속이 아니라 멤버 변수에 포함을 시켜서 (Part-on) 클래스를 종속시키는 방법이다.생명주기를 포함하기 때문에 두 클래스의 생명주기가 일치한다는 특징이 있다.이렇게 보면 MonsterA가 Character이랑 Monster를 상속받지 않고 가지고 있는걸 확인할 수

스마트 포인터는 delete를 자동으로 해주는 보다 똑똑한 포인터를 의미한다. smart_ptr을 사용하면 new/delete를 직접 사용하지 않아도 동적 메모리를 안전하게 관리할 수 있다. (고맙다...)smart_ptr은 실제로는 클래스고 내부에 포인터를 가지고 있

Race Condition > 서로 다른 Thread에서 같은 메모리를 공유할 때 같은 자원을 사용하면서 값이 이상하게 되는 것을 race condition이라고 한다. 시작하기에 앞서 모든 STL들은 기본적으로 멀티스레드 환경을 제공하지 않는다고 알아야 한다. 같은

promise, future은 thread 간 단방향 전달 도구이다. 쉽게 말해 promise는 "값을 약속" 하고, future은 "값을 받는"역할을 수행한다.data.wait()은 worker의 set_value를 기다리게 된다. -> promise에 값을 전달하기

Thread >원래 C++에서는 윈도우용 리눅스용 스레드를 만드는 방식이 따로 나누어져 있었지만 최근 업데이트 되면서 c++ 자체에서 thread라이브러리를 제공하게 되었다. thread를 생성하는 방법은 그냥 thread객체를 생성하는 거 처럼 만들면 된다. 그리고

Thread Pool > 쓰레드 풀은 쓰레드의 작업 대기소 개념이다. 여러 Thread가 대기를 하고 있고 작업을 넣어주면 알아서 스레드중 하나가 받아서 처리하고 다시 대기상태로 돌아오는 것이다. 이는 쉽게 queue를 이용하는 것이고 producer-consumer

논블로킹 소켓 Overlapped I/O epoll IOCP (I/O Completion Port) TCP 클라이언트 TCP통신은 이러한 흐름으로 연결이 진행된다. Socket을 생성한다. 로컬 포트를 bind(연결)한다. connect()를 해서 서버와 연결을

본격적인 IOCP 구현을 하기 전에 window에서 소켓과 관련된 여러 라이브러리가 존재한다. 이러한 헤더파일의 타입 객체가 무엇을 뜻하고 어떻게 활용되는지 알아야 수준 높은 서버를 구축할 수 있다.Windows.h 라이브러리는 윈도우의 많은 기능을 수행할 수 있다.

서론 > c++을 사용해 코딩을 하다보면 캐스팅을 참 다양한 방법으로 한다는 사실을 알 수 있다. 그동안 c#을 사용할때는 타입 안정성을 알아서 해줘서 몰랐는데 c++은 유연하기 때문에 어떤 캐스팅을 쓰는지 중요한 것이다. Casting > 캐스팅을 특정 타입을 다른