2025/09/03 12

[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

[C++] 가상 함수

순서가상 함수virtual 키워드란?virtual 키워드 특징순수 가상 함수란?순수 가상 함수의 특징순수 가상 함수 사용 목소멸자에 virtual 키워드를 붙이는 경우가상 함수가상 함수는 런타임 다형성을 가능하게 하는 매커니즘으로, virtual 키워드를 사용하여 선언함컴파일 타임이 아닌 런타임에 어떤 함수가 호출될지 결정해야 할 때 사용함.가상 함수로 인해 자식 클래스에서 함수 오버라이딩으로 새로운 기능을 추가하거나 기능을 변경할 수 있음.추가 키워드 override: virtual 키워드로 선언한 함수를 상속받아 사용할 때 상속받은 class에서 override를 붙여 재정의함final: 더이상 virtual로 선언된 함수가 재정의되지 않도록 제한함virtual inheritance: 다이아몬드 상속..

C++ 2025.09.03

[C++]const 키워드

순서const 키워드란?const 키워드의 주요 역할상수표현식const 키워드 장단점const 키워드란?변수나 객체의 값이 초기화된 이후 변경되지 않도록 하는 상수임을 나타내며, 컴파일러가 해당 값의 수정을 막아 코드의 안정성을 높임변수를 선언할 때 자료형 앞에 붙여 해당 변수가 상수임을 명시함다른 const 문법과 함께 사용될 때는 위치에 따라 포인터가 가리키는 대상의 값을 변경하지 못하게 하거나, 포인터 자체의 주소 변경을 막는 등의 적용 범위가 달라짐.const를 선언할 때 동시에 반드시 초기화가 필요함const 키워드의 주요 역할값 불변성 보장: const로 선언된 변수는 초기화된 후에는 값을 변경할 수 없음 => 이는 코드의 일관성을 유지하고 의도하지 않은 값 변경을 방지하여 안정성을 높여줌컴파..

C++ 2025.09.03

[C++]static 키워드

순서static 키워드란?함수에서의 static 키워드클래스에서의 static 키워드변수에서의 static 키워드static 키워드를 사용하는 이유static 키워드란?static 키워드는 사용되는 위치에 따라 의미가 달라지며 크게 함수, 클래스, 변수 3가지정도 존재함함수에서의 static 키워드함수 내부의 static 지역 변수: 함수 호출이 끝난 후에도 값이 소멸되지 않고 다음 호출 시까지 유지됨전역 static 함수: 해당 함수가 정의된 소스 파일 내에서만 접근 가능하게 하여, 다른 파일에서 동일한 이름의 함수와 충돌하는 것을 방지함.클래스에서의 static 키워드정적 멤버 변수: 클래스의 모든 객체가 공유하는 변수로, 클래스 인스턴스 생성과 무관하게 메모리를 차지하며 클래스 이름으로 직접 접근할..

C++ 2025.09.03

[C++] 캐스트 연산자/RTTI

순서캐스트 연산자란?캐스트 연산자의 종류RTTI란?RTTI의 동작 조건RTTI의 장점과 단점캐스트 연산자란?데이터 타입을 다른 데이터 타입으로 명시적으로 변환하는 데 사용되는 특수 연산자.런타임 시 변수의 타입을 강제로 바꾸거나, 컴파일러게 명확한 의도를 전달하여 타입 변환을 수행하는 역할타입을 바꾸는 것 이상으로 타입 안전성과 목적에 맞는 변환을 명시적으로 제어할 수 있게 설계된 연산자.캐스트 연산자의 종류static_cast정적 타입 변환 연산자로 컴파일 타임에 타임 검사를 수행함.타입 변환이 명확하고 안전할 때 사용함.기본형 변환, 상속 관계에서 업캐스트/다운캐스트, 포인터 > 정수 변환 등에 상용됨안전성이 비교적 높지만 다운캐스트 시 런타임 체크는 없음dynamic_cast런타임 타입을 안전한 다..

C++ 2025.09.03