전체 글 101

[자료구조] map/unordered_map

순서map이란?map의 특unordered_map이란?map과 unordered_map의차이점해싱해시충돌map이란?레드 블랙 트리 또는 이진 탐색 트리 기반으로 데이터를 저장하는 컨테이너 자료구조pair로 이루어진 컨테이너로 key를 기준으로 오름차순 정렬된 상태임map의 특징key와 value 쌍으로 이루어진 트리로 중복을 허용하지 않음.first, second가 pair 객체로 저장되며 first는 key second는 value로 저장됨시간 복잡도는 O(log n)이다.unordered_map이란?해시 테이블을 기반으로 데이터를 저장하는 컨테이너 자료구조정렬되지 않은 상태로 데이터를 저장하며, 데이터를 삽입한 순서와 다를 수 있음.중복된 키를 허용하지 않음시간 복잡도는 O(1)이다.map과 unor..

CS/자료구조 2025.09.12

[UE]Pawn/Character

순서Pawn이란?Chacracter란?Pawn과 Character의 차이Pawn란?플레이어 또는 AI가 Possess하여 제어 가능한 상위 클래스엔진에서 무언가를 조종한다고 할 때 기본이 되는 형태이동 로직이나 충돌 처리, 중력, 네트워크 이동을 위한 기능들이 포함되어 있지는 않음비행기, 드론 등의 보통 Character의 이동 방식이 아닌 특수한 로직을 자유롭게 구현할 때 유용함Character란?Pawn을 확장한 보행 특화 클래스로 캡슐 충돌체, 스켈레탈 메시, CharacterMovementComponet 등 보행용 기능이 기본 제공됨이동, 회전, 점프, 중력, 지형 따라가기, 네트워크 동기화 등 보행형 캐릭터에게 필요한 기능이 이미 구현되어 있어, 사람이 달리거나 점프하는 등의 형태의 캐릭터를 쉽..

Unreal Engine 2025.09.11

[CS] RVO

순서RVO란?RVO의 작동방식RVO의 이점NRVORVO란?C++같은 프로그래밍 언어에서 함수가 객체를 반환할 때 발생하는 불필요한 복사 생성자 또는 이동 생성자 호출 작업을 제거하는 컴파일러 최적화 기법임.리턴할 객체를 호출자의 메모리 공간에 직접 생성해버리는 방식.RVO의 작동방식임시 객체 생성 및 복사/이동 생략컴파일러 최적화RVO의 이점성능 향상: 객체 복사 및 이동은 비용이 많이 드는 작업일 수 있는데, RVO는 이러한 작업을 생략하여 프로그램 실행 속도를 높임코드의 투명성: 개발자는 RVO를 직접 구현할 필요 없이 컴파일러에게 맡길 수 있어, 효율적인 코드를 작성하는데 집중할 수 있NRVONamed Return Value Optimization으로 함수 내에서 이름을 가진 지역 객체를 반환할 때..

CS 2025.09.05

[UE]RPC

순서RPC란?RPC의 용도RPC의 종류서버로 RPC를 보내기 위한 조건RPC(Remote Procedudre Call) 란?원격 프로시저 호출을 말하며 호출하는 PC와 실행하는 PC가 달라도 되게끔 해주는 통신 기법이라고 할 수 있음.언리얼 엔진에서 게임 클라이언트와 서버 간에 정보를 주고받고, 특정 행동을 요청하거나 수행하기 위한 핵심적인 네트워킹 메커니즘으로 사용되거나 서버에서 함수를 호출하거나 클라이언트에서 함수를 호출하는 등 다양한 방식으로 사용됨.RPC의 용도모든 클라이언트에게 일괄적으로 메시지를 전달하거나 네트워크 기반의 액션과 동기화함.게임에 큰 영향을 끼치지 않는 일시적인 효과들에 사용하는 편으로 주로 코스메틱(사운드, 파티클)에 사용됨큰 영향을 끼치는 것들은 프로퍼티 레플리케이션을 사용..

Unreal Engine 2025.09.04

[UE] 언리얼 네트워크 롤

순서네트워크 롤이란?네트워크 롤의 종류네트워크 롤의 속성액터에 따른 롤의 특징네트워크 롤이 중요한 이유네트워크 롤이란?액터의 네트워크 소유권 및 역할을 나타내는 중요한 속성으로, 서버와 클라이언트 간의 데이터 처리 및 권한을 정의함.서버에 스폰 된 액터가 가진 NetRole 속성 값은 언제나 Authority로 서버에 스폰 된 액터에서 수행될 로직은 권한을 가지고 있다는 뜻임.반대로 NetRole이 Authority인 액터가 클라이언트로 복제되었을 때, 클라이언트에 복제된 액터의 NetRole 속성 값은 Proxy네트워크 롤의 종류None: 액터가 존재하지 않음 => 서버에서 스폰 되고 레플리케이션 되지 않는 액터. 클라이언트에서 스폰 된 액터Authority: 게임에 중대한 영향을 끼칠 수 있는 로직 ..

Unreal Engine 2025.09.03

[UE]네트워크 넷 모드

