[WIL] 23-01-1주차 / 스터디 2주차 회고
2023. 1. 8. 18:21
WIL(Weekly I Learned)
요일 목표 달성 여부 메모 월 1-6, 1-7 ⭕ 화 휴강 - 수 1-8, 1-9 ⭕ 목 1-10, 1-11 ⭕ 금 1-12, 1-13 ❌ 토 1-14 ⭕ 금요일 분량 추가로 진행 일 1-15, 1-16, 회고 작성 ⭕ 이번 주에 인강 스터디를 진행하며 느꼈던 건! 본가 들러야 하는 주는 금요일 강의를 무조건 빼야 할 것 같다... 본가 오니까 열 시 가까이 돼서 뭘 할 수가 없다... ㅠㅡㅠ 그리고 빡센 일정보다는 빠짐없이 꾸준히 해 보는 걸 목표로 해 보자! 해당 인강이 현업 프로젝트 파악하는 데에 도움이 되는지는 아직 잘 모르겠... 다. 근데 후반부 제목을 보면 내가 필요했던 개념들이 좀 보이는 듯해서 도움될 것 같기도 하다! 항상 조급해져서 문제인 것 같다. 다양한 지식을 쌓는 데 집중해 보자!..
[WIL] 22-12-5주차 / 스터디 1주차 회고
2023. 1. 1. 21:25
WIL(Weekly I Learned)
Hello, World! 이제 이직한 회사에도 어느 정도 적응했기 때문에(아마도...) 다시 개인 공부를 시작해 볼까 한다. 취준 때 잠깐 했었던 TIL은 좀 많이 빡셌었고, Weekly I Learned 정도로만 주간 회고를 작성해 보려고 한다. 사실 2022년 회고 글도 쓰고 있었는데, 이사 때문에 이래저래 바빠져서 신경을 못 썼다. 이번 주 중으로 올릴 수 있었으면 좋겠다. 😅 여러모로 시작하는 주이기 때문에, 이번 회고는 기술적인 내용보다는 잡담이 될 것 같다. 현재 회사에서는 사내 강의 수강과 팀 내 교육을 받고 있다. 게임 플레이 미션도 있었는데, 나는 어느 정도 이미 할 줄 아는 상태여서... 그냥 대충 하고 마무리해 버렸다. 무엇보다 내가 아직 회사의 최소 컷을 맞추지 못할 만큼 많이 부족..
[Unity] Mixamo 캐릭터 Import 시 Material 하얗게 나오는 현상
2022. 11. 19. 17:54
Unity
유튜브에서 어떤 튜토리얼을 따라 하다가, 모델이 필요하여 Mixamo를 방문하게 되었다. Adobe에서 무료로 캐릭터 모델과 애니메이션을 제공해 주는 감사한 사이트이다. https://www.mixamo.com/ Mixamo www.mixamo.com 내가 고른 것은 이 AMY라는 귀여운 캐릭터! 딱딱한 프로토타입 모델들보다는 색깔도 귀여운 이 친구를 써 보고 싶었다. 우측 다운로드를 누르고, FBX for Unity를 선택해 준다. 다운로드된 파일을 Asset 폴더에 끌어와서, Scene에 추가해 줬는데... Mixamo 사이트에서 보던 Material이 어디로 사라진 건지 하얀 모델만 보이고 있었다. 같이 import된 Material 파일도 하얀색으로만 보여서... 몹시 당황스러웠다. ㅠㅠ 컬러가 ..
[백준/C++] 7662번: 이중 우선순위 큐
2022. 11. 16. 15:59
문제 풀이/백준
문제 이중 우선순위 큐(dual priority queue)는 전형적인 우선순위 큐처럼 데이터를 삽입, 삭제할 수 있는 자료 구조이다. 전형적인 큐와의 차이점은 데이터를 삭제할 때 연산(operation) 명령에 따라 우선순위가 가장 높은 데이터 또는 가장 낮은 데이터 중 하나를 삭제하는 점이다. 이중 우선순위 큐를 위해선 두 가지 연산이 사용되는데, 하나는 데이터를 삽입하는 연산이고 다른 하나는 데이터를 삭제하는 연산이다. 데이터를 삭제하는 연산은 또 두 가지로 구분되는데 하나는 우선순위가 가장 높은 것을 삭제하기 위한 것이고 다른 하나는 우선순위가 가장 낮은 것을 삭제하기 위한 것이다. 정수만 저장하는 이중 우선순위 큐 Q가 있다고 가정하자. Q에 저장된 각 정수의 값 자체를 우선순위라고 간주하자. ..
[수학] 수포자를 위한 게임 수학 - 2. 물체의 수학 1 : 이동의 구현 원리
2022. 9. 1. 23:26
수학/수포자를 위한 게임 수학
https://youtu.be/552b3wzVlzo 벡터 공간을 사용해 이동 구현하기 게임에서 사용하는 가상 공간의 체계와 물체를 구성하는 데 사용되는 수학. 게임의 가상 세계는 다차원으로 구성된 수의 데이터, 벡터공간으로 구성되어 있다. '공간'이라는 단어를 사용하지만, 이는 실제로 어떤 대상이나 성질을 표현하는 데이터! 현실 세계의 공간과는 다른 개념이다. 하지만 우리는 캐릭터를 조종해서 탐험할 수 있는 가상 공간을 만들어 내야 하는데 어떻게 하지? → 공간의 차원을 늘린다! 2차원 벡터를 이용해 방패연을 표현하는 건 무리 없다. 연을 움직이도록 실을 연에 연결한다. 2차원이 연이라면, 3차원을 만들어서 연과 거기에 딸린 실을 구성하고... 해당 실을 조종해서 연을 움직인다. 2차원 물체의 2차원 이..
[Unity/UniRx] UniRx의 간단한 샘플 - 2. Where 및 Select
2022. 8. 31. 18:50
Unity/UniRx
첫 필터 메소드 IObservable은 IEnumerable와 쌍이 되어 있으니까, LINQ의 Where을 사용할 수 있다. ⇒ 이벤트에 대해 다루고 있는데 웬 LINQ? IObservable/IObserver인터페이스의 수행 자체가 IEnumerable/IEnumerator인터페이스를 반전시켜 만들어진 것이기 때문이다. ⇒ ?! LINQ를 통해, 실제로 푸시되는 값에 관해서 여러가지 할 수 있다는 이야기이다. '반전'과 관련해서는 나중에 확실히 이해할 수 있다. 우선 신경 쓰지 말고 넘어가자! 준비 using UnityEngine; public class Base : MonoBehaviour { public void Move (float dx,float dy) { gameObject.transform...
[Unity/UniRx] UniRx의 간단한 샘플 - 1. UniRx와 Subscribe
2022. 8. 30. 22:18
Unity/UniRx
UniRx? Reactive Extensions C#용 비동기 처리를 위한 라이브러리 디자인 패턴 중 하나인 Observer 패턴을 기반으로 설계되어 있음 시간에 관한 처리, 실행 타이밍이 중요한 곳에서 쉽게 작성할 수 있도록 되어 있음 완성도가 높고, Java, JavaScript, Swift 등 다양한 언어로 포팅되어 있음 UniRx Reactive Extensions for Unity Unity C#에 최적화되어 있음 Unity 개발에 유용한 기능이나 Operator가 추가적으로 구현되어 있음 ReactiveProperty 등이 추가되어 있음 철저하게 성능 튜닝이 진행되어서 원래 .Net Rx보다 메모리 퍼포먼스가 좋음 Subscribe Rx란? C# : 다기능 event web: 다기능 jQuer..
따라 하며 배우는 노드, 리액트 시리즈 - 기본 강의 1. Node.js
2022. 7. 9. 18:32
Node.js/따라 하며 배우는 노드 리액트 시리즈
소개 보일러 플레이트란? 웹사이트를 만들 때, 로그인, 회원가입 등등… 통상적으로 들어가는 기능들이 존재한다. 어떠한 프로젝트를 만들 때 0부터 직접 만드는 게 아니라, 자주 쓰이는 기능을 만들어서 어디든 재사용할 수 있게 한다. Node.js와 Express.js 다운로드하기 Node.js 기존 JavaScript는 브라우저에서만 동작했었다. Node.js를 통해 Chrome이나 Internet Explorer에 국한된 게 아닌, 서버 사이드(server-side)에서도 쓸 수 있게 되었다. Express.js Node.js가 자동차 엔진이라면, 그 엔진을 가지고 자동차의 바퀴도 만들고, 브레이크도 만들고… 자동차를 만드는 것이 Express.js. Node.js를 좀 더 쉽게 이용할 수 있는 프레임워..
[백준/C++] 1436번: 영화감독 숌
2022. 2. 28. 10:56
문제 풀이/백준
문제 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조지 루카스와 피터 잭슨을 뛰어넘는다는 것을 보여주기 위해서 영화 제목을 좀 다르게 만들기로 했다. 종말의 숫자란 어떤 수에 6이 적어도 3개이상 연속으로 들어가는 수를 말한다. 제일 작은 종말의 숫자는 666이고, 그 다음으로 큰 수는 1666, 2..
[UE4] 언리얼 C++ 게임 개발의 정석 - (1) 개발 환경의 설정
2021. 7. 25. 19:15
Unreal Engine/이득우의 언리얼 C++ 게임 개발의 정석
프로젝트 폴더 Config: 게임 프로젝트의 설정 값을 보관하는 공간. 해당 폴더를 제거하면 게임 프로젝트의 중요한 정보가 전부 날아가기 때문에 항상 보관해야 한다. Content: 게임 프로젝트에 사용하는 애셋을 관리하는 공간. 항상 보관해야 한다. Intermediate: 프로젝트 관리에 필요한 임시 파일을 저장하는 공간. 제거해도 에디터에 의해 자동 재생성된다. Saved: 에디터 작업 중 생성된 결과물이 저장되는 공간. Binaries: C++ 코드가 컴파일된 결과물을 저장하는 공간. 삭제해도 빌드할 때마다 생성된다. Source: C++ 소스 코드가 위치한 공간. UE의 독특한 빌드 설정을 담은 C# 소스 파일이 있으며, 폴더를 삭제할 때 프로젝트 구성이 망가지므로 주의해야 한다. ArenaBa..
[vscode] Visual Studio Code에서 C++17 사용하기 (Code Runner)
2021. 7. 8. 00:26
기타 프로그래밍
삽질 vscode가 쓰다 보니까 가벼워서 좋은데, 이것저것 커스텀 할 수가 있어서 좋으면서도 어렵다. 사실 컴파일러 차이도 잘 모르겠고, 빌드하는 것도 잘 몰라서... 그냥 확장 기능 이용해서 우클릭 빌드 중이었다. 근데 때마침 C++ 버전 충돌이 나서 멘붕이 왔다. 구글링을 했을 때 나와 비슷한 경우가 있긴 했으나, 따라 해 봐도 제대로 해결되지 않았다... 나 같은 경우에는 심즈였나...? 어떤 게임 관련 툴 때문에 mingw-x86 구 버전이 깔려 있는 상황이었다. 요즘 모던 C++ 공부에 관심이 많은데, gcc가 너무 예전 버전이라 그런가 자꾸만 #include에서 오류가 발생했다. 😣 그래서 우선 구 버전을 유지하고, 새 버전을 추가로 설치해 봤더니 역시나 되지 않는다. cmd에서 버전 체크할 ..
[C++] 예제로 알아보는 std::pair, std::tuple
2021. 6. 20. 20:09
C++/공부
std::pair https://en.cppreference.com/w/cpp/utility/pair std::pair - cppreference.com template struct pair; std::pair is a class template that provides a way to store two heterogeneous objects as a single unit. A pair is a specific case of a std::tuple with two elements. If neither T1 nor T2 is a possibly c en.cppreference.com #include #include #include std::pair Login(int ..
[YAML] yaml & yaml-cpp
2021. 6. 12. 19:33
기타 프로그래밍
YAML 기본 문법 YAML? YAML(Yet Another Markup Language) .yml, .yaml 들여쓰기 (indent) 2칸(권장) 또는 4칸 person: name: Nabin Kim job: developer skills: - docker - kubernetes 데이터 정의 (map) key: value apiVersion: v1 kind: Pod metadata: name: echo labels: type: app 배열 정의 (array) - 로 표시 person: name: Nabin Kim job: Developer skills: - docker - kubernetes 주석 (comment) # 로 표시 # comment name: Nabin Kim # comment 참/거짓 ..
[JavaScript] The Modern JavaScript Tutorial - (2-15) Functions
2021. 4. 30. 00:59
JavaScript/The Modern Tutorial JS
함수 함수는 프로그램을 구성하는 주요 '구성 요소(building block)'이다. 함수를 이용하면 중복 없이 유사한 동작을 하는 코드를 여러 번 호출할 수 있다. 함수 선언 function name(parameters) { // 함수 본문 } function 키워드, 함수 이름, 괄호로 둘러싼 매개변수를 차례로 쓰면 함수를 선언할 수 있다. 매개변수가 없을 수도 있으며, 만약 매개변수가 여러 개 있다면 각 매개변수를 콤마로 구분한다. 이어서 함수 본문(body)을 중괄호로 감싸 붙여 주면 된다. 새롭게 정의한 함수는 함수 이름 옆에 괄호와 매개변수를 붙여서 호출할 수 있다. function showMessage() { alert("안녕하세요!"); } showMessage(); showMessage(..
[JavaScript] The Modern JavaScript Tutorial - (2-14) The "switch" statement
2021. 4. 29. 23:51
JavaScript/The Modern Tutorial JS
switch문 복수의 if문은 switch문으로 변경할 수 있다. 문법 switch문은 하나 이상의 case문으로 구성된다. default문도 있으나, 필수는 아니다. switch(x) { case 'value1': // if (x === 'value1') break; case 'value2': break; case 'value3': break; default: break; } 변수 x의 값과 case의 값을 일치 비교한다. x의 값과 일치하는 값을 찾으면 해당 case문 아래의 코드가 실행된다. 이때, break문을 만나거나 switch문이 끝나면 코드의 실행이 멈춘다. 일치하는 case가 없다면 default문 아래의 코드가 실행된다. (단, default문이 있는 경우에만) 예시 let a = 2 ..
2021년의 개발 공부 계획
2021. 4. 27. 01:26
중얼중얼
4월, 5월 따배씨 완강! 퇴근 후 1강 목표 6월 언리얼 강좌 2. DirectX12부터 수강 시작 (루키스님 커리큘럼) 꾸준하게 JavaScript (현재 하고 있는 튜토리얼 완료) Effective C++ Electron - 어떻게 공부할까 고민 중 🤔 언리얼 개발의 정석 (이득우 교수님 책) 게임 수학 (이득우 교수님 강의) 게임 수학 (책) 수학 (조범희님 강의) 고민 중 공부하고 싶어서 방통대 고민 중. 이왕이면 편입 말고 입학으로? 이것도 좀 고민. 다이어리를 따로 안 써서 😅 블로그에 대략적인 계획을 적어 놓으려고 한다. 다 한 것들은 틈틈히 들어와서 체크 처리 해야지. 파이팅! 💪
[JavaScript] The Modern JavaScript Tutorial - (2-13) Loops: while and for
2021. 4. 26. 21:10
JavaScript/The Modern Tutorial JS
'while' 반복문 while (condition) { // 반복문의 body } condition이 truthy라면 반복문 body가 실행된다. let i = 0; while (i < 3) { alert(i); i++; } 반복문 body가 한 번 실행되는 걸 반복(iteration)이라고 한다. 위 예시에서는 세 번의 iteration을 만든다. let i = 3; while (i) { // i가 0이 되면 조건이 falsy가 되므로 반복문이 멈춘다. alert(i); i--; } 'do...while' 반복문 do { // 반복문 본문 } while (condition); body가 먼저 실행되고, 조건을 확인한 후 조건이 truthy인 동안에 body가 계속 실행된다. 조건이 truthy인지 아..
[JavaScript] The Modern JavaScript Tutorial - (2-12) Nullish coalescing operator '??'
2021. 4. 22. 21:06
JavaScript/The Modern Tutorial JS
개요 null 병합 연산자(Nullish coalescing operator) ??를 사용하면, 짧은 문법으로 여러 피연산자 중 그 값이 '확정되어 있는' 변수를 찾을 수 있다. a ?? b의 평가 결과는 다음과 같다. a가 null도 아니고 undefined도 아니면 a 그 외의 경우는 b let firstName = null; let lastName = null; let nickName = "Supercoder"; // null or undefined가 아닌 첫 번째 피연산자 alert(firstName ?? lastName ?? nickName ?? "Anonymous"); // Supercoder '??'와 '||'의 차이 ||는 첫 번째 truthy 값을 반환한다. ??는 첫 번째 정의된(def..