| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- UE_LOG
- map
- 비동기호출방법
- enumasByue
- 구조적 바인딩
- 델리게이트
- UML관련
- unorder_map
- 정렬
- BFS
- 스마트포인터
- C++
- 언리얼가비지컬렉터
- 자료구조
- dataasset
- makeweakobjectptr
- 애셋로드
- stl
- 강참조
- 데이터애셋
- tweakobjectptr
- 선택정렬
- 알고리즘
- 람다
- moreeffectiveC++
- 정렬알고리즘
- 약참조
- C++최적화
- 프로그래머스
- 크리티컬섹션
- Today
- Total
목록전체 글 (446)
기억을 위한 기록들
"한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다." 이제는 AI를 활용해 못하는 것이 없다고 해도 과언이 아니다. 그 중에서도 글쓰기에 대한 부분에 있어서 많은 도움을 주고 있는데 그 와중에 한빛미디어에서 출간한 《AI도 모르는 글쓰기》는 챗GPT, 클로드 같은 생성형 AI가 순식간에 그럴듯한 글을 뽑아내는 시대에, "그럼에도 인간이 써야 하는 이유"와 "AI가 대체할 수 없는 글쓰기 역량"을 다룬 책이다. AI 활용법을 안내하는 책들은 많지만, 이 책은 반대로 AI와 인간 글쓰기의 근본적인 차이에 초점을 맞춘다는 점에서 눈에 띈다. https://www.yes24.com/product/goods/192630667 AI도 모르는 글쓰기: 초안을 완성으로 바꾸는 AI 협업 글쓰기 ..
"한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다." https://www.yes24.com/product/goods/189818905 하네스 엔지니어링 with 클로드 코드 | 황민호 | 한빛미디어 - 예스24단일 에이전트 대신 ‘에이전트 팀’을 설계하라클로드 코드로 구축하는 최초의 하네스 실전 가이드 AI 에이전트를 도구로 쓰는 단계를 넘어, 스스로 일하는 에이전트 팀을 직접 설계하고 운영www.yes24.com 요즘 클로드코드에 대해 의존성이 많이 올라가면서 다양한 AI 서적들이 출간되고 있고, 그 중에서 요즘 더 뜨고 있는 하네스 엔지니어링에 대해 클로드코드와 같이 작성되 있는 이 책을 보게 되었다.책 목차들 중점으로 내 생각을 적어보자면, 1부 . 하네스란 무엇인가Chapte..
"한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다." 요즘 AI 툴 관련 책이 쏟아지고 있지만, 이 책은 조금 달랐다. 제목부터 심상치 않았다. "내 컴퓨터에서 일하는 AI 집사." 단순히 ChatGPT를 잘 쓰는 법을 알려주는 책이 아니라, AI가 직접 내 PC를 조작하고, 파일을 관리하고, 업무를 자동화하는 수준의 이야기를 하고 있다. 그 중심에 있는 것이 바로 오픈클로(OpenClaw) — OpenAI, Google Gemini, Anthropic Claude를 하나 혹은 여러 개의 워크플로우로 묶어서 활용하는 방식이다. 공식 홈페이지 : https://openclaw.ai/ OpenClaw — Personal AI AssistantOpenClaw — The AI that act..
"한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다." 최근 AI 코딩, 바이브 코딩이라는 키워드가 개발자 커뮤니티를 뜨겁게 달구고 있다. 이런 흐름 속에서 "AI를 활용한 게임 개발"이라는 주제가 실제로 어떻게 책으로 풀어졌는지 궁금해서 이 책을 읽게 되었다.『AI 게임 개발 with 코덱스』는 10년 차 게임 기획자 정윤지(유리링) 저자가 쓴 책으로, ChatGPT 코덱스를 중심으로 AI 도구들을 활용해 1인 게임 개발을 완성하는 과정을 다룬다. 기획부터 캐릭터 에셋 제작, 코딩, 빌드, 수익화까지 게임 개발의 전체 파이프라인을 AI 동료와 함께 진행하는 구성이다. 최근에도 읽었던 책과 동일한 저자이다. https://hyo-ue4study.tistory.com/651 후기" data..
"한빛미디어 서평단 활동을 위해서 책을 협찬받아 작성된 서평입니다." 게임개발을 함에 있어서, 프로그래머 입장에서 개발하는 다양한 부분 중에 마주하게 되는 것들 중에 하나가 바로 시스템 기획서라고 생각한다. 그 와중에도 좋은 시스템 기획이란 무엇인가? 어떻게 해야 좋은 것인가? 라는 생각이 머리 한 구석에 있었고, 그러던 중 해당 책을 보게 되었고 간략히 후기를 작성해보려고 한다. 시스템 기획서를 보거나 혹은 생각하다 보면, “기능은 떠오르는데 문서가 복잡해지고”,“예외 케이스에서 규칙이 꼬이고”,“데이터 테이블/UX/UI/기획서가 각각 따로 노는” 문제가 자주 생긴다. 이 책은 “시스템 기획을 한 덩어리로” 정리하는 프레임을 제공한다는 점이 기대 포인트였다. 우선 이 책의 저자 유리링은 게임 기획자로..
클래스 구조를 생각하다보면 개인적으로 바로바로 안떠오르기도 하고, 적용에 있어서 신중해지는게 인터페이스 클래스 인 것 같다. 그러다 문득 언제 사용해야할까? 라는 질문을 스스로 하게 됐고, 이에 대해 정리해보자 한다. 언리얼 엔진에서 인터페이스 클래스는 "역할 기반 설계"와 "다중 상속의 필요성"을 기준으로 판단할 때 가장 효과적이다.올바른 시점에 인터페이스를 사용하면 코드의 확장성과 유지보수성을 극적으로 향상시킬 수 있다. 언리얼의 인터페이스는 순수 가상 함수 선언만 포함하므로, 상태 데이터가 필요 없으면서도 여러 클래스 계층에 동일한 기능을 부여해야 할 때 최적이고, 블루프린트와의 호환성을 제공하며, TScriptInterface를 통해 느슨한 결합(Loose Coupling)을 실현할 수 있습니다..
원본 영상: https://www.youtube.com/watch?v=v9k-J2GeEKI 이 글을 해당 영상과 공식문서를 참조하여 정리한 글입니다. 해당 영상에 나오는 내용과 찾아본 내용들에 대해 정리하였습니다.해당 영상에 따르면 영상 내용은 패턴, 철학, 설계 철학 중심이며, 구현 예시는 추후 별도 영상으로 제공 예정이라고 합니다. UI 시스템이 점점 엉망이 되는 이유많은 프로젝트에서 UI 시스템이 커지면서:마스터 위젯이 모든 것을 관리.작은 변경이 전체를 깨뜨리는 구조.폰트나 색상 하나 바꾸는 것도 힘듦.해당 영상은 모듈식, 확장 가능, 최적화된 UI 시스템 구현을 위한 모범 사례를 소개합니다.Tip 1 — 재사용 가능한 Base Widget 만들기문제점프로젝트 전역 텍스트 색상 바꾸려면 하나하나..
#include static int GetRandomInt(const int Min, const int Max){ static std::random_device RD; static std::mt19937 Gen(RD()); std::uniform_int_distribution Dist(Min, Max); return Dist(Gen);} 게임 개발을 하다 보면 랜덤이라는 값에 대해 필요로 하는 경우가 있다.몬스터 스폰, 드롭 테이블, 크리티컬 판정, AI의 의사결정…등등랜덤이 개입하는 곳은 많고, 이 랜덤의 품질이 낮으면 게임 자체 전반의 결과가 단조롭고 예측 가능해진다는 문제가 생긴다. C++11부터는 이라는 새로운 랜덤 시스템이 도입되었고,그 중심에는 std::random_d..
FGCObject란 언리얼 엔진의 가비지 컬렉션(이하 GC) 시스템에게 "이 UObject는 내가 가지고 있으니 지우지 마"라고 알려주는 인터페이스이다.UPROPERTY()가 없이 보관해야 할 경우 GC가 모르게 들고 있다가 크래시나는 문제를 해결하는 안전한 방법이다. 언리얼엔진의 GC는 UObject를 자동으로 추적하지는 않는다.GC가 자동으로 추적하는 경우는 다음과 같다.리플렉션 시스템에 등록된 객체일 경우RootSet에 등록 된 경우 문제는 다음과 같은 경우들에서 발생한다.일반 C++ 클래스에서 UObject* 포인터를 저장할 경우TSharedPtr안에서 UObject 넣어야 할 경우커스텀으로 사용하는 UObjectPoolingManager 처럼 GC 외부에서 관리하는 경우 GC 입장에서는 이렇게..
enum에 값을 넣을때, 정수 값과 비트플래그(bitmask) 두 방식이 있다.두 방식은 쓰임새가 다르며, 목적이 달라지기에 상황에 따라 선택해야 한다. 정수 enum정수 enum은 일반적으로 단일 상태를 표현한다.ex) 캐릭터가 여러 상태 중 하나만 가질 수 있을 경우enum class ECharacterState : uint8{ Idle = 0, Run = 1, Jump = 2,};이 3개 중에 하나의 상태로 될 수 있다.ECharacterState State = ECharacterState::Run; 특징으로는 구조가 단순하다.비교와 switch가 직관적이다.상태가 오직 하나여야 할 때 적합하다. 비트 플래그 enum 비트 플래그 enum은 각 enum 값을 비트 단위로 분리하여 조..
1. 들어가며언리얼 엔진에서 멀티플레이 게임을 개발하려면 RPC(Remote Procedure Call)와 Replication의 정확한 이해가 필수적이다. 언리얼은 서버-클라이언트 구조를 기반으로 하고 있으며, 단순히 UFUNCTION()을 호출한다고 해서 클라이언트와 서버가 같은 결과를 얻는 것은 아닙니다. 이 글에서는 RPC의 종류, Replication의 원리, 그리고 클래스별 네트워크 특성을 정리해보려고한다. 참고 자료 : https://dev.epicgames.com/documentation/ko-kr/unreal-engine/remote-procedure-calls-in-unreal-engine 2. 왜 중요한가?멀티플레이 게임에서 가장 큰 문제는 데이터 불일치입니다.클라이언트에서만 ..
C++17에서 도입된 std::optional은 “값이 있을 수도 있고, 없을 수도 있는 상태”를 안전하게 표현하기 위한 도구이다.단순히 nullptr 체크나 특별한 값(-1, 0 등)으로 “없음”을 나타내는 것보다 훨씬 명확하고 타입 시스템 차원에서 안전하다. 왜 생겼을까?기존에는 “없음”을 표현하는 방법이 불완전했습니다.포인터 타입: nullptr 사용 가능 → 하지만 값 타입(int, float, struct 등)은 불가능특별한 값(-1, 0 등): 의도 전달이 불명확하고, 실제 유효 값과 충돌 가능예외(throw): 코드 복잡성 증가optional은 이러한 문제를 해결합니다. 반환값, 선택적 인자, 실패 가능 함수 등에서 “없음”을 타입으로 강제 표현하므로, 코드 가독성과 안정성이 높아집니다. ..