목록Categories (1104)
KoreanFoodie's Study

Actor 와 ActorComponent 유니티에서는 게임 오브젝트 아래에 게임 오브젝트를 넣는 식으로 Hierarchy 를 만들어낼 수 있다. 하지만 언리얼은 그런 식으로 동작하지 않는다. 유니티에서는 항공기가 있다고 했을 때, 프리팹에 각종 게임 오브젝트를 하위에 넣어 조합하는 방식으로 해당 오브젝트를 제작할 수 있다. 그런데 언리얼에서 Actor 는 Bucket 같은 개념으로, 다양한 액터 컴포넌트를 담고 있다. 즉, 언리얼은 Bucket 안에 다른 Bucket 을 넣는 방식으로 오브젝트를 생성하지 않는다. 액터 컴포넌트는 재사용가능한 기능을 정의하는 컴포넌트에 대한 베이스 클래스로 충돌, 메시, 월드 이동, 소리 재생, 빛과 명암 등의 다양한 기능을 지원한다. 언리얼에서는 트랜스폼을 가진 액터 컴..

언리얼 코딩 표준 명명규칙 : 파스칼케이스, 접두사(U - UObject 상속 /A - AActor 상속 /S - SWidget 상속 / C - 에픽의 개념이 유사 / b - 부울 변수 / F - 그 외 대부분) 포터블 C++ 코드 : bool(크기 추정 금지, BOOL 은 컴파일 안됨), TCHAR, uint8, int8, uint(16, 32, 64 버전) , float, double, PTRINT(포인터를 가질 수 있는 정수, 크기 추정 금지) 표준 라이브러리 사용 : 표준 컨테이너와 스트링은 interop 코드를 제외하고 사용하지 말아야 함 코멘트 : 코드는 구현을 설명하고, 코멘트는 그 의도를 설명한다. 최신 C++ 언어 문법 : static_assert 사용, override 및 final 사..

언리얼 가비지 컬렉터(GC) 심화 정리 언리얼 엔진은 Reference Graph 를 만들어 오브젝트들의 사용 여부를 구분한다. 이 그래프 루트에는 "Root Set" 이라고 지정된 오브젝트 셋이 있으며, "Root Set" 에 포함된 객체들은 GC 대상에서 제외된다(Mark & Sweep 방식으로 추적). 세 가지 규칙 : UPROPERTY 선언 : 클래스 내부 멤버 변수가 클래스의 객체의 수명과 운명을 함께할 경우 선언 멤버가 가리키는 포인터 : 엔진이 인식하거나 관리하지 않는 메모리 영역을 가리키도록 만들면 안됨 TArray 를 활용 : UObject 또는 자식들에 대한 포인터를 안전하게 담을 수 있는 유일한 컨테이너 기타 인터페이스 예시 : // Object 를 살아있게 만드는 3가지 방법; //..

UML (Unified Modeling Language) UML 에는 Class, Sequence, Use Case, Component 등 다양한 종류가 있지만, 여기서는 주로 Class 와 Sequence 다이어그램을 정리한다. 클래스 다이어그램 (Class Diagram) 클래스들 사이의 관계는 다음과 같이 표현될 수 있다(참고 링크). 각 관계를 조금 더 자세히 기술하면 다음과 같다. 관계 표시 설명 연관 관계 (association) 실선이나 화살표 연관 관계는 오랜 시간 동안 같이할 객체와의 관계를 나타낸다(e.g. 자동차와 소유자의 관계) 보통 클래스의 속성(멤버 변수)에서 참조할 때 연관 관계를 가진다. 단방향 연관 관계의 경우, 화살표를 사용하여 클래스를 참조한다. 양방향 연관 관계의 경우..

