728x90

전체 글 715

24.09.30 UE5

UE5언리얼 c++ 코딩 표준코딩 표준(Coding Standard)프로그래밍을 작성하는데 지켜야 하는 프로그래밍 이름 규칙, 작성 방법등을 지정한 가이드라인코딩 스타일, 코딩 컨벤션이라고도 한다.클래스 체계클래스 체계는 작성하는 사람 보다는 읽는 사람을 염두에 두고 체계를 잡아야 한다. 읽는 사람 대부분은 클래스의 공용 인터페이스를 쓸 것이기에, public을 먼저 선언하고, 그 후 클래스의 private 구현이 뒤따른다.저작권 공지에픽이 배포용으로 제공한 (.h, .cpp, .xaml 등의) 소스 파일은 반드시 파일의 첫 줄에 저작권 공지를 포함시켜야 한다. 공지의 포맷은 반드시 다음과 같아야 한다.Copyright Epic Games, Inc. All Rights Reserved.이 줄이 없거나 포..

24.09.26 UE5, CS

UE5C++로 생성을 하게되면 소스 파일도 같이 생성된다.클래스 만들기Tools에서 New C++ Class를 누르면 팝업창이 뜨고, Common Classes와 All Classes가 나온다.Common Classes에는 게임제작과 관련된 클래스들이 존재한다.인스턴스 클래스가 생성된 것을 확인할 수 있다.언리얼 엔진 컴파일 방법헤더 파일에 변경이 발생하면 에디터를 끄고 비주얼 스튜디오에서 컴파일한다.소스 파일에만 변경이 발생하면 라이브 코딩으로 컴파일 한다(Ctrl + Alt + F11)비주얼 스튜디오에서 수동으로 클래스를 추가하면 안된다.언리얼 엔진이 제공하는 부모 클래스를 상속 받아서 가상 함수를 오버라이드 해서 재구현 하는 경우 대부분 언리얼 엔진이 작업해 놓은 코드를 실행해 주어야 한다.로그언리..

24.09.25 Unity, CS

언리얼 시작.. 내일부터는 언리얼을 정리 해보도록 하겠다 크악..UnityUnity Addressables는 Unity에서 리소스(assets)를 더 효율적으로 관리하고 로드하기 위한 강력한 시스템이다. Addressables을 사용하면 동적 콘텐츠 관리, 메모리 최적화, 게임의 로딩 시간 감소와 같은 기능을 쉽게 구현할 수 있다.1. Addressables이란?Unity Addressables 시스템은 게임 리소스(텍스처, 사운드, 모델, 애니메이션 등)를 어드레서블(Addressable)하게 만드는 기능을 제공한다.리소스에 주소를 부여하고, 이 주소를 사용하여 해당 리소스를 필요할 때 로드하거나 언로드할 수 있다. 이 방식은 리소스를 다루는 전통적인 Unity의 Resources 폴더 및 Asset ..

24.09.24 C++, 책

C++윤성우 열혈 C++. 1헤더 파일 선언문 #includestd::cout과 std::endl을 이용한 개행헤더파일 선언문 #includeC++에서는 입출력에 관련된 일을 하기 위해서 다음 형태의 헤더파일 선언을 추가해야 한다.#include헤더 파일의 확장자는 C언어와 마찬가지로 .h이다. 그러나 C++에서는 프로그래머가 정의하는 헤더 파일의 선언이 아닌, 표준 헤더 파일의 선언에서는 확장자를 생략하기로 약속 되어 있다.std::cout 과 출력을 위해서는 다음과 같은 형태를 취해야 한다.std::cout ‘출력대상’의 위치에는 무엇이든 올 수 있다. 정수와 실수를 비롯해서 문자열, 그리고 변수도 올 수 있다. 그리고 C언어의 printf 함수와 달리 %d, %s와 같은 서식 문자를 이용해서 별도의..

24.09.23 C++, CS

CSTCP/UDPTCP연결 지향형 서비스(reliable service)와 신뢰적 데이터 전송 서비스(data integrity)를 포함한다.Reliable ServiceTCP는 메시지 전송 전에 클라이언트와 서버가 서로 전송 제어 정보를 교환하도록 한다. 즉, 패킷이 전송될것을 미리 알려준다.Data integrityTCP는 데이터를 오류 없이 올바른 순서로 전달하는 것을 보장한다.Congestion control(혼잡제어)TCP의 congestion control은 네트워크가 혼잡상태에 이르면 프로세스의 속도를 낮춘다.즉, 프로세스가 우선이 아니라 네트워크의 안정성 향상을 우선한다.Flow control(흐름제어)TCP는 receiver의 buffer가 꽉 차서 데이터가 손실되지 않도록 sender의..

