목록Categories (1099)
KoreanFoodie's Study
이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) 로깅 환경 설정 언리얼은 로깅 환경을 위해 UE_LOG 라는 매크로를 제공한다. UE_LOG(카테고리, 로깅 수준, 형식 문자열, 인자.. ) 로깅 수준은 크게 메시지(Log), 경고(Warning), 에러(Error) 이렇게 세 가지로 나뉜다. 언리얼 형식 문자열은 FString 을 이용해서 처리하는데, 다음과 같은 형식을 띤다. FString::Printf(TEXT("Actor Name : %s, ID : %d, Location X : %...
뚜벅뚜벅. 나는 걷는 것을 좋아한다. 하지만 먼 거리를 가야 할때면 어쩔 수 없이 무언가에 내 몸을 맡겨, 내 튼튼한 두 다리에게 짧은 휴가를 허락해야 한다. 스무 살의 나는 차에 관심이 많던 다른 아이들과 다르게, 삐까번쩍한 외제차에 눈을 돌리지 않았다. 만약에 그때의 내가 포르쉐나 람보르기니를 갖고 싶다는 꿈을 품었다면, 돈을 악착같이 벌기 위해 더 노력했을지도? 하지만 그때의 나는 허무주의를 숭상하며 공수래 공수거를 실천하는 나그네 같은 삶을 동경했었다. 나그네, 듣기에는 참 좋은데 나그네는 배고프고 누덕누덕한 옷을 입고 다닌다는 사실을 객관적으로 인지하지 못했었다(홍콩 야시장에서 떨이로 산 진짜 헝겊조각을 학교에 입고 다니기도 했다. 돌이켜보면 참 부끄러운 추억인데, 옆에서 말려줄 사람이 없었다)..
이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) 월드의 개념 월드는 다음과 같은 기초 요소를 제공한다. 공간(Space) : 가상세계를 구성하는 3차원의 영역 (Transform) 이라는 구조체 제공. 단위는 cm 시간(Time) : 가상 공간에서 흐르는 시간 물리(Physics) : 월드 공간에 배치된 물체에 작용하는 물리적인 환경(중력 등). 물체가 월드로부터 물리적인 영향을 받으려면 콜리전(Collision) 정보가 있어야 한다. 렌더링(Rendering) : 엔진이 제공하는 시각적인 ..
언젠가부터, 프로포즈를 할때 다이아 반지를 건내는 것은 뭇 여성들의 로망으로 자리잡았다. 다이아몬드는 언제부터 영원한 사랑의 상징이 되었나. 때는 1947년. 남아공에서 시작한 주얼리 회사인 드비어스는 "A diamond is forever"이라는 광고 카피를 전 세계적으로 히트시키는 것에 성공했다. 광고계에서 전설로 남은 이 카피는, 다이아몬드가 영원한 사랑의 상징으로 자리잡는 일에 혁혁한 공헌을 했다. 물론 그 이전에도 다이아몬드는 고급진 사치품이긴 했지만. 대체 다이아몬드가 비싼 이유가 뭘까. 아, 물론 경제학에서 배우는 수요와 공급을 이야기하고 싶은 건 아니다. 그건 너무나 당연한 이야기이니까. 다만 그 수요가 어디서 창출되는지 궁금했을 뿐이다. 왜 다이아몬드는 비싸져야만 했을까. 경제학적인 관점..
머니덕 제테크 추천 도서 (도서 제목에 교보문고 링크를 걸어놓았음) : For Genie 1. 보도 섀퍼의 '돈' '돈' 이라는 게 무엇인지, '경제적 자유'란 무엇인지 구체적이고 현실적으로 고민하게 해주는 최고의 입문 서적. 1998년에 나온 책이 아직도 베스트셀러에 머무르고 있는 것에는 이유가 있다. 만약 재테크 도서로 단 한권만 고를 수 있다면 주저없이 고를 책. 2. 돈, 일하게 하라 슈퍼개미 투자자로서 투자 입문자가 쉽게 투자를 시작할 수 있도록 도와주는 책. 기본적 마인드셋과 투자의 당위성에 대해 설파한 도서. 3. 시골의사의 부자경제학 의사이자, 투자자로서도 성공한 박경철의 투자 철학에 관한 책. 투자에 대한 마인드셋 이외에도 한국 사회에서 재테크를 어떻게 할 것인지 현실적으로 짚어주는 점이..
기술면접과 코딩테스트 준비를 위해 꼭 알아야 할 기초 알고리즘 관련 개념들과 코드를 정리하고 있습니다. 각 주제들은 GeeksForGeeks 의 Top 10 algorithms in Interview Questions 글에서 발췌하였습니다. 링크드 리스트 덧셈 (Add two numbers represented by linked lists) 링크드 리스트로 숫자가 주어졌을 때, 두 리스트를 더해 다음과 같은 리스트를 리턴하는 함수를 구현해 보자. 해당 함수는 재귀적으로 구현할 수도 있고, stack 을 이용해 구현할 수도 있다. 혹은, 링크드 리스트를 reverse 시킨 후, loop 을 돌려 덧셈을 해도 같은 결과를 구할 수 있다. 아래 코드는 링크드 리스트를 역전시킨 방식을 구현한 코드이다. #inc..
기술면접과 코딩테스트 준비를 위해 꼭 알아야 할 기초 알고리즘 관련 개념들과 코드를 정리하고 있습니다. 각 주제들은 GeeksForGeeks 의 Top 10 algorithms in Interview Questions 글에서 발췌하였습니다. 링크드 리스트 스트링 비교 string 을 링크드 리스트로 표현했다고 했을때, 다음과 같이 스트링을 비교하는 함수를 구현해 보자. 단, 투 포인터를 이용하여 순회한다. #include #include #include struct Node { char data; Node* next; Node(char data) : data{data}, next{nullptr} {} }; struct List { List() : head{nullptr} {} void insert(cha..
기술면접과 코딩테스트 준비를 위해 꼭 알아야 할 기초 알고리즘 관련 개념들과 코드를 정리하고 있습니다. 각 주제들은 GeeksForGeeks 의 Top 10 algorithms in Interview Questions 글에서 발췌하였습니다. 노드 삭제 (Linked List Node deletion) Singly Linked List 에서 노드를 삭제할 때는, 간단하게 이전 노드의 다음 노드를 현재 노드의 다음 노드와 연결시켜주기만 하면 된다(prev->next = cur->next). 혹은, prev 노드 하나를 이용해도 된다(prev->next = prev->next->next). void delete_node(int x) { if (!head) { std::cout data == x) { head ..
기술면접과 코딩테스트 준비를 위해 꼭 알아야 할 기초 알고리즘 관련 개념들과 코드를 정리하고 있습니다. 각 주제들은 GeeksForGeeks 의 Top 10 algorithms in Interview Questions 글에서 발췌하였습니다. 링크드 리스트 정렬 삽입 (Linked List insert in sorted way) 정렬된 링크드 리스트에서, 삽입을 수행할 때 정렬된 상태를 유지하려면 어떻게 해야 할까? 1. 링크드 리스트가 비어 있을 경우 삽입되는 노드를 헤드로 만든다. 2. 원소가 하나일 경우, 삽입되는 노드를 헤드로 만들고 기존 헤드와 연결한다. 3. 원소가 여러 개일 경우, 순회를 하며 알맞은 위치에 끼워 넣는다. #include #include #include struct Node {..
네트워크의 구성 네트워크는 LAN 과 WAN 으로 구성된다. LAN 은 로컬 영역 네트워크이고, LAN 과 LAN 을 잇는 것을 WAN 이라고 한다. 보통 LAN 과 LAN 사이는 라우터를 이용해 연결한다. 스위치와 라우터 네트워크의 기본 구성은 스위치와 라우터에서 나온다. 스위치와 라우터는 둘 다 스위칭(통신을 연결된 포트로 연결해 주는 역할)을 수행하지만, 가장 큰 차이는, 브로드캐스팅을 막느냐 막지 않느냐의 차이이다. 스위치는 브로드캐스팅을 수행하고, 라우터는 이를 차단한다. 즉, 스위치는 같은 네트워크를 묶어주고, 라우터는 네트워크 집합을 분리시켜준다고 이해할 수 있다. 즉, 전 세계의 네트워크를 스위치로 구성하는 것은 불가능하다. 왜냐하면 패킷을 브로드캐스팅 할 때 전세계의 모든 컴퓨터에 대해 ..