전체 글 115

[운영체제 이해하기 1] 운영체제란?

과거의 컴퓨터 컴퓨터가 개발된 초창기에는 하드웨어 자체를 관리하는 일과 실제 수행시킬 프로그램을 작성하는 일을 사용자가 다 해야했습니다. 즉 프로그램을 컴퓨터에서 수행시키려면 사용자가 시스템을 직접 시작시키고 컴퓨터에 로딩해 수행해야 했습니다. 하지만 이러한 방법이 비효율적임을 인식하고 컴퓨터가 자동적으로 일을 처리해주도록 만들 수는 없을까? 라는 고민에서 탄생한 것이 바로 운영체제입니다. 운영체제의 정의 운영체제는 영어로는 Operating System으로 컴퓨터의 하드웨어 바로 윗단에 설치되는 소프트웨어를 말합니다. 운영체제는 사용자가 하드웨어를 다루는 것이 쉽지 않으므로, 하드웨어 위에 기본적으로 탑재되어 전원을 켰을 때 사용자가 손쉽게 사용할 수 있도록 만들어줍니다. 메모리 소프트웨어가 컴퓨터 시..

운영체제 2023.05.29
[UE4] 내적(DotProduct) 와 외적(CrossProduct)에 대한 이해

게임 개발에 있어 벡터 연산은 물리엔진 쪽으로 깊게 들어가면 빼놓을 수 없는 요소다. 3D공간에서 특히 벡터는 직관적이며, 여러가지 문제를 훨씬 효율적으로 해결해준다. 그래서 속도, 바람, 충돌 등 많은 물리계산이 벡터로 표현된다. 내적(DotProduct) 임의의 벡터 A와 B를 가정해보자. 벡터의 내적은 A와 B의 크기를 곱하고 사이각의 Cos값을 곱한 값이다. 결과값은 당연히 스칼라 값이 된다. 그렇다면 내적은 어디에 사용하는 것일까? 1. 두 벡터의 사이각 구하기 두 벡터의 사이각을 내적을 통해서 구할 수 있다. 게임에서 두 벡터의 값을 구하는 건 큰 문제가 아닐 것이다. 이 두 벡터를 내적하면 사이각을 구하고 이는 여러 게임 요소에 사용될 수 있다. 2. 적이 내 앞에 있는지 뒤에 있는지 나와 ..

UE4 2023.05.15
[Unity] 코루틴이란?

코루틴이란 시간의 경과에 따라 일련의 절차적 단계를 수행시키는 로직을 구현하는 데 사용되는 객체이다. 사실 Update함수에서도 가능한 내용들이지만 초당 호출이나, 매 프레임마다 굳이 호출이 필요하지 않은 부분을 매 프레임마다 호출하는 것은 바람직한 로직이 아니다. 코루틴의 역할 코루틴은 함수를 호출한다. 함수는 한 프레임에 호출되어 완료된다. 이때 함수는 IEnumerator 형을 반환 값으로 가지는 함수를 사용하고, IEnumerator에서 사용하는 다양한 yield return 구문을 사용해 흐름을 제어한다. yield return yield return 구문에는 아래와 같이 yieldInstruction 클래스를 사용한다. yield return null : 다음 프레임에 실행을 재개한다. yie..

Unity 2023.05.13
[Unity] 열거자 인터페이스 (IEnumerator)

이게 뭔데? 유니티 개발을 하면서 한번쯤은 다들 코루틴에 대해 접해보았을 것이라 생각한다. 코루틴을 사용하기 위해 StartCoroutine 함수를 사용할 때 인자로 넘겨주는 값이 바로 이 열거자 인터페이스이다. Current, MoveNext(), Reset()을 포함하였을 때 인터페이스를 사용할 수 있다. private Coroutine shopOpen = null; // 코루틴 선언. shopOpen = StartCoroutine(ShopOpen()); //코루틴 정의. IEnumerator ShopOpen(){...}; // 열거자 인터페이스. 무슨 기능을 하는데? 유니티에서 IEnumerator은 작업을 분할하여 수행하는 함수라고 생각하면 편하다. IEnumerator GetNumberIEnum..

Unity 2023.05.13
[C#] 프로퍼티란 무엇인가?

C++과 언리얼에 익숙해져 있던 나에게 프로퍼티는 말그대로 일종의 속성같은 것이었다. 오랜만에 C#으로 돌아와 문법을 되새기려니 프로퍼티의 개념이 조금 다르다는 것이 생각났다. 우리는 객체 지향언어의 특성 중 하나인 정보 은닉화를 염두에 두고 코드를 작성하여야 한다. 그러다보니 어떠한 변수를 private으로 선언하고 상황에 따라 get, set 함수를 정의해서 변수에 직접 접근하는것을 제한한다. 하지만 매번 return을 써가며 함수를 정의하는 것은 누구에겐 귀찮은 일이 아닐 수 없다. 그래서 C#에는 프로퍼티라는 것을 제공한다. 프로퍼티는 선언한 변수의 값을 외부에서 접근할 수 있도록 하면서 캡슐화를 지원하는 언어의 한 요소이다. / 자동 구현 프로퍼티 class PropertyTest{ privat..

Unity 2023.05.13