순서네트워크 넷 모드란?주요 넷 모드넷 모드 설정이 중요한 이유네트워크 넷 모드란?플레이어들이 네트워크 환경에서 어떻게 접속하고 게임을 실행할지를 결정하는 설정멀티 게임의 네트워크 아키텍처를 구성하는 핵심 요소로, 서버-클라이언트 관계와 연결을 제어하여 통신을 관리함.리슨서버나 클라이언트모드 등 다양한 모드가 있으며, 월드 속성 중 하나인 NetMode를 통해 설정됨.주요 넷 모드Dedicated Server: 전용 서버 모드로 게임 호스트 역할을 하는 플레이어가 없어도 서버가 게임의 모든 로직을 처리하여 공정한 환경을 제공하며, 대규모 멀티플레이어 게임이나 배틀로얄 장르에 주로 사용됨.Listen Server: 하나의 플레이어가 서버 역할과 클라이언트 역할을 동시에 수행하는 방식Client: 서버에 접..

Unreal Engine 2025.09.03

[CS] TCP/UDP

순서TCP란?TCP의 특징TCP의 장단점UDP란?UDP의 특징UDP의 장단TCP와 UDP의 차이IPICMP 프로토콜ARP 프로토콜ACKUE에서의 UDPTCP란?서버와 클라이언트간에 데이터를 신뢰성 있게 전달할 수 있도록 하는 프로토콜두 호스트 간의 연결을 설정하고, 데이터 패킷이 손실 없이 올바른 순서대로 전달되도록 보장하며, 네트워크의 혼잡을 제어하는 등 다양한 기능을 수행하여 인터넷 통신의 핵심적인 역할을 함TCP의 특징연결지향: 통신을 시작하기 전에 3-way handshake를 통해 연결을 수립신뢰성 보장: 전송한 데이터가 도착했는지 확인, 손실된 패킷 재전송, 순서 보장순서 보장: 데이터가 바이트 스트림으로 전달됨, 패킷 단위가 아닌 연속된 데이터 흐름으로 처리됨흐름 제어: 송신 속도를 조절하여..

CS 2025.09.03

[C++] 매크로 함수와 inline키워드

순서매크로 함수란?매크로 함수의 장단점inline 키워드란?inline 키워드의 장단점매크로 함수와 inline 키워드의 차이매크로 함수란?전처리기 지시문 #define을 사용해 정의함컴파일 전에 코드가 단순 치환됨.특징텍스트 치환이므로 타입 체크가 없음컴파일러가 관여하지 않음함수 호출이 없으므로 호출 오버헤드가 없음매크로 함수의 장단점장점호출 오버헤드가 전혀 없음조건부 컴파일이나 플랫폼별 코드 분기 등 전처리기 기능과 결합 가능단점타입 안전성 없음 > 실수로 잘못된 타입을 넣어도 컴파일 오류가 안 날 수 있음디버깅 어려움 > 에러가 치환된 코드에서 발생다중 평가 문제스코프 제한 없음 > 이름 충돌 가능inline 키워드란?함수 호출 시 발생하는 오버헤드를 줄이기 위해, 해당 함수를 호출하는 지점에 함수..

C++ 2025.09.03

[C++] 오버로딩과 오버라이딩

순서오버로딩이란?오버라이딩이란?오버로딩이란?같은 이름의 함수를 매개변수 시그니처만 다르게 여러개 정의하는 것.정적 바인딩을 통해서 바인딩 됨.오버로딩목적: 다양한 입력 값에 따라 같은 이름의 함수가 다른 동작을 하도록 하여 코드의 가독성과 재사용성을 높임오버로딩의 조건함수 이름은 동일해야함매개변수의 타입이나 개수가 달라야함반환 타입만 다른 것으로는 오버로딩이 허용되지 않음.같은 클래스 내에서 발생함오버라이딩이란?상속 관계에서 부모 클래스의 가상 함수를 자식 클래스가 완전히 동일한 원형으로 재정의하여 부모의 기능을 변경하는 것.동적 바인딩을 통해서 바인딩 됨.오버라이딩의 조건함수 이름, 매개변수의 타입 및 개수가 부모 클래스의 함수와 완벽히 동일해야 함.주로 상속 관계에서 발생함부모 클래스에서 가상 함수로..

C++ 2025.09.03

[C++] 바인딩

순서바인딩이란?정적 바인딩동적 바인딩구조적 바인딩바인딩이란?함수 호출이나 변수 참조를 실제 메모리 상의 대상과 연결하는 과정실제 대상을 연결하는 시점에 따라 정적 바인딩과 동적 바인딩으로 나뉨정적 바인딩컴파일 시점에 어떤 함수/변수를 호출할지 결정일반함수 호출, 오버로딩된 함수 선택, 템플릿 인스턴스화, inline 함수오버로딩에 사용특징빠르고 최적화 가능(컴파일러가 대상 함수의 주소를 미리 알고 있기 때문)다형성 지원 불가동적 바인딩런타임 시점에 어떤 함수가 호출될지 결정C++에서 virtual 함수로 구현됨오버라이딩에 사특징실행 속도는 정적 바인딩보다 조금 느림(vtable lookup 필요)다형성 구현 가능 > 실제 객체 타입에 맞는 동작 수행객체지향적 설계에서 핵심구조적 바인딩C++17부터 지원되..

C++ 2025.09.03