MVC 패턴 개요 MVC 패턴은 앱을 Model, View, Controller 로 나누어 데이터와 로직을 분리하는 디자인 패턴이다. Model은 데이터를 가진 객체를, View는 사용자가 볼 결과물을 생성하는 컨테이너를, Controller는 사용자가 Model 과 View 를 호출하는 로직이다. 이때, Model 과 View 는 Controller 의 존재를 몰라야 결합도를 줄일 수 있다. Model 에 변경 사항이 생기면 View 는 Controller 를 통해 이벤트가 실행되어 화면이 업데이트 된다. MVC 패턴은 비즈니스 로직과 UI 로직을 분리하여 유지 보수를 독립적으로 수행할 수 있고, 확장성과 유연성이 뛰어나다는 장점이 있다. 하지만 하나의 컨트롤러에 다수의 View 와 Model 이 복잡..
또각또각. 딱딱한 구두 소리가 적막한 회의실을 울린다. 나는 늘 여자들이 왜 구두를 좋아하는지 궁금했었다. 기껏해야 든 생각은 '불편하지 않을까?' 정도의 아저씨다운 발상 뿐이었다. 그래서 누나의 구두를 몰래 신고 방 한바퀴를 돌았다. 아니, 사실 한바퀴가 아니라 세 발자국 정도를 걸었다. 너무 불편했다. '도대체 여자들은 이걸 어떻게 신고 다니는거지?' 그런 생각과 함께, 내 마음 깊은 곳에서 무한한 존경심이 자라나는 것을 느꼈다. 패션에 무지한 나조차도, 얼죽코라는 말은 귀에 딱지가 앉히도록 들어왔다. '얼어 죽어도 코트'. 그만큼 코트가 멋있으시단 거지. 그런데 왜 사람들은 코트가 멋있다고 하는걸까. 따뜻하지도 않은 부직포를 왜 그리도 좋아할까? 구두도 어떻게 보면 비슷한 존재..
내 생각은 나만의 생각일까. 나는 그저 다른 사람들의 생각을 깔대기에 한번 걸러 기록하는 하수인이 아닐까. 지금의 내 생각은 누구의 생각인가. 유입이 있어야 유출이 있다. 그렇기에 많은 작가들은 새로운 자극을 찾아 떠난다. 아무도 없는 골방에서 나오는 작품은 외로움 섞인 인간 내면에 대한 고찰만이 담겨 있을거야, 아마. 그러니 글이 써지지 않을 때에는 사람을 만나야 하는 것이다. 베껴와야 하니까. 훔쳐야만 하니까. 오늘도 타인의 생각을 나의 위대한 사고인것처럼 포장하는 일에서 소소한 쾌락을 느낀다. 나의 도벽. 나의 표절. 자수를 하기 위해 손가락을 부지런히 놀린다. 슬프게도 내 글은 나의 범죄기록에 불과한 것일까. 그렇다면 누구를 위해 나의 치부를 드러내야 하는 걸까. 나를 위해서겠지. 분명 나..
못난 내 자신을 받아들였다. 더 이상 내 자신을 미워하지 않게 되었다. 그것만으로 마음이 편해지고 마음 한구석을 차지하던 공백이 채워지는 것을 느낄 수 있었다. 이렇게 쉽고 간단한 일이었을텐데, 지금껏 나는 사라진 조각을 찾기 위해 온 동네를 뒤지고 다니고 있었다. 타인을 부러워하고 질투하며 깎아내리고자 하는 감정은 어디에서 비롯되는가. 그놈은 분명 마음 속 깊은 곳에 있는 공허에 뿌리를 내리고 있음에 틀림없다. 그러니, 뿌리를 뽑으려는 시도조차 결국 무위로 돌아가는 것이다. 언젠가 새로운 씨앗이 그곳에 싹을 틔울 테니까. 한 가지 해결책이 있다. 바로 빈 공간을 없애 버리는 것이다. 자기 자신을 포용하고 위로함으로써, 마음 속 허공을 자기애로 가득 채워보자. 분명 시기와 질투,..
귀찮아. 아무도 나를 건들지 않았으면 좋겠다. 쥐 죽은 듯 살아도 세상은 늘 그렇듯 시끄러운 소음으로 가득하다. 때론 죽음에 대해 꿈꾼다. 영원한 침묵이 무엇일지 궁금하기에. 누군가는 나를 부른다. 부름에 반가이 응답할 수밖에 없는 미력한 존재임을 다시 확신하는 순간이다. 젠장, 하고 끓어오르는 감정을 애써 삼킨채 미소를 뿌리러 나가야만 한다. 누군가에게 영혼없는 위로를 건내줄 준비를 해야만 한다. 나도 언젠가는 누구를 부를 것이기에.
요즘 나는 술탄 오브 더 디스코라는 밴드에 푹 빠져있다. 나는 영화나 책보다 노래에 감정이입이 잘 되는 편이라, 내 기분과 감정상태에 따라 플레이리스트를 바꿔 듣곤 한다. 때에 따라 신나는 노래를 듣고 싶을 때도, 슬픈 노래를 듣고 싶을 때도 있다. 물론 복합적인 분위기도 좋아한다. 사실, 흥겨우면서도 서글픈, 그렇지만 처지지 않을 정도로 정이가는 그런 음악을 만드는 밴드를 찾은 것 같다. 요즘 나는 기쁠 때나 슬플 때나, 즐거울 때나 힘들 때나 언제나 디스코를 듣는다. 디스코에 복합적인 향이 섞여 있는 것인지, 아니면 술탄 오브 더 디스코가 그런 식으로 디스코를 표현한 것인지는 잘 모르겠지만. 술탄 오브 더 디스코를 처음 알게 된 것은 아마 '통배권' 때문이었던 것 같다. 독특하고 유쾌한 것을 ..