목록전체 글 (125)
멈추지 않고 끈질기게
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 5.0 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 문자열을 다룰 수 있는 StringBuilder 클래스에 대해 알아보겠습니다. 1. StringBuilder의 선언 및 초기화 StringBuilder 클래스는 System.Text 네임스페이스에 정의되어 있으며, 초기화 방식은 다음과 같습니다. //빈 StringBuilder 생성 StringBuilder sb1 = new StringBuilder(); //string 변수로 value 설정하며 초기화 StringBuilder sb2 = new StringBuilder("StringBuilder"); //int 값으로 capa..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 5.0 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 C#의 가비지 컬렉터에 대해 알아보겠습니다. 1. 가비지 컬렉터(Garbage Collector)란 C#, Java와 같은 언어에는 가비지 컬렉터(이하 GC)라는 메모리의 할당, 해제를 관리하는 관리자가 존재하기 때문에 사용자가 직접 메모리를 해제할 필요가 없습니다. 상당히 편리한 기능이지만, 그렇다고 사용자가 메모리 관리에 전혀 신경 쓸 필요가 없다는 뜻은 아닙니다. GC 호출 시 다른 스레드들을 일시정지하고 GC가 실행되기 때문에, 너무 잦은 GC 호출은 프로그램의 성능을 하락시킬 수 있습니다. GC는 이름 그대로 가비지를 ..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 Unity 2021.3.15f1 버전을 기준으로 작성되었습니다. ※ 해당 포스팅은 하기 출처들을 참조하였습니다. - 오지현, 유니티 그래픽스 최적화 스타트업, 비엘북스, 2019 이번 포스팅에서는 그래픽스에서 중요한 개념 중 하나인 드로우 콜에 대해 알아보겠습니다. .1. 드로우 콜(Draw Call) 렌더링 파이프라인에서 우선 CPU에 의해 오브젝트의 렌더링 필요 여부를 검사하는 과정을 거친 후(컬링), 오브젝트의 렌더링 과정은 GPU에 의해 진행됩니다. 이 때 CPU에서 GPU에 필요한 데이터를 넘겨주며 말 그대로 오브젝트를 화면에 그리게(Draw) 호출(Call)하는 것을 드로우 콜이라 ..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 5.0 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 C#의 Linq 구문에 대해서 알아보겠습니다. 1. Linq란 Linq는 Language integrated Query의 약자로, C#에서 SQL 구문과 흡사한 방식으로 원하는 데이터를 수집할 수 있는 구문입니다. 해당 구문을 사용하려면 System.Linq를 참조하여야 합니다. 간단한 Linq 구문의 구조는 다음과 같습니다. var output = from (변수 이름) in (데이터 출처) where (조건식) orderby (정렬 대상) (정렬 기준) select (수집 대상); from 뒤에 원하는 변수 이름을 설정하고,..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 Unity 2021.3.15f1 버전을 기준으로 작성되었습니다. ※해당 포스팅은 UnityKorea 공식 채널의 영상을 토대로 정리한 내용임을 밝힙니다. (출처: [유니티 TIPS] 알아두면 쓸 데 있는 '트랜스폼' ) 유니티에서 오브젝트를 다룰 때 빠트릴 수 없는 것이 트랜스폼일 것입니다. 좌표값(position), 회전값(rotation), 크기(scale)라는 모든 오브젝트가 가지는 3가지 요소를 포함하고 있으며, MonoBehaviour 클래스를 상속받은 클래스는 transform을 통해 해당 게임 오브젝트의 트랜스폼에 접근할 수 있습니다. 사실 트랜스폼의 3가지 요소들은 유니티 엔진 ..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. 이번 포스팅에서는 모바일 디바이스의 특징에 대해 알아보겠습니다. 1. UMA(Unified Memory Architecture) PC에서 메모리라 함은 보통 CPU에서 사용하는 RAM을 말하며, 그래픽카드에는 GPU가 사용하는 메모리가 별도로 존재합니다. 전에 다룬 가상 메모리에 관한 포스팅에서도 소개했듯이, PC에서는 가상 메모리 시스템을 통해 실제 물리 메모리보다 더 큰 사이즈의 프로세스도 실행할 수 있습니다. 다만 모바일에서는 얘기가 다릅니다. 모바일 디바이스에는 물리 메모리가 1개 존재하며, CPU와 GPU가 하나의 메모리를 공유하는 구조이며, 이를 UMA(Unified Memory Architectur..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 Unity 2021.3.15f1 버전을 기준으로 작성되었습니다. ※ 해당 포스팅은 하기 출처들을 참조하였습니다. - 오지현, 유니티 그래픽스 최적화 스타트업, 비엘북스, 2019 이번 포스팅에서는 렌더링 파이프라인에 대해 알아보겠습니다. 1. 렌더링 파이프라인(Rendering Pipeline) 렌더링 파이프라인(Rendering Pipeline)이란 간단히 말해서 3D 오브젝트를 2D 픽셀 이미지로 그려내는 과정 전체를 말합니다. 이 과정은 플랫폼에 따라 달라지는 부분도 많아서 명확하게 나누긴 어렵지만, 크게 어플리케이션, 지오메트리, 래스터라이저 스테이지 정도로 구분할 수 있습니다. 렌더링..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 Unity 2021.3.15f1 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 유니티 2D 환경에서 타겟을 향해 회전시키는 방법에 대해 알아보겠습니다. 서문 유니티에서 특정 대상을 바라보도록 회전시키려 한다면 Transform.LookAt() 함수를 사용하여 간단하게 해결할 수 있습니다. 다만 2D 게임일 경우 얘기가 조금 다릅니다. 해당 함수는 x, y, z축 모두 사용하여 회전하기 때문에, 2D 게임에서 사용 시 오브젝트가 사라지는 현상을 볼 수 있습니다. 따라서 2D 게임에서 오브젝트를 회전시키려면 직접 대상과의 각도를 계산하여 회전시켜야 합니다. Arctan를 활용한 각도 계산 플레..