반응형

분류 전체보기 273

[Go] Slice 기능 요약

슬라이스 배열은 정한 길이에서 더이상 크기가 늘어나지 않습니다. 슬라이스를 사용하면 이러한 불편을 해소 할 수 있습니다. 다음 과 같이 선언하면 크기가 0인 슬라이스가 만들어 집니다. 크기를 초과한 접근을 하면 런타임에 패닉이 발생합니다. var slice []int // 패닉 발생 slice[1] = 10 사용 방법 // {}로 초기화 var slice = []int{1, 2, 3} // 다음은 크기가 3인 배열 선언, 구분합시다! var array = [...]int{1, 2, 3} // make로 초기화 var slice = make([]int, 3) // append로 요소 추가 slice = append(slice, 4) // append로 여러 값 추가 slice = append(slice, ..

Go 언어의 Json Tag

Go 언어의 Json 참고: https://www.joinc.co.kr/w/man/12/golang/json JSON Tag encoding/json 패키지의 경우 아래와 같이 Tag를 이용해서 마샬/언마샬 방식을 설정 할 수 있습니다. type RequestCreateOpenChannel struct { Name string `json:"name"` ChannelUrl string `json:"channel_url"` CustomType string `json:"custom_type"` Data string `json:"data"` IsDynamicPartitioned bool `json:"is_dynamic_partitioned"` } omitempty omit empty : 비어 있으면 생략한다. ..

C++ 개발자를 위한 Go 언어 요약 정리

C++ 개발자 분이 두꺼운 Go 언어책 모두를 다시 보실 필요 없이 C++ 언어 기반에서 추가로 이해하면 좋은 핵심 내용들만 간추렸습니다. Go 언어 특징 Go는 정적 컴파일 언어. 컴파일 과정을 거쳐 실행 파일을 미리 만들어야 하지만 실행 속도가 빠릅니다. Go는 강 타입 언어입니다. 조금 번거롭지만 타입에 따른 문제점이 없습니다. Go 언어는 가비지 컬렉터 제공 가비지 컬렉터 Go 언어는 가비지 컬렉터를 제공합니다. 매우 발전된 형태의 가비지 컬렉터를 제공해 성능 손실이 크지 않습니다. 패키지 명 == 폴더 명 Go 모듈 생성 go mod init 명령을 실행하여 모듈 생성 예) go mod init myproject/hello Go 모듈을 생성하면 go.mod 파일이 생성됩니다. Go 빌드 go t..

[UE] 언리얼 엔진 AsyncTask 사용

AsyncTask 언리얼 엔진에는 코드를 비동기적으로 실행할 수 있는 AsyncTask라는 유용한 기능이 있습니다. 이 기능은 지정된 스레드에서 특정 코드를 실행하는 방식으로 작동하며, 주로 게임 스레드를 차단하지 않고 즉시 실행하기에는 작업이 너무 무거울 때 사용됩니다. 또한 멀티스레딩으로 인해 발생하는 문제, 특히 한 스레드에서 다른 스레드에서 사용 및/또는 수정하려는 프로퍼티에 액세스하는 문제에 대한 해결책을 제공합니다. AsyncTask(ENamedThreads::AnyThread, []() { // 이 코드는 게임 스레드를 멈추지 않고 비동기적으로 실행됩니다. }); 예를 들어 비동기 작업에 대한 중첩 호출을 만들 수도 있습니다: AsyncTask(ENamedThreads::AnyThread, ..

[UE] BindWidget으로 C++와 UMG 연결

C++에서 Blueprint으로 생성된 위젯을 어떻게 제어할 수 있을까요? 이에 대한 답은 BindWidget 메타 속성입니다. UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) class UTextBlock* TitleLabel; UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) class UImage* IconImage; 다음은 예제 코드입니다. BindExample.h #pragma once #include "CoreMinimal.h" #include "Blueprint/UserWidget.h" #include "BindExample.generated.h" UCLASS(Abstract) class UBindExampl..

[C++] 유용한 C++ 기능 - attribute specifier

C++11부터 도입된 attribute specifier(속성 지정자)는 코드의 컴파일러에 대한 추가 정보를 제공하는 데 사용됩니다. 이를 통해 개발자는 특정 컴파일러에 맞춰진 속성을 지정하거나, 코드에 대한 최적화 및 다른 목적으로 사용자 정의 속성을 추가할 수 있습니다. Attribute specifier는 대괄호 [[와 ]]로 묶여진 형태로 사용됩니다. 아래는 attribute specifier의 간단한 예제입니다: [[noreturn]] void SomeFunc() { ... return;// 함수 내부에 리턴문이 있으면 컴파일 에러가 발생합니다. // 중간에 리턴문으로 인해 의도하지 않게 함수의 모든 코드를 // 실행할 수 없는 상황을 막는데 용이합니다. ... } [[nodiscard]] bo..

반응형