분류 전체보기 115

Reflection System 이란?

의미 'Reflection'의 사전적 의미는 반사, 반영으로 Reflective한 프로그래밍은 프로세스가 '자기성찰적' 능력을 발휘할 수 있도록 하는 메커니즘입니다. JAVA, C# 등 많은 언어(주로 스크립트 언어와 같이 높은 수준의 VM 프로그램 언어)에 이러한 Reflection API가 내장되어있고, 이를 사용하면 런타임에 코드를 검사할 수 있습니다. 좀 더 자세히 얘기하자면, Reflection은 런타임에 인스턴스의 데이터 타입 정보를 확인할 수 있는 기능입니다. Reflection은 종종 객체 지향 프로그래밍의 맥락에서 이야기됩니다. 런타임에 Codebase Entities(실체)를 검색하기 위해 Reflection을 사용하는 경우가 많습니다. 각종 언어에서 제공해주는 Reflection AP..

[UE5] Enhanced Input System

언리얼의 Input 시스템 1. 유저가 하드웨어(키보드, 마우스, 패드 등)을 동작시킴. 2. 유저의 인풋과 데이터를 매핑. 3. 인풋 컴포넌트가 제일먼저 인풋 처리가 가능한 액터 확인. 4. 그다음 PlayerController 확인. 5. 레벨 블루프린트 확인. 6. 플레이어가 빙의한 Pawn 확인 7. 위의 3~6 과정을 통해 처리된 인풋을 게임 로직에 반영. 입력을 어디서 처리할 것인가? PlayerInput값은 위에서 설명했던 것처럼 크게 4가지 과정에서 처리 가능합니다. 1. Input 처리가 가능한 Actor 2. PlayerController 3. Level Blueprint 4. Player가 빙의한 Pawn 기존 언리얼 프로젝트 작업들은 모두 PlayerController에서 입력을 처..

UE5 2023.07.07
[UE5] UProject 파일이 제대로 실행되지 않을 때 해결법

1. 먼저 에픽게임즈 런처가 설치되어 있는 폴더를 찾아야 한다. 나의 경우엔 아래 경로로 설정되어있다. C:\Program Files (x86)\Epic Games\Launcher\Engine\Binaries\Win64 2. 해당 폴더로 가면 파란색 아이콘으로 UnrealVersionSelector라는 파일이 있는데 이 파일을 복사해준다. 3. 다음은 실행하고자 하는 언리얼 엔진 버전이 깔려있는 폴더를 찾아야 한다. 나의 경우엔 아래 경로로 설정되어있다. E:\UE_5.1\Engine\Binaries\Win64 그 다음 아까 복사했던 버전셀렉터를 이곳에 붙여넣기 한 후 더블클릭해 실행한다. 4. 그러면 아래 사진처럼 팝업창이 하나 뜰텐데 '예'를 눌러주면 된다. # 또다른 방법(feat. 강사님피셜) 에..

UE5 2023.07.07
[UE5] 언리얼의 핫리로드와 라이브코딩에 대하여

핫 리로딩(Hot Reloading)이란? 에디터가 열려 있는 동안 새 DLL 파일을 컴파일하고 로드하는 과정을 말합니다. 핫 리로드는 가끔씩 잠시 동안 작동하지만 신뢰할 수 없으며 블루프린트가 손상되거나 기타 문제를 자주 발생시킵니다. (자세한 내용은 아래 참조) 그러므로 대부분의 사용자들이 핫 리로딩을 되도록 쓰지 말기를 권장합니다. 즉, 안전하게 컴파일하려면 에디터를 닫는게 좋다는 말입니다. 만약 핫 리로드가 예기치않게 시작되었다면 아무것도 저장하지 말고 편집기를 닫은 다음 IDE에서 빌드를 실행한 후 계속하면 됩니다. 핫 리로드의 장점은 어떠한 내용을 변경할 때마다 IDE에서 컴파일한 다음 에디터를 다시 열 필요가 없다는 것이었습니다. ▶Tip 기본적으로, 핫리로드는 다음과 같은 경우에 시작됩니다..

UE5 2023.07.07
언리얼 프로젝트 폴더관리와 gitignore

저번 수업시간에 간단하게 언리얼 프로젝트를 만들고 깃헙에 올리는 과정을 학교 컴퓨터에서 실습했습니다. 깃헙에 언리얼 프로젝트를 올리는 과정에서 용량관계로 지워도 다시 생성되는, 버전관리를 할 필요가 없는 폴더들을 지우고 올렸습니다. 무슨 폴더들을 지운건지, 왜 특정 폴더들은 지워도 되는건지, 우선 간단히 설명해보겠습니다. 언리얼 프로젝트의 폴더(C++기준) 5.1버전을 기준으로 빈프로젝트 생성시 다음과 같이 11개의 파일 혹은 폴더가 생성됩니다. 핑크색으로 표시된 폴더들이 지우면 안되는 폴더, 노랑색으로 표시된 폴더들이 지워도 되는 폴더입니다. 1. .vs폴더 : 숨김 설정이 되어있는 폴더로, 해당 프로젝트를 VS에서 실행할 때 초기화 및 데이터 구조 등을 기록하여 추후 솔루션 파일을 실행할 때 불러오기..

GitHub란 무엇일까?

