알아보자 시리즈 6

유니티 - Burst 컴파일러에 대해 알아보자

오늘은 Burst 컴파일러에 대해 알아보고자 합니다.공부하면서 스쳐 지나가듯 이름만 들어본 Burst 컴파일.궁금해서 한번 찾아 정리해 봤습니다.   컴파일러?특정 프로그래밍 언어의 문서를다른 프로그래밍 언어로 번역하는 프로그램입니다. 그중 Burst는 유니티 내부에서 사용하고자 만든 컴파일러입니다. 왜 일까요? 유니티는 c#을 토대로 작성하지만 사실 내부 엔진 로직들은 c++로 되어 있습니다. 그래서 실제로 프로그램이 동작하는 과정은  C# - IL( Intermediate Language/ 중간 언어) 생성 - C++ 처리- Assembly -  Machine Code 순으로 동작한다고 합니다.  이 과정에서 IL을 c++로 바꿔주는 과정을 IL2CPP라고 합니다. Burst의 동작 원리 C# - I..

직렬화(Serialization)/ 역직렬화(Deserialization) (feat. JSON, CSV, XML, YAML) 에 대해 알아보자

데이터 저장에 관해 공부하다 보니, 정리의 필요성을 느끼고 이렇게 글을 작성하게 되었습니다.파일들을 자세히 보면 다양한 파일 확장자명을 확인할 수 있었을 것입니다. 이러한 다양한 확장자가 생기게 된 이유는 무엇일까요?데이터의 저장 형식에 대해 설명하기에 앞서, 이를 이해하기 위해서는먼저 "직렬화(Serialization)"와 "역직렬화(Deserialization)" 개념을 알아야 합니다. 직렬화(Serialization) / 역직렬화(Deserialization)데이터를 인터넷으로 전송할 때, 컴퓨터가 이해하기 쉬운 텍스트 혹은 바이트 형태로 변환하는 과정으로 이해하시면 됩니다. 직렬화: 데이터를 보낼 때, 데이터를 텍스트/바이트 형태로 변환하는 과정입니다. 역직렬화:데이터를 받을 때, 직렬화된 내용을..

'깃/커밋 컨벤션' 에 대해 알아보자

오늘은 깃/커밋 컨벤션에 대해 알아보고자 합니다. 깃/커밋 컨벤션?Git을 통해 Commit을 할 때 변동 사항 등을 Commit 메시지에 적을 수 있습니다. 시간이 지남에 따라, 혹은 협업 /프로젝트를 진행하면서 Commit이 쌓이면,나중에 봤을 때 가독성을 포함하여 내용을 한눈에 파악하기 어려워질 수 있습니다.  이를 해결하기 위해 사전에 어떻게 표기할지 정한 과정이 깃 커밋 컨벤션입니다.   자료를 찾다 보니 Udacity Style을 많이 사용한다는 것을 알게 되었고, 이를 기준으로 정리해 볼까 합니다.    메시지 구조크게 3가지로 구분합니다.  type : subjectbodyfooter  type 타입은 제목과 함께 다음의 유형들을 포함합니다. feat:  새 기능 fix: 버그 수정docs..

'깃허브'에 대해 알아보자

프로젝트를 진행하다 보면 협업을 해야 하는 경우가 발생합니다. 프로젝트를 진행하는 데 있어 각자 진행한 부분을 공유하면서,합치는 방법은 많이 있겠지만 보통은 Git을 사용하게 됩니다.    오늘은 그 중 대표 격인 Github의 사용법에 대해 알아보고자 합니다. 깃(Git)이란?VCS(Version Control System/ 버전 관리 시스템)의 일종으로  소스 정보들의 변경 사항을 저장해 놓고,이를 불러오는 방식으로 버전 관리가 이루어집니다.  GitHub?오늘 소개할  Github는 Git을 활용하여, 온라인을 통해 보다 쉽게 협업을 진행할 수 있도록 도와주는 플랫폼입니다. 사용 방법  GitHub 사용 방법은 다음과 같습니다. 가장 먼저 깃허브 회원가입을 해야 합니다. 회원 가입을 한 후 로그인을..

유니티 - Unity Visual Scripting에 대해 알아보자

Visual Script ? 스크립트를 시각적으로 보여주는 방식으로서 흐름을 한눈에 알아볼 수 있다는 장점이 있습니다.이는 이해와 동시에 빠르게 개발을 할 수 있게 도와줍니다. 대표적으로 언리얼에서는 '블루프린트'라는 이름으로비주얼 스크립팅( Visual Scrpting)을 해주는 기능이 있습니다. 유니티에서도 이와 관련하여 다양한 툴들이 존재합니다.저는 그중에서 Unity에 내장된 Visual Script에 대해 알아볼까 합니다. 원래는 Bolt라는 이름으로 존재했었는데,2021버전부터는 유니티 내 기본 기능으로 탑제 되었다고 합니다. (예전에 공부할 때 Bolt에 대해서 들어서 알고는 있었는데, 이렇게 기본으로 탑재된지는 몰랐네요. ) 만약 구 버전에서 Visual Scripting을 사용해야 하는 ..

유니티 : 오브젝트 풀링(Object Pooling)에 대해 알아보자

오늘은 최적화 기법 중 하나인 오브젝트 풀링에 대해 알아보고자 합니다.  왜 사용하는가? 게임을 하다보면 오브젝트를 생성하거나파괴하는 작업을 반복해야하는 경우가 많습니다.  생성과 파괴를 하는 과정에서 메모리는이에 대해 새롭게 할당 및 해제하는 작업을 하게 됩니다. 오브젝트가 적을때는 상관 없지만 많아질 경우CPU에 부담이 갈 수 있을 뿐 아니라, 메모리를 해제하는 작업에서 가비지 컬렉터가 발생하게 됩니다.이 또한 CPU에 부담을 가중 시킬 수 있습니다.  https://docs.unity3d.com/kr/2021.3/Manual/performance-garbage-collector.html 가비지 컬렉터 개요 - Unity 매뉴얼Unity에서는 가비지 컬렉터를 사용하여 애플리케이션과 Unity에서 더 ..