24.09.20 C++, CS

C++템플릿C++ 템플릿(template)은 코드를 일반화하여 여러 데이터 타입에 대해 동작하는 함수를 작성할 수 있게 해주는 강력한 기능이다. 이를 통해 코드 재사용성을 높이고, 동일한 로직을 여러 타입에 대해 사용할 수 있다.템플릿은 주로 함수 템플릿과 클래스 템플릿으로 나뉘며, 이 두 가지를 사용해 다양한 데이터 타입에 대해 유연하게 프로그래밍할 수 있다.1. 템플릿의 기본 개념템플릿은 코드를 작성할 때 구체적인 데이터 타입을 지정하지 않고, 타입을 매개변수화하여 나중에 구체적인 데이터 타입이 주어졌을 때 그에 맞는 코드를 생성하는 방식이다.2. 함수 템플릿함수 템플릿은 함수에 대해 데이터 타입을 일반화할 수 있게 한다. 예를 들어, 두 개의 값을 비교하여 더 큰 값을 반환하는 함수를 생각해보자. ..

24.09.19 C#, CS

C#using System;usingC#의 키워드 중 하나다.SystemC# 코드에 기본적을 필요한 클래스를 담고 있는 네임스페이스다.;(세미콜론)컴파일러에게 문장의 끝을 알려준다.using static어떤 데이터 형식의 정적 멤버를 데이터 형식의 이름을 명시하지 않고 참조하겠다.전역 using(global using)소스파일 한 곳에서만 네임스페이스를 참조하면 프로젝트 내 모든 파일에서 별도의 using문 없이 해당 네임스페이스를 참조할 수 있도록 한다.파일 범위 네임스페이스namespace 선언 뒤에 {} 대신 ;(세미콜론)을 붙이면 그 파일의 모든 코드는 해당 네임스페이스 소속으로 들어간다.Static void Main(string[] args){}이 메소드는 프로그램의 진입점(Entry Point..

24.09.12 C++, CSAPP

C++lower_bound, upper_bound이진 탐색으로 원소를 탐색하는 함수 제공.찾으려는 key값보다 같거나 큰 숫자가 배열 몇 번째에서 처음 등장 하는지 찾기위한 함오름차순 정렬되어 있어야 한다.#include #include using namespace std;int main() { int arr[6] = { 1,2,3,4,5,6 }; cout lower_bound(6) : 5return 0;}lower_bound의 반환형은 iterator이므로 실제로 몇 번째 인덱스인지 알고 싶다면, 위 코드와 같이 lower_bound값에서 배열 첫 번째 주소를 가리키는 배열의 이름을 빼 주면 된다.벡터의 경우 arr.begin()을 빼면 된다.Vector Container자동으로 메모리가 할당되는 배..

24.09.11 C++, CSAPP

C++C++ 입출력 성능 향상ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);c++에서 ios::sync_with_stdio, cin.tie, cout.tie를 사용하는 주된 이유는 입출력 성능을 향상시키기 위해서 이다.ios::sync_with_stdio(false);이 함수는 c++ 표준 입출력 스트림(cin, cout)과 c 표준 입출력 버퍼(stdin, stdout)의 동기화를 해제한다.기본적으로 c++ 표준 입출력은 c의 표준 입출력과 동기화되어 있어서 입출력 작업 시 버퍼를 공유하고 동기화하는 과정에서 오버헤드가 발생한다.ios::sync_with_stdio(false);를 호출하면 c++과 c의 입출력 버퍼가 분리되어 동기화 오베헤드가 사..

24.09.10 CSAPP

24.09.10 CSAPPCSAPP9. 가상메모리한 시스템의 프로세스들은 CPU와 메인메모리를 다른 프로세스들과 공유한다.메모리를 보다 효율적이고 더 적은 에러를 갖도록 관리하기 위해서 현대의 시스템은 가상메모리 VM이라고 알려진 메인메모리의 추상화를 제공한다. 가상메모리는 각 프로세스에 하나의 크고 통합된 사적 주소공간을 제공한다. 이것은 하드웨어 예외, 하드웨어 주소번역, 메인메모리, 디스크파일, 커널 소프트웨어들 사이의 상호작용이다. 가상메모리는 한 개의 깔끔한 매커니즘을 사용해 세 주요 기능을 제공한다.메인메모리를 디스크에 저장 된 주소공간에 대한 캐시로 취급해서 메인메모리내 활성화 영역만 유지하고, 데이터를 디스크와 메모리간에 필요에 따라 전송하는 방법으로 메인 메모리를 효율적으로 사용한다.각 ..

카테고리 없음 2024.09.10
728x90