목록Categories (1103)
KoreanFoodie's Study
어디론가 훌쩍 떠나고 싶은 기분이다. 아무도 모르는 곳으로. 나를 아무도 모르는 곳으로. 떠나고 싶다는 마음은 일상으로부터의 도피를 꿈꾸는 욕구일까. 아니면 내면을 관찰하기 위한 용감한 시도일까. 즐거울까. 과연 행복할까. 그렇게 해서 오롯이 혼자가 된다면, 또다시 홀로 서기를 해야한다면. 세상의 소음을 차단하기 위해 흥겨운 노랫소리까지 두꺼운 유리창으로 막아버린다면. 어디론가 떠나고 싶다는 갈망을 새로움에 대한 나의 집착이 투영된 결과물이라고만 생각했었다. 하지만 사실 떠나고 싶은 마음은 말 그대로 떠나는 행위 그 자체를 수행하고자 함에서 비롯된 것임을 깨달았다. 어디로 떠나는 것이 중요하다기보다, 그냥. 어디론가 떠나는 것이 중요했었다는 거다. 지금 나를 얽매이는 것들로부터 벗어나서. 온갖 구속과 사..
요즘 들어 내글이 부쩍 재미없어진 이유를 깨달았다. 그건 타인의 삶을 관찰할 시간이 부족해졌기 때문이다. 만화영화의 거장이자 지브리 스튜디오의 창립가인 미야자키 하야오는 인간관찰의 중요성을 언급한 적이 있다. 작품활동이라는 게 사실 인간관찰에서부터 시작하는게 아닐까. 어찌되었든, 지금의 내 글은 새로운 맛과 향이 배어들 여지가 없는 상황이다. 그러니 아무리 요리를 맛있게 하려 애써도, 다채롭지 못해 무미건조할 수밖에. 재료를 아끼는 식당이 식재료 본연의 맛을 끌어올리는 요리만을 내놓는다는 핑계를 대듯, 나 또한 최소한의 글감을 그럴듯하게 플레이팅하려만 한다. 그러니 골자는 같을진대, 내용을 포장하는 단어들과 표현에 변주를 주기 위해 안간힘을 쓰는 것이다. 변주에 리메이크, 샘플링에 표절까지 온갖 도구들을..

이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) C++ 클래스 만들기 먼저, 가장 기본적인 C++ 클래스를 만들어 보자. 파일->New C++ Class를 선택하고, 모든 클래스를 표시한 뒤 Object를 선택한다. Object는 대화상자에 만들지만, C++ 코드에서 생성할 C++클래스는 UObject이며 대문자 U가 선행된다는 점을 참고로 알아두자. C++ 프로젝트를 열면, 다음과 같은 다섯지가 프로젝트의 빌드 구성을 볼 수 있다. 각 특징은 다음과 같다. DebugGame : 자세한 디버..
밀치며 나아간다. 성의 없는 사과를 건내며 등산복 입은 아주머니의 가방을 툭 친다. 환승이 다 같은 환승이 아닌가보다. 빠른 환승, 빠른 출구. 조금이라도 더 빨리 가기 위해서, 무례함을 매일 연습하는 사람들. 무료한 표정으로 몇 초 남짓한 시간을 아끼려는 평범한 사람들. 한가함에 괴로워하면서도 뒤쳐지는 것을 견디지못하는 사람들. 내일도, 그 다음날도 무질서한 행렬을 만들 사람들. 빠른 출구는 오늘도 문전성시를 이루고 있다.
어느 순간부터 새로운 취미가 생겼다. 어둑한 스탠드 불에 의존해 눈을 감고 아무 생각 없이 노래를 듣는 것. 신나는 노래여서도 안된다. 무조건 감성에 푹 빠질 수 있어야만 해. 그러니 오늘도 원슈타인 플레이리스트를 틀어놓아볼까. 푹 빠지고 싶으니까. 영화 속 등장인물이 된다면. 아무 생각 없이 주어진 각본대로 움직이는 마네킹이 될 수 있다면. 그래서 난 영화가 좋아지고 있다. 흠뻑 젖고 싶으니까. 슬픈 이별 노래든, 달콤한 사랑 노래든. 아니면 감성 넘치는 힙한 음악이든. 주인공이 아니어도 괜찮다. 그냥 마리오네트가 되는 것으로도 충분하니까.
일기로 쓰려던 토막글조차, 멋들어진 에세이로 변모시키려는 욕심으로 오염되어 가고 있다. 일기에 왜 퇴고 따위를 해야 해. 그냥 내뱉으면 되는 것을. 일기를 쓰는데 왜 그리 머리를 싸매야 해. 그냥 있는 그대로. 받아적기만 하면 되잖아. 또또, 점점 길어지고 있는 글을. 봐봐, 라임까지 맞추려는 어설픈 시도를. 나의 욕심. 끝없는 인간의 욕심. 나만이 볼 일기마저 니스칠을 하게 만드는 덧없는 허영이여.
아버지는 나에게 이르셨다. 불의를 보면 꾹 참고 지나가라고. 잠깐만. 나에게 가정교육의 중요성을 설파한다거나, 내 아버지의 인간성을 속단하지는 않았으면 좋겠다. 한국말은 끝까지 들어볼 필요가 있는 법이다. 그러니 마지막의 마지막까지 잠시만 호흡을 가다듬어 보자. 누군가가 나에게 제일 존경하는 사람이 누구냐고 묻는다면, 나는 작년에도, 5년 전에도 그랬듯 아버지를 언급할 것이다. 왜 아버지를 제일 존경하는 인물로 꼽냐고? 당연하게도, 아버지가 세상에서 제일 멋있는 사람이기에, 능력이 정말 출중하시기에... 같은 피상적인 조건 때문은 아닐 것이다. 다만, 나에게 있어 너무나 고마우신 분이기 때문에. 나에게 좋으신 분이기 때문에 그렇게 이야기할 수밖에 없는게 아닐까. 반면 한 번도 만나본 적 없는, 어쩌면 주..