지옥에서 온 관리자 Git 프로그래밍을 공부하는 학생들에게 요즘 거의 필수인 깃허브에 대해 알아보려면 먼저 Git에 대해 알아야 합니다. 리누스 토르발스는 Git을 세상에 처음 소개하면서 '깃은 지옥에서 온 관리자'라고 말했습니다. 그만큼 문서관리에 서툴던 시기에 지옥과도 같은 작업환경에서 벗어나기 위해 만든 시스템이 바로 Git 입니다. 그렇다면 Git으로 무엇을 할 수 있을까요? Git이 제공하는 핵심 기능은 크게 버전관리(Version Control), 백업(Backup), 협업(Collaboration)이 있습니다. GitHub란? 깃허브(GitHub)는 소프트웨어 개발자들 사이에서 가장 인기 있는 형상 관리(변경 사항을 추적,제어하는 과정) 플랫폼 중 하나입니다. 위에서 설명한 깃(Git)이라는..

[인공지능응용] 구글의 인공지능 캐치마인드, QuickDraw 알아보기

Quick Draw는 신경망이 위와 같은 낙서를 인식하도록 훈련시키는 드로잉 게임입니다. quickdraw 는 Quick Draw 데이터에 접근하기 위한 파이썬 API로, 필요에 따라 데이터 파일을 다운로드하고 로컬로 캐시하여 사용할 수 있도록 해석해줍니다. 시작하기 1. 먼저 퀵드로우의 파이썬 라이브러리를 pip를 이용해 설치합니다. pip install quickdraw Anaconda 프롬프트를 열고 자신의 가상환경에 접근해 설치할 수 있습니다. 2. 설치한 라이브러리를 사용하는 방법의 예시를 소개하겠습니다. 자세한 내용은 API설명서를 참조하시면 됩니다. QuckDrawData를 사용하여 QuickDraw 데이터를 열고 '모루'의 Drawing을 가져오겠습니다. from quickdraw impo..

카테고리 없음 2023.06.21
[운영체제 이해하기 3] 인터럽트란?

컴퓨터의 시스템의 구조 - 내부장치 : CPU, 메모리. - 외부장치(입출력 장치) : 디스크, 키보드, 마우스, 모니터, 네트워크 장치 등. 컴퓨터는 외부장치에서 내부장치로 데이터를 읽어와(input) 각종 연산을 수행한 후, 그 결과를 다시 외부장치로 내보내는 (output)방식으로 업무를 처리합니다. 메모리 및 입출력장치 등의 하드웨어에는 '컨트롤러(Controller)'라는 일종의 작은 CPU가 붙어있습니다. 컨트롤러는 장치로부터 들어오고 나가는 데이터를 임시로 저장하기 위한 작은 메모리를 가지고 있는데 이를 로컬버퍼(Local Buffer)라고 부릅니다. 입출력 장치들의 I/O 연산은 입출력 컨트롤러가 담당하고, 컴퓨터 내에서 수행되는 연산은 메인 CPU가 담당합니다. 이때 입출력 장치와 메인 ..

운영체제 2023.06.01
[졸업작품] 언리얼4 졸업작품 시연영상

눈코 뜰 새 없이 바쁜 5월이 드디어 끝났습니다. 졸업작품을 저번 겨울방학에 다 끝냈어야 하는데 너무 허무하게 지나가버려서 이번학기가 더 바쁜 것 같습니다. 포트폴리오와 이력서도 작성해야 하고 졸업심사 최종발표 준비도 해야하는데 졸업작품이 안끝나다보니 뭐하나 제대로하지 못하고 얼렁뚱땅 해버렸네요. 가고싶었던 회사에서 서류탈락하고나니 좀 더 열심히 살았어야 하나 하는후회가 많이 되는 요즘입니다. 이래서 어디 취업은 할 수 있을까 싶기도 하고 그렇네요. 그래서 결론은 6월부터는 졸업작품은 이쯤으로 마무리짓고 , 포트폴리오와 기술보고서 작성, 코드정리를 하려고 합니다. CS 지식이 많이 부족하기도 해서 운영체제와 자료구조, 알고리즘, C++, 그래픽스(랜더링 파이프라인 등), 언리얼 관련 지식을 다시 차근차근..

[운영체제 이해하기 2] 운영체제의 자원 관리 기능 개요

자원 관리 기능의 필요성 운영체제의 가장 핵심적인 기능을 꼽으라면 컴퓨터의 자원을 효율적으로 관리하는 것입니다. 앞에서 설명한 것처럼 자원은 하드웨어 자원과 소프트웨어 자원으로 나눌 수 있습니다. 먼저 하드웨어 자원은 CPU, 메모리, 입출력 장치 등으로 구성됩니다. CPU는 일반적으로 컴퓨터 당 하나가 장착되고 메모리또한 한정된 용량만 존재하기 때문에 운영체제의 관리가 필요합니다. 그리고 CPU와 메모리는 전원이 꺼지면 처리 중이던 정보가 모두 지워지기 때문에 전원이 나가도 기억해야 하는 부분은 입출력 장치의 일종인 보조기억장치에 파일 형태로 저장해야합니다. 자원 관리 : CPU CPU 스케줄링(CPU Scheduling)이란? 하나의 CPU에서 여러 프로세스를 수행하기 위해 매 시점 어떤 프로세스를 ..

운영체제 2023.05.29