모두의 코드를 참고하여 핵심 내용을 간추리고 있습니다. 자세한 내용은 모두의 코드의 씹어먹는 C++ 강좌를 참고해 주세요! C++ 스타일의 캐스팅 기존의 C 언어에서는 컴파일러가 알아서 캐스팅하는 암시적(implicit) 캐스팅과, 프로그래머가 직접 캐스팅하라고 지정하는 명시적(explicit) 캐스팅이 있었다. 하지만 C++에서는 다음과 같은 4가지의 캐스팅을 제공하고 있다. 1. static_cast : 우리가 흔히 생각하는, 언어적 차원에서 지원하는 일반적인 타입 변환 2. const_cast : 객체의 상수성(const)를 없애는 타입 변환. 쉽게 말해 const int가 int로 바뀐다. 3. dynamic_cast : 파생 클래스 사이에서의 다운캐스팅 4. reinterpret_cast : 위..

모두의 코드를 참고하여 핵심 내용을 간추리고 있습니다. 자세한 내용은 모두의 코드의 씹어먹는 C++ 강좌를 참고해 주세요! friend 키워드 클래스 내부에서 다른 클래스나 함수들을 friend로 정의할 수 있는데, friend로 정의된 클래스나 함수들은 원래 클래스의 private로 정의된 변수나 함수들에 접근할 수 있다. class A { private: void DoSth() {}; int a; friend class B; friend void func(); } class B { public: void b() { A a; a.DoSth(); a.a = 1; } } void func() { A aa; aa.a= 2; a.DoSth(); } 위에서 friend로 지정된 클래스 B와 함수 func( )는..

모두의 코드를 참고하여 핵심 내용을 간추리고 있습니다. 자세한 내용은 모두의 코드의 씹어먹는 C++ 강좌를 참고해 주세요! MyString의 '==' 연산자 오버로딩 이미 MyString class에서 compare함수를 만들었다면, 연산자 오버로딩은 간단히 구현할 수 있다. bool MyString::operator==(const MyString& str) { return !compare(str); } 대입 연산자 함수 복소수를 구현한 Complex 클래스에서 '=' 연산자 함수를 구현한다고 해 보자. Complex& Complex::operator=(const Complex& c) { real = c.real; img = c.img; return *this; } 왜 참조자(Complex &)로 값을 ..